/* Smartphone composition from the supplied 402px-wide design. */
.menu-toggle,.comparison-hint,.sp-break{display:none}
.hero-copy img,.story-track picture,.comparison-table picture{display:block;width:100%;height:auto}
@media(max-width:767px){
 html{scroll-padding-top:80px}
 body{font-size:16px;letter-spacing:.06em}
 .wrap,.narrow{width:81.6%;max-width:none}
 .section-heading{margin-bottom:36px}
 .section-heading>p{font-size:23px;line-height:1.5;letter-spacing:.025em;font-weight:400}
 .section-heading>p:after{width:25px;margin:7px auto 26px}
 .section-heading h2{font-size:24px;line-height:1.4;letter-spacing:.12em;font-weight:600}
 .sp-break{display:block}
 .lead{font-size:15px;line-height:1.6;text-align:center;width:90%;margin:0 auto 26px}
 .header{height:66px;min-height:66px;padding:5px 13px;gap:0}
 .header>a,.header.is-scrolled>a{width:100px;max-width:none;height:52px;margin:0;transform:none}
 .header>a img{width:100%;height:100%;object-fit:contain}
 .menu-toggle{display:flex;flex-direction:column;justify-content:space-between;width:44px;height:40px;padding:7px 4px;border:0;background:transparent;position:relative;z-index:2}
 .menu-toggle span{height:2.5px;width:35px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
 .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(12px) rotate(45deg)}
 .menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
 .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-12px) rotate(-45deg)}
 .header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:24px;background:rgba(255,255,255,.98);box-shadow:0 8px 18px #323e5610;max-height:calc(100svh - 66px);overflow:auto}
 .header.menu-open nav{display:flex;flex-direction:column;gap:20px}
 .header nav>a{display:block;font-size:18px}
 .header nav small{font-size:11px;font-weight:500}
 .header .cta{font-size:14px;padding:14px 20px}
 /* The two photo pairs frame the central copy. */
 .hero{min-height:0;height:auto;padding:0;background:radial-gradient(ellipse 90cqw 60cqw at 0% 100%,rgba(223,91,119,.035),transparent 78%),#fff}
 .hero-photos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:68cqw 68cqw;row-gap:56cqw;margin:0;height:auto;max-height:none;overflow:visible}
 .hero-photo{width:100%;height:68cqw;overflow:hidden}
 .hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transform:none}
 .hero-photo:nth-child(3){grid-row:2;grid-column:2}
 .hero-photo:nth-child(4){grid-row:2;grid-column:1}
 .hero-photo:nth-child(1){clip-path:polygon(0 0,100% 0,100% 93%,0 100%)}
 .hero-photo:nth-child(2){clip-path:polygon(0 0,100% 0,100% 100%,0 93%)}
 .hero-photo:nth-child(3){clip-path:polygon(0 7%,100% 0,100% 100%,0 100%)}
 .hero-photo:nth-child(4){clip-path:polygon(0 0,100% 7%,100% 100%,0 100%)}
 .hero-copy{width:78%;left:11%;top:74.5cqw;z-index:3}
 .hero-copy img{width:100%;height:auto}
 .hero .petal{height:auto;max-width:none;z-index:3;object-fit:contain}
 .hero .petal-1{width:18%;left:4%;top:60cqw;bottom:auto}
 .hero .petal-2{width:11%;left:auto;right:4%;top:70cqw;bottom:auto}
 .hero .petal-3{width:15%;left:5%;top:116cqw;bottom:auto}
 .hero .petal-4{width:9%;left:auto;right:6%;top:104cqw;bottom:auto}
 .hero .petal-5{width:18%;left:auto;right:4%;top:183cqw;bottom:auto}
 /* ABOUT: copy first, then the overlapping photographs. */
 .about{padding:62px 0 48px;overflow:hidden;background:radial-gradient(ellipse 90cqw 60cqw at 0 0,rgba(223,91,119,.035),transparent 78%),#fff}
 .about .section-heading{margin-bottom:40px;position:relative;z-index:2}
 .about .section-heading h2{display:flex;align-items:center;justify-content:center;gap:6px;font-size:28px;letter-spacing:.1em}
 .about .section-heading h2 img{width:123px}
 .about-layout{display:flex;flex-direction:column;gap:64px;width:81.6%}
 .about-copy{order:0;font-size:16px;line-height:2.85;letter-spacing:.05em;padding:0;position:relative;z-index:1}
 .about-copy p+p{margin-top:0}
 .about-copy strong{display:block;font-size:24px;line-height:1.8;font-weight:700}
 .about-pictures{order:1;width:100%;height:94cqw;padding:0;position:relative}
 .about-main-frame{width:72%;height:78cqw;overflow:hidden;border-radius:10px}
 .about-main-frame .about-main{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
 .about-sub{width:39%;height:40cqw;right:0;bottom:0;object-fit:cover;border-radius:5px}
 .about .vertical{right:0;top:154px;width:16%;height:auto;max-width:none;opacity:1}
 /* One story at a time, with arrows beside the card. */
 .stories{width:81.6%;margin:0 auto;padding:30px 0 40px;position:relative}
 .story-heading{display:block;position:static;margin:0 0 28px;min-height:0}
 .story-heading h2{font-size:23px;line-height:1.4;letter-spacing:.06em;position:relative;z-index:1}
 .story-heading h2 span{background:linear-gradient(105deg,#d9476a -5%,#ee7f6c 55%,#f2a650 105%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
 .dreams{width:160px;left:-36px;top:0;opacity:.4}
 .arrows{position:absolute;left:-30px;right:-30px;top:calc(126px + 57cqw);display:flex;justify-content:space-between;gap:0;z-index:4;pointer-events:none;margin:0}
 .arrows button{width:46px;height:46px;pointer-events:auto}
 .story-viewport{padding:6px;margin:-6px;overflow:hidden}
 .story-track{gap:20px;align-items:flex-start}
 .story-track article{flex:0 0 100%;border-radius:10px}
 .story-track picture img{width:100%;height:auto}
 .dots{margin-top:20px;gap:13px;transform:none}
 .dots button{width:9px;height:9px}
 /* Survey cards and numerical results follow the mobile reference order. */
 .real-voice{padding:40px 0 80px;background:radial-gradient(ellipse at 10% 70%,rgba(223,91,119,.04),transparent 60%),linear-gradient(135deg,#fff7f5,#fffaf5)}
 .real-voice .section-heading{margin-bottom:24px}
 .real-voice .section-heading h2{font-size:24px;line-height:1.35}
 .real-voice .lead{margin-bottom:24px}
 .real-voice .lead br{display:none}
 .data-grid{grid-template-columns:1fr;gap:28px}
 .data-grid article{aspect-ratio:1;display:flex;flex-direction:column;position:relative;padding:16px 8px 8px;border:0;border-radius:12px;box-shadow:0 1px 9px #e9d7dc45;overflow:hidden}
 .data-grid h3{font-size:22px;line-height:1.5;margin-bottom:5px;letter-spacing:.02em;position:relative;z-index:1}
 /* Same size and baseline for every pie; the offset splits the difference between centring the circle and the labelled artwork. */
 .data-grid img{display:block;flex:none;align-self:center;max-width:none;height:auto;transform:none}
 .data-grid article:nth-child(1) img{width:108%;margin-top:-19.9%;translate:-.85% 0}
 .data-grid article:nth-child(2) img{width:108%;margin-top:-19.8%;translate:-.85% 0}
 .data-grid article:nth-child(3) img{width:108%;margin-top:-19.8%;translate:-.85% 0}
 .data-grid article:nth-child(4) img{width:106%;margin-top:-19.4%}
 .data-grid article:nth-child(5) img{width:104%;margin-top:-18.1%}
 .data-grid article:nth-child(6) img{width:108%;margin-top:-18.1%;translate:-.85% 0}
 .data-grid article:nth-child(4){order:6}
 .data-grid article:nth-child(5){order:4}
 .data-grid article:nth-child(6){order:5}
 .real-voice .note{font-size:8px;line-height:1.5;letter-spacing:0;margin-top:12px}
 .numbers-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
 .stats{grid-template-columns:1fr;gap:28px;margin-top:120px}
 .stats article{height:214px;padding:30px 12px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center}
 .stats h3{font-size:26px;line-height:1.5;letter-spacing:.03em;margin-bottom:12px;font-weight:600}
 .stats p{font-family:var(--serif);font-size:18px;line-height:1.5;font-weight:600}
 .stats p:empty{display:none}
 .stats strong{font-family:var(--serif);font-size:54px;line-height:1.2;font-weight:400;letter-spacing:.01em;color:var(--pink);white-space:nowrap}
 .stats strong small{font-size:27px;font-weight:400}
 .stats article:nth-child(4){order:6}
 .stats article:nth-child(5){order:4}
 .stats article:nth-child(6){order:5}
 /* PARTNER */
 .partner{padding:38px 0 105px;overflow:hidden;background:linear-gradient(#55afea,#86cef0 65%,#fff)}
 .partner .section-heading{margin-bottom:32px}
 .partner .section-heading>p{color:white;background:none;-webkit-text-fill-color:white}
 .partner .section-heading>p:after{background:#ffffff90}
 .partner .section-heading h2{font-size:24px}
 .partner .lead{width:92%;font-size:15px;line-height:1.55;margin-bottom:44px}
 .partner .lead br{display:none}
 .partner-stats{padding:0;width:81.6%;margin:0 auto 55px;gap:10px}
 .partner-stats article{width:calc(50% - 5px);height:100px;padding:18px 5px 10px;border-radius:6px}
 .partner-stats h3{font-size:14px;white-space:nowrap;letter-spacing:0;margin-bottom:0}
 .partner strong{font-size:40px;line-height:1.2;font-weight:400;color:var(--pink)}
 .partner strong small{font-size:18px;font-weight:400}
 .partner-skyline{width:200%;max-width:none;left:0;bottom:15px;height:260px;object-fit:cover;object-position:left bottom}
 .pp-1{width:15%;top:5%;left:3%}.pp-4{width:16%;top:13%;right:3%}.pp-3{width:14%;top:52%}.pp-2,.pp-5,.pp-6{display:none}
 .logo-group{gap:25px;padding:0 12.5px}
 .logos .logo-group img{width:145px;max-height:58px}
 .logos .logo-group img:first-child{width:88px}
 .logos .logo-group img:nth-child(4){width:120px}
 /* Alternating full-width reason panels. */
 .reasons{padding:22px 0 50px}
 .reasons .section-heading{margin-bottom:66px}
 .reasons .section-heading h2{font-size:23px;line-height:1.35}
 .reasons .section-heading h2 span{font-size:30px}
 .reason,.reason:nth-of-type(even){position:relative;display:flex;flex-direction:column;width:96%;padding:39px 6% 28px;margin:0 0 46px auto;border-radius:0;gap:0;background:#fcf9f0}
 .reason:nth-of-type(even){margin-left:0;margin-right:auto}
 .reason:last-child{margin-bottom:0}
 .reason-photo{width:100%;height:auto;aspect-ratio:1.5;border-radius:3px;overflow:hidden;margin-bottom:26px}
 .reason-photo img{width:100%;height:100%;object-fit:cover}
 .reason-1 .reason-photo img{transform:scale(1.1)}
 .reason-2 .reason-photo img{object-position:center 65%;transform:scale(1.18);transform-origin:center 25%}
 .reason-4 .reason-photo img{transform:scale(1.3);transform-origin:70% bottom}
 .reason-number{position:absolute;top:-37px;left:18px;font:400 60px/1 var(--serif);letter-spacing:0;background:var(--gradient-text);background-clip:text;-webkit-text-fill-color:transparent}
 .reason:nth-of-type(even) .reason-number{left:auto;right:22px}
 .reason h3{font-size:24px;line-height:1.25;letter-spacing:.05em;font-weight:600;text-align:left;margin:0 0 24px}
 .reason h3 em{color:var(--pink)}
 .reason p{font-size:15px;line-height:1.65;letter-spacing:.04em;font-weight:400}
 /* Active SP speech bubble, chart, then the other two choices. */
 .schedule{padding:36px 0 38px;background:radial-gradient(ellipse at 5% 95%,#eeedf4,transparent 60%),linear-gradient(#fcf8f7,#fff6f1)}
 .schedule .section-heading{margin-bottom:26px}
 .schedule .lead{margin-bottom:16px}
 .schedule .lead br{display:none}
 .schedule-layout{position:relative;display:flex;flex-direction:column;gap:12px;width:81.6%;align-items:stretch}
 .schedule-tabs{display:contents}
 .schedule-tabs button,.schedule-tabs button[aria-selected=false]{display:block;width:100%;margin:0;order:2;flex:none}
 .schedule-tabs button[aria-selected=true]{order:0}
 .schedule-tabs button img{width:100%;height:auto}
 .schedule-layout [role=tabpanel]{order:1;position:relative;width:112%;max-width:none;align-self:center;transform:none;margin:0 0 14px}
 .schedule-layout [role=tabpanel] img{width:100%;height:auto}
 /* Wider comparison artwork can be swiped without widening the page. */
 .comparison{padding:40px 0 65px;background-size:auto 100%}
 .comparison h2 img{width:200px;margin:0 auto 6px}
 .comparison-hint{display:block;font-size:10px;color:#9397a2;text-align:center;margin:0 0 24px}
 .comparison-scroll{width:100%;overflow-x:auto;padding:54px 0 10px;overscroll-behavior-x:contain}
 .comparison-table{width:641px;max-width:none;margin:0 28px 0 9.2%;position:relative}
 .comparison-table picture{width:641px}
 .comparison-table picture img{width:100%;height:auto}
 .comparison .balloon{width:110px;left:60px;top:-51px}
 /* PLAN */
 .plan{padding:40px 0 74px;background:radial-gradient(ellipse at 100% 40%,#ffe9ec,transparent 80%),#fcf8f1}
 .plan .section-heading{margin-bottom:40px}
 .price,.services{width:81.6%;border-radius:11px;max-width:none}
 .price{overflow:hidden}
 .price h3{font:700 17px/1.5 var(--sans);padding:4px 8px}
 .price>p{font-size:17px;line-height:1.4;margin:14px 0 4px;letter-spacing:0}
 .price strong{font-size:38px;line-height:1.2;color:var(--pink)}
 .price strong small{font-size:17px}
 .price>small{font-size:10px;margin:0 0 18px;display:block;color:#aaa}
 .services{margin:48px auto 0;padding:32px 22px 34px;position:relative}
 .services>h3{font-size:13px;line-height:1.65;letter-spacing:.02em;padding:0 15px;white-space:nowrap;top:-12px}
 .services>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}
 .services article{min-width:0}
 .services img{width:100%;height:85px;object-fit:contain;margin-bottom:12px;transform:none!important}
 .services article p{font-size:12px;line-height:1.4;letter-spacing:0;font-weight:500}
 /* FAQ */
 .faq{width:81.6%;padding:32px 0 58px}
 .faq .section-heading{margin-bottom:42px;text-align:left}
 .faq .section-heading>p{margin-left:0}
 .faq .section-heading>p:after{margin:7px 0 25px}
 .faq .section-heading h2{font-size:24px;letter-spacing:.1em}
 .faq details{border:1px solid transparent;border-radius:6px;background:linear-gradient(white,white) padding-box,var(--gradient) border-box;margin:13px 0 0}
 .faq summary{font-size:15px;line-height:1.25;padding:16px 30px 16px 15px;min-height:58px;gap:8px;letter-spacing:.02em}
 .faq summary span,.answer>span{font:400 22px/1.2 var(--serif)}
 .faq details[open] summary{background:var(--gradient);color:white}
 .faq summary:after,.faq details[open] summary:after{width:12px;right:11px}
 .faq summary:before{right:16px;height:12px}
 .answer{padding:16px 18px 24px;gap:8px;font-size:15px;line-height:1.8;letter-spacing:.03em;font-weight:400}
 .answer p{font-weight:400}
 /* Closing copy above the group photo, followed by a vertical footer. */
 .closing{display:block;height:186cqw;min-height:720px;max-height:none;padding:0;background-image:url('../img/last.webp');background-size:auto 94cqw;background-repeat:no-repeat;background-position:12% bottom;background-color:#fff9ef}
 .closing:before{inset:0;background:radial-gradient(ellipse at 0 0,rgba(255,220,218,.8),transparent 65%),radial-gradient(ellipse at 100% 10%,rgba(255,250,220,.85),transparent 60%),linear-gradient(#fff8ef 0%,#fff8ef 46%,rgba(255,248,239,.65) 59%,transparent 70%)}
 .closing-copy{position:relative;left:auto;top:auto;width:81.6%;margin:auto;padding-top:48px;z-index:1}
 .closing h2 .closing-title{width:100%;max-width:none}
 .closing p{font-size:15px;line-height:2.6;letter-spacing:.04em;font-weight:500;margin:28px 0 0}
 .closing p br:nth-child(3){display:none}
 .closing-cta{position:absolute;top:162cqw;left:-4.5%;width:109%;max-width:none;margin:0}
 footer{height:auto;padding:32px 0 40px;background:linear-gradient(145deg,#df5b77,#e77672 55%,#f3ac75)}
 .footer-main{display:flex;flex-direction:column;gap:26px}
 .footer-main>a{width:180px}
 .footer-main>a img{width:100%;margin:0}
 footer nav{flex-direction:column;gap:24px;margin:0;align-items:center}
 footer nav a{font-size:20px;line-height:1.4;letter-spacing:.1em}
 footer nav small{font-size:10px;line-height:1.5;font-weight:500}
 .legal{flex-direction:column;gap:8px;align-items:center;margin:52px 0 0}
 .legal a{font-size:12px;line-height:1.6;font-weight:500}
 .copyright{font-size:13px;font-weight:400;margin:72px 0 0;letter-spacing:0}
}
@media(max-width:360px){
 .story-heading h2{font-size:20px}
 .data-grid h3{font-size:19px}
 .stats strong{font-size:46px}
 .reason h3{font-size:21px}
 .partner-stats h3{font-size:12px}
 .price strong{font-size:32px}
 .price strong small,.price>p{font-size:14px}
 .services{padding-left:15px;padding-right:15px}
 .services>h3{font-size:12px}
 .closing{min-height:710px}
 .closing-cta{top:615px}
}
@media(max-width:767px){
 .hero-photo img{transform:scale(1.6);transform-origin:50% 28%}
 .hero-photo:nth-child(3) img,.hero-photo:nth-child(4) img{transform:scale(1.5);transform-origin:50% 27%}
 .about-copy br{display:none}
 .about-copy{font-size:15px;letter-spacing:.03em;line-height:3}
 .about .section-heading{margin-bottom:28px}
 .about-copy strong{margin:2px 0 6px}
 .schedule-tabs button img{aspect-ratio:auto}
}
@media(max-width:767px){
 .reason-1 .reason-photo img{transform:scale(1.3)}
 .schedule-tabs button[aria-selected=true] img{width:110%;max-width:110%;margin-left:-5%}
 .services img{height:100px}
 .services article img{transform:scale(1.12)!important}
 .closing p{font-size:16px}
 .closing p br:nth-child(3){display:initial}
}
@media(max-width:767px){
 .about .vertical{display:block}
 .hero-photo:nth-child(3) img{transform-origin:50% 38%}
 .hero-photo:nth-child(4) img{object-position:80% 30%;transform:scale(1.9);transform-origin:60% 42%}
}

/* Shared mobile spacing rhythm and title typography. */
@media(max-width:767px){
 :root{--sp-section-space:56px;--sp-heading-gap:32px;--sp-copy-gap:28px}
 .about,.real-voice,.partner,.reasons,.schedule,.comparison,.plan,.faq{padding-top:var(--sp-section-space);padding-bottom:var(--sp-section-space)}
 .stories{padding-top:var(--sp-section-space);padding-bottom:var(--sp-section-space)}
 .section-heading,.about .section-heading,.real-voice .section-heading,.partner .section-heading,.schedule .section-heading,.plan .section-heading,.faq .section-heading{margin-bottom:var(--sp-heading-gap)}
 .section-heading>p{letter-spacing:.035em;line-height:1.5}
 .section-heading>p:after{margin-top:8px;margin-bottom:24px}
 .faq .section-heading>p:after{margin:8px 0 24px}
 .section-heading h2,.real-voice .section-heading h2,.partner .section-heading h2,.reasons .section-heading h2,.faq .section-heading h2{font-size:24px;line-height:1.4;letter-spacing:.08em}
 .about .section-heading h2{letter-spacing:.08em}
 .story-heading{margin-bottom:var(--sp-heading-gap)}
 .story-heading h2{letter-spacing:.06em;line-height:1.4}
 .lead,.real-voice .lead,.partner .lead,.schedule .lead{margin-bottom:var(--sp-copy-gap);letter-spacing:.04em;line-height:1.7}
 .reason h3{line-height:1.4;letter-spacing:.06em;margin-bottom:24px}
 .reason p,.answer,.about-copy{letter-spacing:.03em}
 /* Leave clearance for the reason numbers that rise above their panels. */
 .reasons .section-heading{margin-bottom:68px}
 .reason,.reason:nth-of-type(even){margin-bottom:48px}
 .reason:last-child{margin-bottom:0}
 .numbers-title{position:static;width:81.6%;height:auto;overflow:visible;clip-path:none;margin:56px auto 32px;font-size:24px;font-weight:600;line-height:1.5;letter-spacing:.08em;text-align:center;text-wrap:balance}
 .stats{margin-top:0}
 .data-grid,.stats{gap:28px}
 .dreams{top:26px}
 .arrows{top:calc(156px + 57cqw)}
 footer nav{gap:16px}
 footer nav a{font-size:16px;line-height:1.4;letter-spacing:.08em;min-height:44px;min-width:120px;padding:4px 12px;display:flex;flex-direction:column;justify-content:center}
 footer nav small{font-size:10px;line-height:1.5;letter-spacing:.05em}
 /* A quicker, brighter entrance while keeping the same settled positions. */
 .hero>.petal{animation-name:petal-drop-mobile,petal-sway-mobile;animation-duration:2.8s,2.8s;animation-timing-function:cubic-bezier(.2,.55,.35,1),ease-in-out}
 .hero>.petal-1{animation-delay:0s}
 .hero>.petal-2{animation-delay:.12s}
 .hero>.petal-3{animation-delay:.24s}
 .hero>.petal-4{animation-delay:.36s}
 .hero>.petal-5{animation-delay:.48s}
}
@keyframes petal-drop-mobile{
 0%{translate:0 -72px;opacity:0}
 30%{opacity:1}
 100%{translate:0 0;opacity:1}
}

@keyframes petal-sway-mobile{
 0%{margin-left:-4px;rotate:-3deg}
 55%{margin-left:3px;rotate:2deg}
 100%{margin-left:0;rotate:0deg}
}

/* Mobile partner spacing, closing composition and soft navigation. */
@media(max-width:767px){
 .logo-group{gap:14px;padding:0 7px}
 .logos .logo-group img{width:160px;max-height:64px}
 .logos .logo-group img:first-child{width:98px}
 .logos .logo-group img:nth-child(4){width:132px}
 .partner-stats{margin-bottom:38px}
 /* Airy fade in the site's own warm tones: blush coral melting into cream. */
 .closing{height:auto;min-height:0;padding:0;background:radial-gradient(ellipse 75% 24% at 100% 8%,rgba(255,216,190,.5),transparent 100%),radial-gradient(ellipse 80% 22% at 0% 46%,rgba(255,234,196,.45),transparent 100%),linear-gradient(180deg,#fbe4df 0%,#fdeee9 30%,#fff6ef 58%,#fdf1e6 100%)}
 .closing:before{display:none}
 .closing-copy{padding-top:48px;padding-bottom:0}
 .closing-cta{position:relative;top:auto;left:auto;width:109%;max-width:none;margin:28px -4.5% 0}
 .closing:after{content:"";display:block;width:100%;height:94cqw;margin-top:24px;background:linear-gradient(to bottom,#fff6ed 0%,rgba(255,246,237,.8) 9%,rgba(255,246,237,0) 38%),url('../img/last.webp') left bottom / auto 100% no-repeat}
 .menu-toggle span{background:var(--gradient);transition:transform .28s ease,opacity .2s ease}
 .header nav{display:flex;flex-direction:column;gap:20px;background:linear-gradient(135deg,rgba(255,249,248,.98),rgba(255,252,242,.98));border-top:1px solid rgba(223,91,119,.09);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px);transition:opacity .28s ease,transform .32s cubic-bezier(.22,.61,.36,1),visibility 0s .32s}
 .header.menu-open nav{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
}
@media(prefers-reduced-motion:reduce){.header nav,.menu-toggle span{transition:none}}

@media(max-width:767px){.partner-stats article{padding:10px 5px;justify-content:center;align-items:center}.partner-stats h3{line-height:1.5}.partner-stats strong{line-height:1.1}}

/* Keep the panel number anchored to the entire reason card. */
@media(max-width:767px){
 .reason>div:not(.reason-photo){position:static;transform:none;translate:none;scale:none}
 .schedule-layout{overflow-anchor:none}
 /* Eased fade plus a light wash, so the dark window band dissolves into the gradient before the faces begin. */
 .closing:after{margin-top:8px;background:linear-gradient(to bottom,rgba(255,245,238,.7) 0%,rgba(255,245,238,.46) 14%,rgba(255,245,238,.16) 24%,rgba(255,245,238,0) 32%),url('../img/last.webp') left bottom / auto 100% no-repeat;mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.05) 4%,rgba(0,0,0,.16) 8%,rgba(0,0,0,.32) 12%,rgba(0,0,0,.52) 16%,rgba(0,0,0,.7) 20%,rgba(0,0,0,.84) 24%,rgba(0,0,0,.94) 29%,#000 35%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.05) 4%,rgba(0,0,0,.16) 8%,rgba(0,0,0,.32) 12%,rgba(0,0,0,.52) 16%,rgba(0,0,0,.7) 20%,rgba(0,0,0,.84) 24%,rgba(0,0,0,.94) 29%,#000 35%)}
 footer nav a{font-size:18px;min-height:48px}
}

/* Alternate rectangular mobile hero and a seamless expanded menu. */
.sp-petal{display:none}
@media(max-width:767px){
 .header.menu-open,.header.menu-open.is-scrolled{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
 .header nav,.header.menu-open nav{background:#fff;border-top:0}
 .hero-photo:nth-child(n){clip-path:none}
 .hero .sp-petal{display:block;bottom:auto;pointer-events:none}
 .hero .petal-6{width:11%;left:7%;right:auto;top:185cqw;animation-delay:.3s}
 .hero .petal-7{width:8%;left:46%;right:auto;top:179cqw;animation-delay:.55s}
 footer{padding-top:52px}
 .footer-main>a{width:165px}
}

@media(max-width:767px){.partner-note{font-size:8px;line-height:1.5;margin:-26px auto 14px}}

/* SP fills the viewport; its artwork scales with the available width. */
@media(max-width:767px){
 body{width:100%;max-width:none;margin-left:0;margin-right:0;container-type:inline-size}
}

/* Fit both photo rows and the copy inside the first mobile screen. */
@media(max-width:767px){
 .hero{--hero-copy-band:min(50cqw,32svh);height:calc(100svh - 66px);min-height:0}
 .hero-photos{height:100%;grid-template-rows:repeat(2,minmax(0,1fr));row-gap:var(--hero-copy-band)}
 .hero-photo{height:100%;min-height:0}
 .hero-copy{top:50%;left:11%;width:78%;height:calc(var(--hero-copy-band) - 20px);transform:translateY(-50%);display:flex;align-items:center;justify-content:center}
 .hero-copy img{width:100%;height:100%;object-fit:contain}
 .hero .petal-1{top:29%}
 .hero .petal-2{top:36%}
 .hero .petal-3{top:59%}
 .hero .petal-4{top:55%}
 .hero .petal-5{top:92%}
 .hero .petal-6{top:94%}
 .hero .petal-7{top:90%}
}

/* Fine-tune the right portraits and give the central copy more breathing room. */
@media(max-width:767px){
 .hero-photo:nth-child(1) img{transform-origin:50% 21%}
 .hero-photo:nth-child(2) img{object-position:44% top;transform:scale(1.6);transform-origin:44% 29.5%}
 .hero-photo:nth-child(3) img{transform:scale(1.6);transform-origin:50% 21%}
 .hero-copy{width:74%;left:13%;height:calc(var(--hero-copy-band) - 32px)}
}

/* Tighten the transition from the ABOUT photos to student stories on mobile. */
@media(max-width:767px){
 .about{padding-bottom:24px}
 .stories{padding-top:32px}
}

/* Keep short, meaningful Japanese phrases together on narrow screens. */
@media(max-width:767px){
 .sp-phrase{display:inline}
 .sp-keep-word{white-space:nowrap}
 .about-copy,.lead,.closing p,.reason p,.answer p{line-break:strict;text-wrap:pretty}
 .about-copy p,.lead,.closing p{word-break:auto-phrase}
 .about-copy p>br{display:none}
 .about-copy p:last-child>br:first-of-type,.about-copy strong+br{display:none}
 .about-copy strong{font-size:clamp(20px,6.15vw,24px)}
 .about-copy strong .sp-phrase{display:block}
}

/* Slightly lighter mobile statistics and included-service artwork. */
@media(max-width:767px){
 .schedule .lead{width:94%;font-size:clamp(12px,3.55vw,14px);letter-spacing:.02em}
 .schedule .lead br{display:initial}
 .schedule-line{white-space:nowrap}
 .stats h3{font-size:24px}
 .stats p{font-size:17px}
 .stats strong{font-size:50px}
 .stats strong small{font-size:25px}
 .services article img{transform:scale(1.02)!important}
 .services article p{font-size:11.5px}
}
@media(max-width:360px){.stats strong{font-size:43px}}
