@import url('https://fonts.googleapis.com/css2?family=Allura&family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500&display=swap');
:root{--ink:#4d4441;--muted:#796d67;--rose:#86625e;--paper:#fffdf9;--blush:#f2e7e1;--line:#ded1c7;--serif:'Noto Serif JP','Yu Mincho',serif;--english:'Cormorant Garamond',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:2}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3,.serif{font-family:var(--serif);font-weight:400}h2{font-size:clamp(27px,3vw,43px);line-height:1.9;letter-spacing:.08em}p+p{margin-top:24px}.header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;position:absolute;z-index:20;inset:0 0 auto;background:linear-gradient(#fffdf9e6,transparent)}.brand{font-family:var(--english);font-size:27px;letter-spacing:.1em;line-height:1.1}.brand span{font-family:Arial,sans-serif;display:block;font-size:10px;letter-spacing:.23em;margin-top:10px}.header nav{display:flex;gap:32px;align-items:center;font-size:13px}.nav-cta{border:1px solid #aa9082;padding:8px 22px}.hero{position:relative;min-height:850px;height:100svh;max-height:1100px;overflow:hidden;background:#e9dfd1}.hero-photo{position:absolute;inset:0}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fffdf9f5 0%,#fffdf9bb 28%,#fffdf900 69%),linear-gradient(0deg,#fffdf9,transparent 22%)}.hero-photo img{object-position:65% 50%}.hero-copy{position:relative;padding:180px 0 100px 10%;z-index:2;max-width:800px}.eyebrow{font-size:12px;letter-spacing:.22em;color:var(--rose);margin-bottom:25px}.hero h1{font-size:clamp(32px,3.5vw,51px);line-height:1.85;letter-spacing:.13em}.hero h1 span{color:var(--rose)}.hero-lead{margin-top:25px;font-size:15px;letter-spacing:.06em}.button{display:inline-flex;justify-content:center;align-items:center;min-height:54px;padding:12px 30px;border:1px solid var(--rose);color:var(--rose);background:#fffaf3bd;font-size:14px;letter-spacing:.07em;transition:background .25s,color .25s}.button:hover{background:var(--rose);color:white}.hero .button{margin-top:30px}.hero-price{margin-top:17px;font-size:13px}.hero-price strong{font-family:var(--english);font-size:30px;font-weight:400;letter-spacing:.03em}.hero-price span{margin-left:16px}.hero-script{position:absolute;right:7%;bottom:12%;font-family:var(--english);font-style:italic;font-size:clamp(36px,5vw,75px);color:#fff9ee;text-shadow:0 2px 20px #74544530;transform:rotate(-6deg)}.scroll-cue{position:absolute;bottom:26px;left:50%;font-size:10px;letter-spacing:.22em;display:grid;justify-items:center;gap:10px}.scroll-cue span{display:block;height:32px;width:1px;background:var(--rose)}.section{padding:120px 8%}.intro{text-align:center;position:relative;background:radial-gradient(ellipse at 80% 70%,#f6ece566,transparent 50%)}.intro h2{margin-bottom:35px}.intro p{line-height:2.4;letter-spacing:.06em}.intro .serif{font-size:21px;margin-top:35px}footer{text-align:center;padding:60px;font-family:var(--english);letter-spacing:.12em;border-top:1px solid var(--line)}a:focus-visible,summary:focus-visible{outline:2px solid var(--rose);outline-offset:6px}@media(max-width:750px){.header{height:80px;padding:0 6%}.brand{font-size:23px}.brand span{font-size:9px}.header nav>a:not(.nav-cta){display:none}.nav-cta{padding:6px 10px;font-size:11px}.hero{height:900px;min-height:0;max-height:none}.hero-copy{padding:350px 7% 60px}.hero-photo img{object-position:65% 10%}.hero-photo:after{background:linear-gradient(0deg,#fffdf9 4%,#fffdf9ec 25%,#fffdf944 63%,#fffdf933),linear-gradient(90deg,#fffdf955,transparent)}.hero h1{font-size:32px;line-height:1.7}.hero-copy .eyebrow{font-size:10px;margin-bottom:17px}.hero-script{top:260px;bottom:auto;right:7%;font-size:38px}.hero-lead{font-size:14px}.hero-price span{display:block;margin-left:0}.scroll-cue{left:auto;right:7%;bottom:40px}.section{padding:85px 7%}.intro p{font-size:14px;line-height:2.5}.intro .serif{font-size:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
.intro{overflow:hidden;min-height:650px}.intro-floral{position:absolute;width:37%;height:74%;right:-9%;top:10%;opacity:.34;filter:blur(2px);mask-image:radial-gradient(ellipse,#000 15%,transparent 70%)}.intro-inner{position:relative}.chapter{position:relative}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%;max-width:1500px;margin:auto}.photo-wrap{height:620px;position:relative;overflow:hidden}.photo-wrap:after,.treatment-photo:after,.story-photo:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#ffefd733,transparent 60%);box-shadow:inset 0 0 70px #fff9ed55}.photo-wrap img{filter:saturate(.8)}.photo-note{position:absolute;bottom:25px;left:25px;color:white;font-size:11px;letter-spacing:.18em}.chapter-copy h2{margin-bottom:28px}.chapter-copy p,.section-head>p:last-child{font-size:15px;line-height:2.2}.text-link{display:inline-block;border-bottom:1px solid var(--rose);font-size:14px;margin-top:28px;padding-bottom:4px;color:var(--rose)}.section-head{text-align:center;max-width:800px;margin:0 auto 65px}.section-head h2{margin-bottom:25px}.doctors{background:#f6f1ec}.doctor-grid{display:grid;grid-template-columns:1fr 1fr;gap:6%;max-width:1100px;margin:auto}.doctor{display:grid;grid-template-columns:45% 55%;align-items:center}.doctor-photo{height:340px;position:relative}.doctor-photo img{object-position:50% 20%;filter:saturate(.65)}.doctor-text{padding:25px 0 25px 25px}.doctor-text .eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:12px}.doctor-text h3{font-size:24px;white-space:nowrap}.doctor-text h3 small{font-family:'Noto Sans JP',sans-serif;font-size:11px;display:block;color:var(--muted)}.doctor-text p:last-child{font-size:13px;line-height:2.1;margin-top:18px}.journey{overflow:hidden}.journey-bg{position:absolute;inset:0}.journey-bg img{filter:blur(2px);transform:scale(1.04)}.journey-bg:after{content:'';position:absolute;inset:0;background:#fffdf9de}.journey-inner{position:relative}.timeline{max-width:760px;margin:auto;padding:0;list-style:none}.timeline li{display:flex;gap:35px;padding:0 0 38px;position:relative}.timeline li:last-child{padding-bottom:0}.time-number{font-family:var(--english);font-size:37px;color:var(--rose);width:64px;flex-shrink:0;text-align:center;line-height:1.2;background:#fffbf7;border:1px solid #d7c5b3;border-radius:50%;height:64px;padding:7px;z-index:2}.timeline li:not(:last-child):before{content:'';height:100%;position:absolute;left:32px;top:0;width:1px;background:#d7c5b3}.timeline h3{font-size:22px;margin-bottom:12px}.timeline p{font-size:14px;line-height:2.1}.treatments{display:grid;grid-template-columns:42% 58%;padding-left:0;align-items:center;max-width:1500px;margin:auto}.treatment-photo{height:900px;position:relative;overflow:hidden}.treatment-photo img{object-position:50% 25%;filter:saturate(.85)}.floating-script{font-family:var(--english);font-style:italic;position:absolute;color:#fff9ef;font-size:45px;line-height:1.2;left:12%;bottom:8%;transform:rotate(-6deg);text-shadow:0 2px 20px #4b39224d}.treatment-content{padding-left:13%}.treatment-content h2{margin-bottom:25px}.treatment-content>p{font-size:15px}.menu-groups{margin-top:32px}.menu-groups>div{border-top:1px solid var(--line);padding:18px 0}.menu-groups h3{font-family:var(--english);font-size:30px;color:var(--rose)}.menu-groups h3 span{font-family:'Noto Sans JP',sans-serif;font-size:12px;margin-left:18px;color:var(--ink)}.menu-groups ul{display:flex;flex-wrap:wrap;gap:5px 22px;list-style:none;padding:0;margin:8px 0 0;font-size:13px}.menu-groups li:before{content:'・';color:#b59981}.note{font-size:12px!important;line-height:1.9!important;color:var(--muted);letter-spacing:0}.programs{background:#f3e9e4;overflow:hidden}.programs>.section-head,.program-grid,.program-note{position:relative}.program-floral{position:absolute;inset:0;opacity:.13}.program-floral img{filter:blur(5px);transform:scale(1.1)}.program-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:1000px;margin:auto}.program-card{background:#fffdfaeb;border:1px solid #e3d6ce;text-align:center;padding:45px 38px}.program-en{font-family:var(--english);font-size:45px;font-style:italic;color:#9c7965;line-height:1.2}.program-card h3{font-size:25px;margin:18px 0 20px}.program-card>p:not(.program-en){font-size:14px}.price{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-top:28px;white-space:nowrap}.price strong{font-family:var(--english);font-size:57px;font-weight:400;line-height:1.3}.price span{font-size:12px}.total{margin-top:5px!important;padding-bottom:25px;border-bottom:1px solid var(--line)}.total b{font-weight:500}.program-description{font-size:13px;text-align:left;line-height:2.1;margin:25px 0}.program-card .button{width:100%;font-size:13px}.filled{background:var(--rose);color:white}.filled:hover{background:#654845}.program-note{max-width:1000px;margin:30px auto 0!important}.story{display:grid;grid-template-columns:44% 56%;align-items:center;max-width:1450px;margin:auto}.story-photo{height:650px;position:relative}.story-photo img{object-position:35% 50%;filter:saturate(.65)}.story-mark{font-family:var(--english);font-style:italic;position:absolute;bottom:50px;left:30px;color:white;font-size:51px;transform:rotate(-6deg)}.story-copy{padding-left:14%}.story-kicker{font-size:12px!important;line-height:2!important;margin-bottom:22px}.story-copy h2{font-size:clamp(25px,2.5vw,36px);margin-bottom:28px}.story-copy>p{font-size:14px;line-height:2.2}.story-copy .button{margin-top:30px}.story-copy .note{margin-top:20px}.homecare{padding-top:40px}.homecare .photo-wrap{height:470px}.homecare .photo-wrap img{object-fit:contain;background:#f7f3ec}.sanctuary{min-height:700px;display:flex;justify-content:flex-end;align-items:center;overflow:hidden}.sanctuary-photo{position:absolute;inset:0}.sanctuary-photo img{object-position:35% 50%}.sanctuary-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fffdf900 0%,#fffdf960 40%,#fffdf9f2 72%)}.sanctuary-copy{position:relative;margin:80px 9% 80px 50%;max-width:480px}.sanctuary-copy h2{margin-bottom:30px}.sanctuary-copy p{font-size:15px;line-height:2.3}.faq-section{display:grid;grid-template-columns:35% 58%;max-width:1400px;margin:auto;gap:7%}.faq-visual{height:560px;position:relative}.faq-visual img{filter:saturate(.6);object-position:30% 50%}.faq-visual .floating-script{font-size:40px;bottom:35px}.faq-content h2{font-size:32px;margin-bottom:35px}.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}.faq-list summary{cursor:pointer;font-size:14px;list-style:none;padding-right:30px;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'＋';position:absolute;right:0;color:var(--rose)}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:13px;line-height:2.1;margin-top:15px;color:var(--muted)}.closing{height:730px;position:relative;display:grid;place-items:center;overflow:hidden}.closing-photo{position:absolute;inset:0}.closing-photo img{object-position:50% 40%;filter:blur(1px)}.closing-photo:after{content:'';position:absolute;inset:0;background:#fffdf9cb}.closing-copy{position:relative;text-align:center;padding:60px 7%}.closing-copy h2{margin-bottom:25px}.closing-copy>p{font-size:15px;line-height:2.2}.closing-copy .button{margin-top:36px}.closing-copy .text-link{display:table;margin:22px auto 0}.medical{padding-top:45px;padding-bottom:45px;max-width:1100px;margin:auto}.medical details summary{font-size:13px;cursor:pointer}.medical details p{font-size:12px;color:var(--muted);margin-top:20px}.medical .text-link{font-size:12px}footer{font-family:'Noto Sans JP',sans-serif;background:#f7f3ef;padding:65px 7%}footer>p{font-size:12px;margin-top:25px;line-height:2;letter-spacing:.03em}.footer-links{display:flex;gap:25px;justify-content:center;font-size:12px;margin-top:20px}footer .note{max-width:620px;margin:30px auto 20px}footer small{font-size:10px;color:var(--muted)}.mobile-booking{display:none}.reveal{transition:opacity 1.3s ease,transform 1.5s cubic-bezier(.2,.65,.25,1),filter 1.4s ease}.will-reveal{opacity:0;transform:translateY(32px);filter:blur(5px)}.will-reveal.visible{opacity:1;transform:translateY(0);filter:blur(0)}.doctor-grid>.reveal:nth-child(2),.program-grid>.reveal:nth-child(2){transition-delay:.15s}.hero-copy{animation:hero-in 1.6s ease both}.hero-photo img{animation:photo-in 2.4s ease both}.hero-script{animation:hero-in 2s .3s ease both}@keyframes hero-in{from{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}@keyframes photo-in{from{opacity:.4;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@media(min-width:751px) and (max-width:1100px){.header nav{gap:17px}.hero-copy{padding-left:7%}.doctor{grid-template-columns:1fr}.doctor-photo{height:330px}.doctor-text{padding:25px 5px}.program-card{padding:35px 22px}.split{gap:6%}.photo-wrap{height:530px}.faq-section{gap:5%;grid-template-columns:35% 60%}}
@media(max-width:750px){body{font-size:16px}.intro{min-height:570px}.intro-floral{width:70%;right:-30%;opacity:.25}.split,.story,.treatments,.faq-section{display:flex;flex-direction:column;gap:40px}.chapter-copy,.story-copy,.treatment-content{padding:0;width:100%}.photo-wrap{height:420px;width:100%}.split .photo-wrap{order:0}.split .chapter-copy{order:1}.chapter-copy p,.section-head>p:last-child{font-size:14px}.section-head{margin-bottom:40px}.doctor-grid{grid-template-columns:1fr;gap:35px}.doctor{grid-template-columns:42% 58%}.doctor-photo{height:280px}.doctor-text{padding-left:20px}.doctor-text h3{font-size:22px}.doctor-text p:last-child{font-size:12px}.doctor-text .eyebrow{font-size:9px}.timeline li{gap:20px;padding-bottom:30px}.time-number{height:48px;width:48px;font-size:28px;padding:5px}.timeline li:not(:last-child):before{left:24px}.timeline h3{font-size:18px}.timeline p{font-size:13px}.treatments{padding:0 7% 80px}.treatment-photo{height:450px;width:calc(100% + 16.3%);margin:0 -8.15%;overflow:hidden}.treatment-photo img{object-position:50% 20%}.floating-script{font-size:37px}.menu-groups ul{font-size:13px}.program-grid{grid-template-columns:1fr;gap:25px}.program-card{padding:35px 25px}.program-en{font-size:43px}.price strong{font-size:56px}.program-note{font-size:11px!important}.story-photo{height:400px;width:100%}.story-copy h2{font-size:29px}.story-kicker{font-size:11px!important}.story-copy .button{width:100%}.homecare{padding-top:0}.homecare .photo-wrap{height:330px}.homecare .chapter-copy{order:1}.sanctuary{min-height:750px;align-items:flex-end;justify-content:center}.sanctuary-photo img{object-position:30% 10%}.sanctuary-photo:after{background:linear-gradient(0deg,#fffdf9 3%,#fffdf9ed 30%,#fffdf950 65%,transparent)}.sanctuary-copy{margin:380px 7% 60px;max-width:none;width:100%}.sanctuary-copy p{font-size:14px}.faq-visual{width:100%;height:240px}.faq-content{width:100%}.faq-content h2{font-size:29px}.faq-section{gap:35px}.faq-list summary{font-size:13px}.closing{height:620px}.closing-copy{width:100%}.closing-copy h2{font-size:29px}.closing-copy>p{font-size:13px}.closing-copy .button{font-size:13px;padding:12px 18px;width:100%;max-width:350px}.footer-links{flex-wrap:wrap;gap:10px 20px}footer{padding-bottom:110px}.mobile-booking{display:flex;position:fixed;z-index:30;bottom:0;inset-inline:0;background:#fffdf9f2;backdrop-filter:blur(12px);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:10px;transform:translateY(110%);transition:transform .4s ease;border-top:1px solid var(--line)}.mobile-booking.show{transform:translateY(0)}.mobile-booking a{flex:1;text-align:center;border:1px solid var(--rose);padding:8px 4px;font-size:12px}.mobile-booking a:last-child{background:var(--rose);color:white}.will-reveal{transform:translateY(22px);filter:blur(3px)}}
@media(prefers-reduced-motion:reduce){.will-reveal{opacity:1;transform:none;filter:none}.hero-copy,.hero-photo img,.hero-script{animation:none}.reveal{transition:none}.mobile-booking{transition:none}}

/* Requested typography: white English calligraphy and Mincho prices. */
.hero-script,.floating-script,.story-mark{font-family:'Allura','Snell Roundhand','Segoe Script',cursive;font-style:normal;font-weight:400;letter-spacing:0}
.photo-note{font-family:'Allura','Snell Roundhand','Segoe Script',cursive;font-size:24px;letter-spacing:0}
.hero-price strong,.price strong,.total b{font-family:var(--serif);font-style:normal;font-weight:400;font-variant-numeric:lining-nums}
.price strong{font-size:52px}
@media(max-width:750px){.price strong{font-size:48px}.hero-price strong{font-size:28px}}

/* Supplied clinic wordmarks: preserve the original artwork and proportions. */
.brand{display:inline-flex;flex-direction:column;align-items:flex-start}
.brand .brand-wordmark{display:block;width:290px;max-width:100%;height:auto;object-fit:contain}
.brand span{margin-top:5px;padding-left:8px}
footer .brand{align-items:center}
footer .brand .brand-wordmark{width:340px}
footer .brand span{padding-left:0}
.photo-note{display:block;width:260px;max-width:72%;line-height:1}
.photo-note img{display:block;width:100%;height:auto;object-fit:contain;filter:none}
@media(max-width:750px){.header .brand .brand-wordmark{width:190px}.header .brand span{font-size:7px;letter-spacing:.18em;padding-left:5px}.header nav{flex-shrink:0}.header{gap:15px}footer .brand .brand-wordmark{width:280px}.photo-note{width:230px}}
@media(max-width:370px){.header .brand .brand-wordmark{width:175px}.header{gap:10px}}

/* Journal featured image: retain its complete landscape composition. */
.story-photo{height:auto;aspect-ratio:1200 / 676;overflow:hidden}
.story-photo img{width:100%;height:100%;object-fit:contain;object-position:center;filter:none}
.story-mark{bottom:20px;left:24px;font-size:45px}
.heading-line{display:block}
@media(max-width:750px){
 .intro h2,.chapter h2,.closing h2{font-size:clamp(22px,6.65vw,30px);letter-spacing:.04em;line-height:1.85}
 .intro h2.heading-medium,.chapter h2.heading-medium,.closing h2.heading-medium{font-size:clamp(21px,6.15vw,29px)}
 .intro h2.heading-long,.chapter h2.heading-long,.closing h2.heading-long{font-size:clamp(19px,5.8vw,27px)}
 .heading-line{white-space:nowrap}
 .story-photo{height:auto;aspect-ratio:1200 / 676}
 .story-mark{font-size:36px;bottom:12px;left:20px}
}

/* Bridal gift: an invitation framed in the original soft palette. */
.bridal-offer{position:relative;overflow:hidden;background:linear-gradient(130deg,#f8f0ea,#f2e7e1 55%,#fbf7f1);padding-top:85px;padding-bottom:90px}
.offer-floral{position:absolute;inset:0 0 0 40%;opacity:.13;filter:blur(6px);mask-image:linear-gradient(90deg,transparent,#000)}
.offer-inner{position:relative;max-width:870px;margin:auto;text-align:center}
.offer-inner h2{margin-bottom:24px;font-size:clamp(27px,2.7vw,38px)}
.offer-lead,.offer-message{font-size:14px;line-height:2.2}
.offer-gifts{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;border-top:1px solid #d6c1b5;border-bottom:1px solid #d6c1b5;padding:28px 20px;margin:32px auto 24px;max-width:700px}
.offer-gifts p{margin:0}.offer-brand{display:block;font-size:10px;letter-spacing:.2em;color:var(--rose);margin-bottom:10px}
.offer-product{display:block;font-family:var(--serif);font-size:21px;line-height:1.8;letter-spacing:.03em}
.offer-quantity{display:block;font-size:25px}.offer-plus{font-family:var(--serif);font-size:23px;color:#a48a7d}
.offer-conditions{max-width:620px;margin:30px auto 0;text-align:left;font-size:12px;line-height:2;color:#6d5c54}
.offer-condition-label{font-weight:500;letter-spacing:.08em;margin-bottom:8px}
.offer-conditions p+p{margin-top:0}.offer-conditions .offer-photo-note{margin-top:8px}
/* Move the welcome photo left so the woman on its right stays visible. */
.sanctuary-photo img{transform:translateX(-12%)}
@media(max-width:750px){
 .bridal-offer{padding-top:65px;padding-bottom:65px}
 .offer-inner .eyebrow{font-size:10px;letter-spacing:.16em}
 .offer-lead,.offer-message{font-size:13px}
 .offer-gifts{grid-template-columns:1fr;gap:15px;padding:25px 12px;margin-top:28px}
 .offer-product{font-size:20px}.offer-brand{margin-bottom:7px}.offer-plus{font-size:18px;line-height:1}
 .offer-quantity{font-size:24px}.offer-conditions{font-size:12px;margin-top:25px}
 .sanctuary-photo img{transform:none;object-position:62% 10%}
}

@media(min-width:751px){.sanctuary-photo:after{background:linear-gradient(90deg,#fffdf900 0%,#fffdf940 40%,#fffdf9 78%)}}

/* Official gift product photography, values and shop links. */
.offer-gifts{max-width:790px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:26px}
.offer-gift{min-width:0}.offer-product-link{display:block}
.offer-image{display:flex;height:220px;align-items:center;justify-content:center;margin:14px auto 22px}
.offer-image img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.offer-gift .offer-product{font-size:20px;min-height:76px}
.offer-gift .offer-quantity{font-size:23px}
.offer-gifts .offer-value{margin-top:16px;font-size:13px;color:var(--rose)}
.offer-value span,.offer-total strong{font-family:var(--serif);font-weight:400;font-variant-numeric:lining-nums}
.offer-value span{font-size:26px;margin-right:3px}
.offer-unit{display:block;font-size:11px;letter-spacing:.02em;color:var(--muted)}
.offer-shop-link{margin-top:18px;font-size:12px;letter-spacing:.02em}
.offer-product-link:hover .offer-shop-link{color:var(--ink);border-color:var(--ink)}
.offer-total{font-size:14px;line-height:2;color:var(--rose)}
.offer-total strong{font-size:34px;letter-spacing:.03em;margin-right:4px}
@media(max-width:750px){
 .offer-gifts{grid-template-columns:minmax(0,1fr);gap:26px;padding:25px 12px}
 .offer-image{height:210px;max-width:270px;margin-bottom:18px}
 .offer-gift .offer-product{min-height:0;font-size:20px}
 .offer-gifts .offer-value{margin-top:12px}
 .offer-total{font-size:12px}.offer-total strong{font-size:28px}
}

/* Special bridal gift: a framed invitation with an illustrated interview. */
.bridal-offer{padding:85px 5%;background:radial-gradient(ellipse at 8% 12%,#fffaf0 0%,transparent 52%),linear-gradient(135deg,#e8d9c7,#f3e8dc 52%,#e4d2bf)}
.offer-floral{inset:0;opacity:.07}
.offer-inner{max-width:1180px;padding:52px 54px 55px;background:#fffdf7f5;border:1px solid #bda580;box-shadow:0 18px 60px #80644612}
.offer-inner:before{content:'';position:absolute;inset:9px;border:1px solid #d5c4a7;pointer-events:none}
.offer-dedication{position:relative;margin:0 auto 40px}
.offer-ornament{display:block;color:#a18452;font-size:30px;line-height:1;margin-bottom:17px}
.offer-dedication .eyebrow{font-size:11px;letter-spacing:.28em;color:#856b42;margin-bottom:8px}
.offer-dedication .offer-script{font-family:'Allura','Snell Roundhand','Segoe Script',cursive;font-size:clamp(42px,4.7vw,64px);font-weight:400;line-height:1.2;color:#9a7950;margin:0}
.offer-dedication-note{display:block;font-size:11px;letter-spacing:.15em;color:#877562;margin-top:13px}
.offer-story{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,1fr);align-items:center;gap:42px;text-align:left}
.offer-interview{margin:0;min-width:0}
.offer-interview img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.offer-interview figcaption{font-size:11px;letter-spacing:.06em;color:#88765f;text-align:center;margin-top:14px}
.offer-introduction{min-width:0}.offer-introduction h2{font-size:clamp(24px,2.35vw,33px);line-height:1.85;letter-spacing:.035em;margin-bottom:24px}
.offer-story .offer-lead{font-size:13px;line-height:2.2}.offer-story-copy{font-size:12px;line-height:2.2;color:#887565;margin-top:20px}
.offer-gift-heading{display:flex;align-items:center;gap:22px;justify-content:center;margin:42px auto 0;max-width:790px}
.offer-gift-heading span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#c7ae85)}
.offer-gift-heading span:last-child{transform:rotate(180deg)}
.offer-gift-heading p{font-size:10px;letter-spacing:.24em;color:#987849}
.bridal-offer .offer-gifts{border-top:0;border-bottom:0;margin-top:16px;margin-bottom:26px;padding-top:10px;padding-bottom:10px}
.bridal-offer .offer-image{height:200px}.bridal-offer .offer-brand{color:#987849}
.bridal-offer .offer-total{padding:18px 24px;background:#eee3d3;border-top:1px solid #d6bf98;border-bottom:1px solid #d6bf98;max-width:790px;margin:25px auto 0;color:#735837}
.bridal-offer .offer-message{margin-top:25px}
.bridal-offer .offer-conditions{max-width:700px;border-top:1px solid #e6d8c6;padding-top:24px}
.bridal-offer .offer-photo-note{color:#715c41}
@media(max-width:950px) and (min-width:751px){.offer-inner{padding-left:32px;padding-right:32px}.offer-story{gap:26px}.offer-introduction h2{font-size:24px}}
@media(max-width:750px){
 .bridal-offer{padding:55px 4%}.offer-inner{padding:38px 22px 38px}.offer-inner:before{inset:6px}
 .offer-dedication{margin-bottom:28px}.offer-ornament{font-size:25px;margin-bottom:14px}
 .offer-dedication .eyebrow{font-size:9px;letter-spacing:.18em}.offer-dedication .offer-script{font-size:clamp(35px,10vw,49px)}
 .offer-dedication-note{font-size:10px;margin-top:10px}.offer-story{grid-template-columns:minmax(0,1fr);gap:28px;text-align:center}
 .offer-interview figcaption{font-size:10px;letter-spacing:0;margin-top:10px}
 .offer-introduction h2.heading-medium{font-size:clamp(18px,5.4vw,27px);letter-spacing:.02em}
 .offer-story .offer-lead{font-size:12px}.offer-story-copy{font-size:11px;margin-top:17px}
 .offer-gift-heading{gap:12px;margin-top:30px}.offer-gift-heading p{font-size:9px;letter-spacing:.13em}
 .bridal-offer .offer-gifts{padding:12px 0;gap:24px}.bridal-offer .offer-image{height:190px}
 .offer-gift .offer-product{font-size:18px}.bridal-offer .offer-total{padding:15px 5px;font-size:11px;line-height:2.3}
 .bridal-offer .offer-total strong{font-size:27px}.bridal-offer .offer-message{font-size:12px}
 .bridal-offer .offer-conditions{font-size:11px;padding-top:22px;margin-top:25px}
}

/* Official site footer, shared with hillsgrace.or.jp (values copied from its live CSS). */
footer.ftr{text-align:left;border-top:0;word-break:auto-phrase;text-autospace:no-autospace;font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:16px;line-height:1.9;letter-spacing:.02em;-webkit-font-smoothing:antialiased;background:#211C17;color:#EDE7DE;padding:clamp(52px,6vw,76px) 0 108px}footer.ftr ul{list-style:none;margin:0;padding:0}footer.ftr p,footer.ftr h4,footer.ftr dl{margin:0}footer.ftr img{display:block;max-width:100%}footer.ftr .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px;max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,5vw,56px)}footer.ftr .wm-img{width:min(300px,86%);height:auto;margin-left:calc(-0.0363985 * min(300px,86%))}footer.ftr .corp{font-size:13px;color:rgba(237,231,222,.66);margin-top:12px;line-height:1.9}footer.ftr h4{font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:11.5px;line-height:1.4;letter-spacing:.16em;color:#C9A96E;margin-bottom:13px;font-weight:700}footer.ftr li{font-size:13.5px;margin-bottom:9px}footer.ftr li a:hover,footer.ftr .legal a:hover{color:#fff}footer.ftr .legal{max-width:1200px;margin:42px auto 0;padding:22px clamp(20px,5vw,56px) 0;border-top:1px solid rgba(237,231,222,.14);display:flex;flex-wrap:wrap;gap:9px 26px;font-size:12px;color:rgba(237,231,222,.66)}footer.ftr .ftrinfo{max-width:1200px;margin:38px auto 0;padding-inline:clamp(20px,5vw,56px)}footer.ftr .ftrinfo h4{margin-bottom:14px}footer.ftr .ftrinfo dl{display:grid;grid-template-columns:repeat(2,max-content 1fr);gap:0 18px;border-top:1px solid rgba(237,231,222,.14)}footer.ftr .ftrinfo dt{font-size:11.5px;letter-spacing:.06em;color:#C9A96E;padding:9px 0;border-bottom:1px solid rgba(237,231,222,.1);white-space:nowrap;font-weight:700}footer.ftr .ftrinfo dd{margin:0;font-size:12.5px;color:rgba(237,231,222,.66);padding:9px 0;border-bottom:1px solid rgba(237,231,222,.1);line-height:1.75}@media(max-width:900px){footer.ftr .cols{grid-template-columns:1fr 1fr}}@media(max-width:820px){footer.ftr .ftrinfo dl{grid-template-columns:max-content 1fr}}@media(max-width:560px){footer.ftr .cols{grid-template-columns:1fr}}

/* Program summary (for search and AI answers), in the quiet style of the risk notes. */
.medical details+details{margin-top:18px}.medical .program-summary{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:20px 0 0;font-size:12px;line-height:1.9;color:var(--muted)}.medical .program-summary dt{font-weight:500;white-space:nowrap}.medical .program-summary dd{margin:0}

/* Line breaks used only on phones (hero headline and lead). */
.sp-br{display:none}@media(max-width:750px){.sp-br{display:inline}}

/* Hero headline: a small category line inside h1 (for search), then the main copy. */
.hero h1 .h1-kicker{display:block;font-family:"Noto Sans JP",sans-serif;font-size:14px;line-height:1.7;letter-spacing:.12em;color:var(--rose);font-weight:500;margin-bottom:14px}@media(max-width:750px){.hero h1{font-size:30px}.hero h1 .h1-kicker{font-size:12px;letter-spacing:.06em;margin-bottom:10px}}

/* Payment timing under each program total. */
.total .pay-note{display:block;font-size:11px;line-height:1.6;letter-spacing:.06em;color:var(--muted);margin-top:6px}
