/* V5: individual high-resolution art, live type, consistent optical icon sizes. */
.icon{display:block;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.button-arrow{display:flex;align-items:center;margin-left:auto;flex-shrink:0}
.button-arrow .icon{width:16px!important;height:16px!important}
.editorial-photo{display:block;width:100%;height:auto;object-fit:cover}
.hero-desktop .hero-image{display:block;width:100%;height:auto}
.frond{display:block;width:100%;height:100%;color:#399273}
.header-leaf{width:90px;transform:rotate(27deg);transform-origin:top left;opacity:.7}
.header-leaf .frond{height:160px;margin-top:-57px;margin-left:-26px}
.edge-left,.edge-right{width:54px;display:flex;align-items:flex-end;opacity:.21}
.tropical-edge .frond{height:230px;width:105px;flex-shrink:0;margin-left:-48px}
.edge-right{transform:scaleX(-1)}
.city-heading-palm .icon,.city-heading-plane .icon{width:100%;height:100%;color:#078a80;stroke-width:1.35}
.city-heading-palm{height:40px;width:40px;left:29%}
.city-heading-plane{height:35px;width:60px;left:auto;right:24%}
.hero-approved{padding:8px 12px 0}
body[data-page="index"] .section{padding-block:28px}
body[data-page="index"] .section-heading{margin-bottom:22px}
body[data-page="index"] .section-heading h2{letter-spacing:.035em;line-height:1.5}
body[data-page="index"] .about-section{padding-top:28px;padding-bottom:20px}
.about-section .about-grid{gap:28px;margin-top:20px;margin-bottom:15px}
.about-grid .editorial-photo{aspect-ratio:2.05;object-position:50% 42%;border-radius:8px}
.about-grid figure{margin:0}
.about-section .about-grid figcaption{margin:5px 0 0;color:#61716d}
.support-grid{padding-block:22px;border-radius:8px}
.support-grid .icon{width:42px;height:42px;margin-top:8px}
.support-grid article{gap:15px}
.support-grid h3{white-space:normal;font-size:16px;line-height:1.65}
.support-grid p{font-size:16px;line-height:1.8}
.support-grid h3 b{font-family:Arial,sans-serif;font-size:27px;letter-spacing:.02em;margin-right:9px}
.diagnosis-strip{grid-template-columns:29% 43% 28%;min-height:160px;margin-bottom:12px;padding-right:26px;gap:0;background:#f7f6ee}
.diagnosis-art{height:160px;overflow:hidden;mask-image:linear-gradient(to right,#000 88%,transparent)}
.diagnosis-art .editorial-photo{height:100%;object-position:76% 28%}
.diagnosis-text{padding:10px 22px}
.diagnosis-text h2{font-size:27px;white-space:normal;line-height:1.5;letter-spacing:.025em}
.diagnosis-text p{font-size:16px;white-space:normal;line-height:1.7}
body[data-page="index"] #purpose{padding-top:25px;padding-bottom:28px}
.banner-grid{gap:18px}
.reference-banner{aspect-ratio:2.28;isolation:isolate;border-radius:9px;background:#e8f0eb;box-shadow:0 2px 7px #143c3414}
.reference-banner .editorial-photo{height:100%;width:100%;object-position:64% 43%;transition:transform .25s ease}
.reference-banner:hover{transform:translateY(-2px);filter:none}
.reference-banner:hover .editorial-photo{transform:scale(1.025)}
.banner-label{position:absolute;inset:0 auto 0 0;width:52%;padding:20px 20px 20px 17px;display:flex;align-items:center;color:#fff;background:var(--banner-color);clip-path:polygon(0 0,100% 0,86% 100%,0 100%);font-size:23px;font-weight:700;line-height:1.5;letter-spacing:.025em;text-shadow:0 1px 1px #00000014}
.tone-pink{--banner-color:#d92b60e8}.tone-blue{--banner-color:#0088cbe8}.tone-gold{--banner-color:#c57b00f0}.tone-green{--banner-color:#008369ec}.tone-sky{--banner-color:#008ca5ec}.tone-orange{--banner-color:#e56e25ec}
.card-arrow{position:absolute;right:13px;bottom:13px;width:32px;height:32px;background:white;color:#005d53;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 8px #17312c26;z-index:2}
.card-arrow .icon{width:19px;height:19px;stroke-width:2}
body[data-page="index"] #areas{padding-top:15px;padding-bottom:6px}
.cities-top,.cities-bottom{gap:18px}
.cities-bottom{margin-top:18px}
.city-card{position:relative;isolation:isolate;aspect-ratio:1.72;overflow:hidden;border-radius:9px;box-shadow:0 2px 7px #143c3414}
.cities-bottom .city-card{aspect-ratio:1.4}
.city-card .editorial-photo{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.city-card:after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(transparent 45%,#002e35b8)}
.city-card:hover .editorial-photo{transform:scale(1.025)}
.city-label{position:absolute;left:20px;bottom:18px;display:flex;flex-direction:column;gap:5px;z-index:1;color:white;text-shadow:0 1px 5px #002d384d}
.city-label b{font:700 29px/1.1 Arial,sans-serif;letter-spacing:.065em}
.city-label>span{font-size:16px;font-weight:600;letter-spacing:.15em}
.cities-bottom .city-label b{font-size:23px}
.cities-bottom .city-label{left:16px;bottom:15px}
.cities-bottom .card-arrow{width:28px;height:28px;right:12px;bottom:15px}
.city-detail-photo{aspect-ratio:1.5;border-radius:10px}
.school-shortcut{padding-block:28px 12px}
body[data-page="index"] .steps{gap:20px;margin-top:26px}
body[data-page="index"] .step-box{padding:22px 14px 20px;border-color:#a6d4d2;border-radius:8px;background:#fff;box-shadow:0 3px 7px #005d5306}
.step-top{gap:24px;margin-bottom:13px;min-height:42px}
.step-top>b{font-size:32px;letter-spacing:.02em;font-weight:700}
.step-top .icon{width:36px;height:36px;stroke-width:1.65}
body[data-page="index"] .step-box h3{font-size:18px;line-height:1.5;margin:0 0 8px;letter-spacing:.025em}
body[data-page="index"] .step-box p{font-size:16px;line-height:1.8;color:#62726f}
body[data-page="index"] .step-box:not(:last-child):after{right:-17px;border-left-width:13px;border-top-width:10px;border-bottom-width:10px;top:43%}
body[data-page="index"] .center-action{margin-top:23px}
body[data-page="index"] .center-action .btn{min-height:48px;font-size:16px}
body[data-page="index"] .faq-section{padding-top:24px;padding-bottom:30px}
body[data-page="index"] .faq-section .section-heading{margin-bottom:20px}
body[data-page="index"] .faq-section .section-heading h2{font-size:28px}
.faq-section h2:before{display:none}
.faq-list{width:88.5%}
.faq-list details{padding:14px 22px;margin-top:10px;border-radius:7px;background:#fff}
body[data-page="index"] .faq-list summary{font-size:16px;min-height:28px;font-weight:600;color:#334c49}
.faq-list summary:after{font-weight:400;font-size:23px;line-height:1}
.faq-list details>p{font-size:16px;line-height:1.85;margin-top:13px}
.closing-inner{grid-template-columns:27% 52% 21%;min-height:215px}
.closing-inner>.passport-art{height:100%;min-height:215px;max-height:260px;object-position:46% 50%;align-self:stretch}
.closing-inner>.closing-copy{padding:25px 10px}
.closing-inner h2{font-size:26px;line-height:1.5;letter-spacing:.015em;white-space:normal;text-align:center}
.closing-inner p{font-size:16px;line-height:1.75;white-space:normal;text-align:center}
.closing-inner .actions{margin-top:17px;gap:14px}
.closing-inner>.closing-note{position:relative;isolation:isolate;overflow:hidden;align-items:flex-start;padding:22px 10px 22px 20px}
.closing-note p{position:relative;z-index:1;font-size:20px;font-weight:700;line-height:1.9;letter-spacing:.04em;text-align:left;transform:rotate(-6deg);color:#005d53}
.closing-note>.icon{width:31px;height:31px;margin-top:14px;color:#008b87;stroke-width:1.6}
.closing-note>.frond{position:absolute;width:130px;height:190px;bottom:-81px;right:-10px;opacity:.35;z-index:0;transform:rotate(-29deg)}
.site-footer{background:#005d53;padding-top:30px}
.footer-symbol{width:82px;height:82px;object-fit:contain;filter:grayscale(1) contrast(7);mix-blend-mode:screen;flex-shrink:0}
.footer-brand{gap:5px}.footer-brand .brand-word{font-size:38px}
.footer-brand .brand-sub{font-size:16px}
.footer-nav{font-size:16px;line-height:1.7;gap:3px}.footer-nav h3{font-size:16px;line-height:1.5;margin-bottom:9px}
.footer-nav a{padding-block:2px}
.footer-bottom{font-size:16px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #eda925;outline-offset:4px}
@media(min-width:761px) and (max-width:1050px){
 .banner-label{font-size:clamp(17px,2vw,21px);padding:14px;width:55%}
 .support-grid h3{font-size:16px}.support-grid p{font-size:16px}.support-grid .icon{width:32px;height:32px}
 .support-grid article{padding-inline:12px;gap:10px}
 .diagnosis-text h2{font-size:22px}.diagnosis-text p{font-size:16px}
 .city-label b{font-size:25px}.cities-bottom .city-label b{font-size:19px}
 .step-top{gap:13px}.step-top>b{font-size:27px}.step-top .icon{width:31px;height:31px}
 body[data-page="index"] .step-box{padding-inline:10px}body[data-page="index"] .step-box h3{font-size:16px}body[data-page="index"] .step-box p{font-size:16px}
 .closing-inner h2{font-size:21px}.closing-inner p{font-size:16px}.closing-note p{font-size:17px}
 .footer-symbol{width:60px;height:70px}.footer-brand .brand-word{font-size:29px}.footer-brand .brand-sub{font-size:16px}
 .footer-nav{font-size:16px}.footer-nav h3{font-size:16px}
}
@media(max-width:760px){
 .hero-approved{padding:0 8px}.hero-mobile-scene{aspect-ratio:1.3}
 .hero-mobile-scene>.hero-image{width:100%;height:100%;object-fit:cover;object-position:center}
 .header-leaf{width:50px;opacity:.55}.header-leaf .frond{margin-left:-28px}
 body[data-page="index"] .section{padding-block:24px}
 body[data-page="index"] .section-heading{margin-bottom:17px}
 body[data-page="index"] .about-section{padding-top:23px;padding-bottom:15px}
 .about-section .about-grid{gap:20px;margin:17px 0 0}.about-grid .editorial-photo{aspect-ratio:1.65}
 .support-grid{padding:7px 13px}.support-grid article{gap:13px}.support-grid .icon{width:32px;height:32px}
 .support-grid h3{font-size:16px}.support-grid h3 b{font-size:23px}.support-grid p{font-size:16px;line-height:1.8}
 .diagnosis-strip{grid-template-columns:30% 70%;padding:0 0 18px;margin-bottom:0;min-height:0}
 .diagnosis-art{height:125px;align-self:center;mask-image:none}.diagnosis-art .editorial-photo{width:100%;height:100%;object-position:75% 25%}
 .diagnosis-text{padding:12px 14px}.diagnosis-text h2{font-size:18px}.diagnosis-text p{font-size:16px}
 .banner-grid{gap:12px}.reference-banner{aspect-ratio:1.52;border-radius:7px}
 .reference-banner .editorial-photo{object-position:65% 35%}
 .banner-label{inset:auto 0 0;width:100%;min-height:45px;padding:9px 38px 9px 10px;font-size:16px;line-height:1.5;letter-spacing:.015em;clip-path:none;display:block}
 .banner-label br{display:none}
 .card-arrow{right:9px;bottom:10px;width:24px;height:24px}.card-arrow .icon{width:16px;height:16px}
 body[data-page="index"] #purpose{padding-block:24px}
 body[data-page="index"] #areas{padding-top:15px}
 .city-heading-palm{left:0;top:2px;width:25px;height:28px}.city-heading-plane{right:0;top:3px;width:27px;height:27px}
 .cities-top,.cities-bottom{gap:12px}.cities-bottom{margin-top:12px}
 .cities-top .city-card:last-child{width:calc(50% - 6px)}
 .city-card,.cities-bottom .city-card{aspect-ratio:1.25;border-radius:7px}
 .city-label,.cities-bottom .city-label{left:11px;bottom:11px;gap:5px}
 .city-label b,.cities-bottom .city-label b{font-size:20px;letter-spacing:.035em}
 .city-label>span{font-size:16px;letter-spacing:.08em}
 .cities-bottom .card-arrow{width:23px;height:23px;right:8px;bottom:10px}
 .cities-bottom .city-card:last-child .city-label b{font-size:17px}
 .school-shortcut{padding:22px 0 3px}
 body[data-page="index"] .steps{gap:15px;margin-top:19px}
 body[data-page="index"] .step-box{padding:16px 15px;grid-template-columns:68px 1fr;gap:5px 14px;min-height:107px}
 .step-top{gap:7px;margin-bottom:0;min-height:0}.step-top>b{font-size:25px}.step-top .icon{width:29px;height:29px}
 body[data-page="index"] .step-box h3{font-size:16px;margin:0;align-self:end;line-height:1.5}
 body[data-page="index"] .step-box p{font-size:16px;line-height:1.8}
 body[data-page="index"] .step-box:not(:last-child):after{right:calc(50% - 6px);top:auto;bottom:-13px;border:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid #03aeb2}
 body[data-page="index"] .center-action{margin-top:19px}body[data-page="index"] .center-action .btn{font-size:16px;min-height:46px}
 body[data-page="index"] .faq-section{padding-block:22px 27px}body[data-page="index"] .faq-section .section-heading h2{font-size:22px}
 .faq-list{width:100%}.faq-list details{padding:13px 14px;margin-top:9px}
 body[data-page="index"] .faq-list summary{font-size:16px;line-height:1.8;min-height:32px}.faq-list details>p{font-size:16px}
 .closing-inner{grid-template-columns:25% 75%;min-height:250px}
 .closing-inner>.passport-art{height:100%;min-height:250px;max-height:none;object-fit:cover;object-position:48% 50%}
 .closing-inner>.closing-copy{padding:22px 14px;align-items:flex-start}
 .closing-inner h2{font-size:19px;line-height:1.7;text-align:left}.closing-inner p{font-size:16px;text-align:left;line-height:1.85}
 .closing-inner .actions{margin-top:14px;gap:10px}
 .closing-inner>.closing-note{display:none}
 .footer-symbol{width:68px;height:78px}.footer-brand .brand-word{font-size:34px}.footer-brand .brand-sub{font-size:16px}
 .footer-nav{font-size:16px;line-height:1.7}.footer-nav h3{font-size:16px}.footer-bottom{font-size:16px}
}
@media(max-width:360px){.banner-label{font-size:16px;padding-left:9px}.city-label b,.cities-bottom .city-label b{font-size:18px}.cities-bottom .city-card:last-child .city-label b{font-size:16px}.closing-inner h2{font-size:17px}}
@media(prefers-reduced-motion:reduce){.reference-banner .editorial-photo,.city-card .editorial-photo{transition:none}}
/* Preserve the latest inner-page layouts while replacing their last raster windows. */
.hero-postcard>.editorial-photo{aspect-ratio:1.72;object-fit:cover}
.consult-side>.editorial-photo{aspect-ratio:2.15;object-fit:cover;object-position:50% 40%}
@media(max-width:760px){.consult-side>.editorial-photo{max-height:180px}}

/* V6: match the approved TOP artwork's photo and caption positions. */
.reference-banner{aspect-ratio:2.5;border-radius:7px}
.reference-banner>.editorial-photo{position:absolute;inset:0 0 0 auto;width:70%;height:100%;object-position:50% 42%}
.banner-label{width:47%;padding:16px 18px;font-size:max(16px, calc(12 * var(--u)));line-height:1.4;letter-spacing:.025em;clip-path:polygon(0 0,100% 0,86% 100%,0 100%)}
.banner-label>span{position:relative;z-index:1}
.tone-blue{--banner-color:#008fdcF2}.tone-gold{--banner-color:#ee9800F2}.tone-sky{--banner-color:#00abd8F2}
.tone-yellow{--banner-color:#ffcf21F5}.tone-yellow .banner-label{color:#162e2b;text-shadow:none}
.reference-banner.label-right>.editorial-photo{inset:0 auto 0 0;width:73%}
.label-right .banner-label{inset:0 0 0 auto;width:46%;padding:16px 20px 16px 38px;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%)}
.frame-speaking .banner-label{font-size:max(16px, calc(10.8 * var(--u)));padding-left:26px;white-space:nowrap}
.reference-banner.frame-speaking>.editorial-photo{left:-5%;object-position:50% 32%}
.reference-banner.frame-business>.editorial-photo{left:-8%;width:74%;object-position:50% 37%}
.reference-banner.frame-family>.editorial-photo{left:0;width:89%;object-position:50% 36%}
.reference-banner.frame-budget>.editorial-photo{object-position:75% 51%}
.reference-banner.frame-study>.editorial-photo{object-position:65% 34%}
.reference-banner.frame-counseling>.editorial-photo{object-position:85% 34%}
.reference-banner.frame-life>.editorial-photo{object-position:60% 60%}
.reference-banner.frame-weekend>.editorial-photo{object-position:70% 45%}
.reference-banner.frame-packing>.editorial-photo{object-position:52% 50%}
.reference-banner.label-bottom>.editorial-photo{width:100%;object-position:50% 50%}
.label-bottom .banner-label{inset:auto 40px 13px 13px;width:auto;min-height:0;padding:7px 11px;clip-path:none;border:1px solid #ffffffd9;background:#005d73e8;font-size:clamp(16px,1.7vw,22px);white-space:nowrap;line-height:1.3;border-radius:2px}
.city-label{top:27%;bottom:auto;left:20px;gap:7px}
.cities-bottom .city-label{top:15%;bottom:auto;left:16px}
.city-card:after{background:linear-gradient(90deg,#002e355c 0%,#002e350c 65%,transparent),linear-gradient(transparent 78%,#002e3526)}
.city-label b{font-weight:600;letter-spacing:.02em}
.city-label>span{font-weight:600;letter-spacing:.06em}
.card-arrow{right:12px;bottom:12px;width:30px;height:30px}
@media(min-width:761px) and (max-width:1050px){
 .banner-label{font-size:max(16px, calc(12 * var(--u)));padding:12px}
 .label-right .banner-label{padding-left:26px;padding-right:10px}
 .frame-speaking .banner-label{font-size:max(16px, calc(10.8 * var(--u)));padding-left:20px}
 .label-bottom .banner-label{font-size:clamp(16px,1.7vw,19px);padding:6px 8px;left:10px;bottom:10px;right:36px}
 .card-arrow{width:26px;height:26px;right:9px;bottom:9px}
}
@media(max-width:760px){
 .reference-banner{aspect-ratio:1.52}
 .reference-banner>.editorial-photo,.reference-banner.label-right>.editorial-photo{inset:0 0 auto;width:100%;height:calc(100% - 44px);object-position:50% 30%}
 .reference-banner.frame-budget>.editorial-photo{object-position:75% 50%}
 .reference-banner.frame-family>.editorial-photo{object-position:30% 38%}
 .reference-banner.frame-life>.editorial-photo{object-position:60% 60%}
 .banner-label,.label-right .banner-label,.label-bottom .banner-label{inset:auto 0 0;width:100%;height:44px;min-height:44px;display:flex;align-items:center;padding:6px 36px 6px 10px;clip-path:none;border:0;border-radius:0;font-size:16px;line-height:1.4;white-space:normal;letter-spacing:0;background:var(--banner-color)}
 .banner-label br{display:none}
 .frame-speaking .banner-label{font-size:16px;padding-left:10px;white-space:normal}
 .label-bottom .banner-label{font-size:16px;background:#005d73f2}
 .card-arrow,.cities-bottom .card-arrow{right:8px;bottom:10px;width:24px;height:24px}
 .city-label,.cities-bottom .city-label{top:15%;bottom:auto;left:11px;gap:6px}
 .city-label b,.cities-bottom .city-label b{font-size:20px;letter-spacing:.02em}
}
@media(max-width:360px){
 .banner-label,.label-right .banner-label,.frame-speaking .banner-label{font-size:16px;padding-left:8px;padding-right:32px}
 .label-bottom .banner-label{font-size:16px;padding-left:8px;padding-right:31px}
 .city-label b,.cities-bottom .city-label b{font-size:18px}
 .cities-bottom .city-card:last-child .city-label b{font-size:16px}
}
@media(min-width:761px){
 .reference-banner.frame-working>.editorial-photo{object-position:65% 35%}
 .reference-banner.frame-cost>.editorial-photo{object-position:70% 56%}
}

/* V7: individual ribbon shapes, lettering and colors from the approved TOP. */
.banner-artwork{display:none}
.banner-mobile-copy{font-weight:700}
.reference-banner .card-arrow{color:#414743}
.reference-banner .card-arrow .icon{stroke-width:2.5}
@media(min-width:761px){
 .reference-banner .banner-label{inset:0;width:100%;height:100%;min-height:0;display:block;padding:0;border:0;border-radius:0;clip-path:none;background:transparent;font-size:inherit;line-height:1;letter-spacing:0;text-shadow:none;white-space:normal;pointer-events:none}
 .banner-mobile-copy{display:none}
 .banner-artwork{display:block;width:100%;height:100%;overflow:visible;font-family:'Noto Sans JP Variable',sans-serif}
 .reference-banner.frame-speaking>.editorial-photo{left:0;width:100%;object-position:50% 32%}
 .guide-banners .reference-banner>.editorial-photo,.reference-banner.frame-study>.editorial-photo{left:0;right:0;width:100%}
 .reference-banner .card-arrow{left:var(--arrow-x);top:var(--arrow-y);right:auto;bottom:auto;transform:translate(-50%,-50%);width:8.9%;height:auto;aspect-ratio:1}
 .reference-banner .card-arrow .icon{width:62%;height:62%}
 .city-label b{font-family:'Noto Sans JP Variable',sans-serif;font-size:max(16px, calc(23 * var(--u)));line-height:1.05;font-weight:600;letter-spacing:.01em;transform:scaleX(.82);transform-origin:left center;white-space:nowrap}
 .cities-bottom .city-label b{font-size:max(16px, calc(20 * var(--u)))}
 .cities-bottom .city-card:last-child .city-label b{font-size:max(16px, calc(17 * var(--u)))}
 .city-label>span{font-size:max(16px, calc(13 * var(--u)));line-height:1.3;letter-spacing:.02em}
 .cities-bottom .city-label>span{font-size:max(16px, calc(10 * var(--u)))}
 .city-label,.cities-bottom .city-label{gap:4px;text-shadow:0 1px 3px #00344588}
 .city-card:after{background:linear-gradient(90deg,#002e3533,transparent 70%),linear-gradient(transparent 78%,#002e3526)}
}
@media(max-width:760px){
 .reference-banner .banner-label{background:var(--banner-color)}
 .frame-appeal .banner-label{background:#075e78}
 .reference-banner .card-arrow{color:#354744}
 .city-label b,.cities-bottom .city-label b{font-family:'Noto Sans JP Variable',sans-serif;font-weight:600;letter-spacing:.01em}
}
