/* Life factory — styles are scoped; no theme/body/global reset. */
.lf-page,.lf-scope {
  --lf-bg:#f9f8f4; --lf-white:#ffffff; --lf-ink:#292e29;
  --lf-muted:#61645c; --lf-olive:#414c3a; --lf-gold:#81683c;
  --lf-champagne:#ddca9f; --lf-greige:#ece8e0; --lf-border:#d6d1c7;
  --lf-serif:"Noto Serif JP","游明朝","Yu Mincho",serif;
  --lf-sans:"Noto Sans JP","游ゴシック体","Yu Gothic",sans-serif;
  color:var(--lf-ink); background:var(--lf-bg); font-family:var(--lf-sans);
  font-size:16px; line-height:1.9; letter-spacing:.025em; overflow-wrap:anywhere;
  scrollbar-color:var(--lf-muted) var(--lf-greige); scrollbar-width:auto;
}
.lf-page {width:100%;max-width:none;margin:0;isolation:isolate;}
.lf-scope,.lf-scope * {box-sizing:border-box;}
.lf-page>.lf-scope {margin-block:0;max-width:none;}
.lf-scope :where(p,h1,h2,h3,figure,.wp-block-group,.wp-block-buttons) {margin:0;}
.lf-scope .wp-block-group {max-width:none;}
.lf-scope :where(p)+p {margin-top:16px;}
.lf-scope :where(h1,h2,h3) {font-family:var(--lf-serif);font-weight:500;line-height:1.55;color:inherit;letter-spacing:.035em;text-wrap:pretty;}
.lf-scope h1 {font-size:clamp(42px,5.5vw,80px);line-height:1.38;}
.lf-scope h2 {font-size:clamp(28px,3.05vw,43px);}
.lf-scope h3 {font-size:clamp(21px,2vw,27px);}
.lf-scope strong {font-weight:600;}
.lf-scope a {color:inherit;text-decoration-thickness:1px;text-underline-offset:5px;}
.lf-scope a:hover {color:var(--lf-gold);}
.lf-scope :where(a,button,summary):focus-visible {outline:3px solid var(--lf-gold);outline-offset:5px;}
.lf-scope :where(button,summary,a) {touch-action:manipulation;}
.lf-scope img {max-width:100%;height:auto;display:block;}
.lf-scope .lf-container {width:min(1100px,calc(100% - 80px));margin-inline:auto;}
.lf-section {padding-block:104px;scroll-margin-top:40px;}
.lf-scope .lf-eyebrow {font-family:var(--lf-sans);font-size:12px;font-weight:600;letter-spacing:.16em;color:var(--lf-gold);line-height:1.8;margin-bottom:20px;}
.lf-scope .lf-heading {max-width:860px;margin:0 auto 52px;text-align:center;}
.lf-scope .lf-heading:after {content:"";display:block;width:42px;height:2px;background:var(--lf-champagne);margin:26px auto 0;}
.lf-scope .lf-lead {font-size:18px;line-height:2;}
.lf-scope .lf-note {font-size:14px;color:var(--lf-muted);line-height:1.85;}
.lf-scope .lf-two {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;}
.lf-scope .lf-three {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.lf-scope .lf-align-center {align-items:center;}
.lf-scope .lf-card {padding:36px;background:var(--lf-white);border:1px solid var(--lf-border);border-radius:14px;box-shadow:0 10px 30px #292e2907;min-width:0;}
.lf-scope .lf-card-muted {background:var(--lf-greige);}
.lf-scope .lf-copy h2 {margin-bottom:28px;}
.lf-scope .lf-closing {font-family:var(--lf-serif);font-size:clamp(22px,2.5vw,32px);text-align:center;margin-top:52px;}
.lf-scope .lf-actions {display:flex;flex-wrap:wrap;gap:16px;margin-top:30px;}
.lf-scope .lf-button {max-width:100%;}
.lf-scope .lf-button .wp-block-button__link,.lf-scope .lf-reservation {
  display:inline-flex;justify-content:center;align-items:center;text-align:center;
  max-width:100%;min-height:54px;padding:17px 30px;border-radius:10px;border:1px solid transparent;
  background:var(--lf-olive);color:var(--lf-white);font-family:var(--lf-sans);font-size:16px;font-weight:600;
  line-height:1.7;letter-spacing:.02em;text-decoration:none;cursor:pointer;
  box-shadow:0 7px 18px #414c3a17;transition:background .18s ease,box-shadow .18s ease;
}
.lf-scope .lf-button a:hover,.lf-scope a.lf-reservation:hover {background:#303b2a;color:var(--lf-white);box-shadow:0 8px 22px #414c3a28;}
.lf-scope .lf-button a:active,.lf-scope a.lf-reservation:active {box-shadow:none;}
.lf-scope button.lf-reservation:disabled {background:var(--lf-greige);color:var(--lf-muted);border-color:var(--lf-border);box-shadow:none;cursor:not-allowed;}
.lf-scope .lf-reservation-wrap .lf-note {margin-top:12px;}
.lf-header {display:flex;justify-content:space-between;align-items:center;gap:24px;padding:12px max(24px,calc((100% - 1100px)/2));background:var(--lf-white);}
.lf-scope .lf-logo {width:80px;flex-shrink:0;}
.lf-scope .lf-logo img {width:80px;height:80px;object-fit:contain;}
.lf-header .lf-nav {display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px;justify-content:center;}
.lf-header .lf-nav a {display:inline-flex;align-items:center;min-height:44px;font-size:14px;text-decoration:none;}
.lf-header .lf-actions {margin:0;}
.lf-header .lf-button a {padding:12px 22px;font-size:14px;}
.lf-hero {position:relative;min-height:720px;overflow:hidden;padding-block:76px;}
.lf-hero .lf-hero-photo {position:absolute;inset:0;z-index:0;}
.lf-hero .lf-hero-photo img {width:100%;height:100%;object-fit:cover;object-position:67% center;}
.lf-hero:after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f9f8f4 0%,#f9f8f4f2 29%,#f9f8f4d9 46%,#f9f8f430 69%,transparent 85%);z-index:1;pointer-events:none;}
.lf-hero .lf-container {position:relative;z-index:2;}
.lf-hero .lf-hero-copy {width:60%;max-width:800px;}
.lf-hero .lf-hero-title {margin-bottom:28px;}
.lf-hero .lf-badges {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:32px;border-block:1px solid var(--lf-border);padding-block:18px;}
.lf-hero .lf-badges p {font-size:13px;line-height:1.9;margin:0;}
.lf-hero .lf-badges p+p {border-left:1px solid var(--lf-border);padding-left:12px;}
.lf-pain {background:var(--lf-white);}
.lf-pain .lf-concern {padding-top:18px;border-top:1px solid var(--lf-border);margin-top:18px;}
.lf-dark {background:var(--lf-olive);color:var(--lf-white);}
.lf-dark .lf-container {max-width:900px;}
.lf-dark .lf-eyebrow {color:var(--lf-champagne);}
.lf-dark .lf-lead {margin-top:32px;}
.lf-dark .lf-prose {margin-top:24px;max-width:760px;color:#eeede7;}
.lf-dark .lf-closing {text-align:left;color:var(--lf-champagne);}
.lf-cause-photo {aspect-ratio:4/5;overflow:hidden;border-radius:100px 12px 12px 12px;}
.lf-cause-photo img {width:100%;height:100%;object-fit:cover;object-position:66% center;}
.lf-scope .lf-point {padding:22px 0;border-block:1px solid var(--lf-border);font-family:var(--lf-serif);font-size:22px;margin-top:28px;}
.lf-soft {background:var(--lf-greige);}
.lf-scope .lf-steps {display:grid;gap:0;}
.lf-scope .lf-step {display:grid;grid-template-columns:100px 230px 1fr;gap:28px;align-items:center;padding:28px 0;border-top:1px solid var(--lf-border);}
.lf-scope .lf-step:last-child {border-bottom:1px solid var(--lf-border);}
.lf-scope .lf-step-number {font-family:var(--lf-serif);font-size:21px;color:var(--lf-gold);}
.lf-scope .lf-step h3 {font-size:24px;}
.lf-comparison {background:var(--lf-white);}
.lf-scope .lf-comparison-table {overflow-x:auto;scrollbar-color:var(--lf-muted) var(--lf-greige);border-radius:10px;border:1px solid var(--lf-border);margin:0 0 18px;}
.lf-comparison-table table {border-collapse:collapse;table-layout:fixed;width:100%;min-width:620px;margin:0;font-size:16px;}
.lf-comparison-table :where(th,td) {padding:22px;text-align:left;border:0;border-bottom:1px solid var(--lf-border);vertical-align:top;font-weight:400;}
.lf-comparison-table th {background:var(--lf-greige);font-weight:600;}
.lf-comparison-table :where(th,td):first-child {width:21%;}
.lf-comparison-table th:last-child {background:var(--lf-olive);color:var(--lf-white);}
.lf-comparison-table td:last-child {background:var(--lf-bg);font-weight:600;}
.lf-comparison-table tr:last-child td {border-bottom:0;}
.lf-scope .lf-sample-note {background:var(--lf-white);border-left:3px solid var(--lf-gold);padding:18px 22px;margin-bottom:28px;}
.lf-scope .lf-three h3 {font-size:22px;line-height:1.85;margin-bottom:28px;}
.lf-scope .lf-story-logo {max-width:250px;margin:0 auto 32px;}
.lf-scope .lf-profile-brand {text-align:center;}
.lf-scope .lf-profile-brand .lf-eyebrow {margin-bottom:8px;}
.lf-scope .lf-credentials {border-top:1px solid var(--lf-border);margin-top:28px;}
.lf-scope .lf-credentials p {padding:16px 0;margin:0;border-bottom:1px solid var(--lf-border);}
.lf-scope .lf-offer-card h3 {margin-bottom:24px;}
.lf-scope .lf-price {font-family:var(--lf-serif);font-size:23px;margin-bottom:18px;}
.lf-scope .lf-reservation-wrap {margin-top:28px;}
.lf-scope .lf-reservation {width:100%;}
.lf-faq {background:var(--lf-white);}
.lf-scope .lf-faq-list {max-width:860px;margin:auto;}
.lf-scope .lf-faq-item {border-top:1px solid var(--lf-border);padding:0;margin:0;}
.lf-scope .lf-faq-item:last-child {border-bottom:1px solid var(--lf-border);}
.lf-scope .lf-faq-item summary {cursor:pointer;min-height:60px;padding:22px 10px;font-size:18px;list-style:revert;}
.lf-scope .lf-faq-item summary::marker {color:var(--lf-gold);}
.lf-scope .lf-faq-item p {margin:0;padding:0 30px 25px;color:var(--lf-muted);}
.lf-faq .lf-actions {justify-content:center;}
.lf-footer {padding:42px max(24px,calc((100% - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;border-top:1px solid var(--lf-border);}
.lf-footer p {margin:0;font-size:14px;}
.lf-footer .lf-top a {display:inline-flex;min-height:44px;align-items:center;}
.lf-scope *::-webkit-scrollbar {height:12px;width:12px;}
.lf-scope *::-webkit-scrollbar-track {background:var(--lf-greige);}
.lf-scope *::-webkit-scrollbar-thumb {background:var(--lf-muted);border:3px solid var(--lf-greige);border-radius:6px;}
.lf-scope *::-webkit-scrollbar-thumb:hover {background:var(--lf-olive);}
.lf-scope *::-webkit-scrollbar-thumb:active {background:var(--lf-ink);}
@media(max-width:1000px) {
 .lf-header {flex-wrap:wrap;gap:4px 18px;}
 .lf-header .lf-nav {order:3;flex-basis:100%;justify-content:center;}
 .lf-scope .lf-two {gap:28px;}
 .lf-scope .lf-card {padding:26px;}
 .lf-scope .lf-three {grid-template-columns:1fr;}
 .lf-scope .lf-step {grid-template-columns:84px 190px 1fr;gap:18px;}
 .lf-hero .lf-hero-copy {width:65%;}
}
@media(max-width:760px) {
 .lf-section {padding-block:72px;}
 .lf-scope .lf-container {width:calc(100% - 40px);}
 .lf-scope .lf-two {grid-template-columns:1fr;gap:28px;}
 .lf-scope h1 {font-size:clamp(38px,8vw,58px);}
 .lf-scope h2 {font-size:clamp(26px,5.8vw,34px);}
 .lf-scope .lf-heading {margin-bottom:36px;}
 .lf-hero {padding-top:0;padding-bottom:54px;min-height:0;}
 .lf-hero:after {display:none;}
 .lf-hero .lf-hero-photo {position:relative;aspect-ratio:16/10;}
 .lf-hero .lf-hero-photo img {object-position:60% center;}
 .lf-hero .lf-container {margin-top:30px;}
 .lf-hero .lf-hero-copy {width:100%;}
 .lf-hero .lf-hero-title {margin-bottom:20px;}
 .lf-hero .lf-eyebrow {font-size:10px;}
 .lf-hero .lf-badges {gap:8px;}
 .lf-hero .lf-badges p {font-size:12px;}
 .lf-hero .lf-badges p+p {padding-left:8px;}
 .lf-scope .lf-step {grid-template-columns:76px 1fr;gap:12px 18px;padding:24px 0;}
 .lf-scope .lf-step>p:last-child {grid-column:2;}
 .lf-scope .lf-step h3 {font-size:22px;}
 .lf-scope .lf-cause-photo {aspect-ratio:5/4;max-height:430px;border-top-left-radius:60px;}
 .lf-scope .lf-story-logo {max-width:180px;}
 .lf-header {padding:8px 20px;}
 .lf-header .lf-logo,.lf-header .lf-logo img {width:66px;height:66px;}
 .lf-header .lf-button a {font-size:13px;padding:12px 15px;}
 .lf-header .lf-nav {gap:2px 16px;}
 .lf-header .lf-nav a {font-size:13px;}
 .lf-footer {padding:30px 20px;align-items:flex-start;flex-direction:column;}
}
@media(prefers-reduced-motion:reduce) {.lf-scope * {scroll-behavior:auto!important;transition:none!important;animation:none!important;}}
@media(forced-colors:active) {.lf-scope * {scrollbar-color:auto;}.lf-scope .lf-button a,.lf-scope .lf-reservation {border:1px solid ButtonText;}}
@media print {.lf-hero .lf-hero-photo {opacity:.2;}.lf-scope {break-inside:auto;}.lf-scope .lf-actions,.lf-header .lf-nav {display:none;}}

/* Generated image placements — the URLs live in native image blocks, never in CSS. */
.lf-scope .lf-cause-photo {aspect-ratio:2/3;}
.lf-scope .lf-cause-photo img {object-position:center;}
.lf-scope .lf-image-caption {margin-top:12px;line-height:1.8;}
.lf-scope .lf-method-visual {margin-bottom:42px;}
.lf-scope .lf-method-space {aspect-ratio:3/2;overflow:hidden;border-radius:14px;}
.lf-scope .lf-method-space img {width:100%;height:100%;object-fit:cover;object-position:center;}
@media(max-width:760px) {
 .lf-scope .lf-cause-photo {aspect-ratio:2/3;max-height:none;}
 .lf-scope .lf-method-space {aspect-ratio:3/2;}
}
