:root{--color-ink:#262323;--color-muted:#706b65;--color-paper:#fff;--color-surface:#f6f5f2;--color-line:#d8d5cf;--color-accent:#9e0d1c;--color-brown:#3b332e;--color-line-green:#167346;--font-body:"Noto Sans JP","Yu Gothic",sans-serif;--font-heading:"Noto Serif JP","Yu Mincho",serif;--font-latin:"Montserrat",sans-serif;--font-gothic:"Zen Kaku Gothic New",sans-serif;--font-price:"din-2014","DIN 2014",sans-serif;--hero-text-shadow:0 0 20px #000a;--u:min(.0694444444vw,1px);--sticky-height:100px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--color-ink);font:15px/1.9 var(--font-body);background:white;padding-bottom:var(--sticky-height);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}p,h1,h2,h3,h4,figure{margin:0}h1,h2,h3,h4{font-weight:500}button,input{font:inherit}a,label,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}main,.footer,.header{max-width:1440px;margin-inline:auto}.container{width:83.333333%;max-width:1200px;margin-inline:auto}.skip-link{position:fixed;top:-100px;left:16px;padding:12px 24px;z-index:200;background:white}.skip-link:focus{top:10px}
/* Header and contact controls reuse the original HTML/JS interaction model. */
.header{height:98px;display:flex;align-items:center;gap:36px;padding:0 4%;background:white}.brand{width:230px;flex-shrink:0}.brand img{width:230px;height:35px;object-fit:cover}.header nav{display:flex;margin-left:auto;gap:26px;font-size:14px;white-space:nowrap}.header nav a{padding:10px 0;transition:color .2s}.header nav a:hover{color:var(--color-accent)}.header-cta{display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--color-ink);padding:10px 0;font-size:16px;color:var(--color-accent);white-space:nowrap}.header-cta img{flex-shrink:0}
/* Layered campaign artwork, measured against Figma's 1440px frame. */
.campaign{height:calc(1732 * var(--u));position:relative;overflow:hidden;background:#151515;color:white}.texture{position:absolute;inset:0;overflow:hidden;pointer-events:none}.texture>img{position:absolute;max-width:none;object-fit:cover;transform:translate(-50%,-50%) rotate(90deg)}.campaign .texture>img{width:calc(2579 * var(--u));height:calc(1719 * var(--u));left:calc(721.5 * var(--u));top:calc(849.5 * var(--u))}.campaign-shade{position:absolute;left:0;right:0;top:calc(400 * var(--u));bottom:0;background:linear-gradient(transparent,#000);mix-blend-mode:soft-light;pointer-events:none}.hero-photo{position:absolute;left:calc(1 * var(--u));top:calc(20 * var(--u));width:calc(1440 * var(--u));height:calc(697 * var(--u));overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 82.6923%,transparent 100%);mask-image:linear-gradient(to bottom,#000 82.6923%,transparent 100%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-mode:alpha}.hero-photo>img{position:absolute;width:calc(1444.12 * var(--u));max-width:none;height:calc(962.7467 * var(--u));left:calc(-2.06 * var(--u));top:calc(-132.874 * var(--u));object-fit:cover}.hero-catch{position:absolute;left:calc(414 * var(--u));top:calc(131 * var(--u));font-size:calc(100 * var(--u));line-height:1.2;font-weight:700;letter-spacing:calc(2.04 * var(--u));white-space:nowrap;text-shadow:var(--hero-text-shadow)}.hero-sub{position:absolute;top:calc(512 * var(--u));left:50%;transform:translateX(-50%);font-size:calc(27 * var(--u));line-height:calc(45 * var(--u));letter-spacing:calc(1.6 * var(--u));white-space:nowrap;text-shadow:var(--hero-text-shadow)}.hero-sub span{font:400 calc(32 * var(--u))/1.4 var(--font-latin)}.event-heading{position:absolute;left:calc(271 * var(--u));top:calc(622 * var(--u));width:calc(900 * var(--u));display:flex;flex-direction:column;align-items:center;gap:calc(18 * var(--u))}.event-heading h2{font:500 calc(150 * var(--u))/1 var(--font-gothic);white-space:nowrap}.event-heading h2>span{color:var(--color-accent)}.hero-date{display:flex;align-items:center;gap:calc(28 * var(--u));white-space:nowrap}.date-label{display:flex;align-items:center;gap:calc(21 * var(--u));font-size:calc(26.25 * var(--u));font-weight:500;line-height:calc(28 * var(--u))}.date-label img{width:calc(2 * var(--u));height:auto}.hero-date strong{font:400 calc(77 * var(--u))/1 var(--font-latin);letter-spacing:calc(-3.08 * var(--u))}.hero-date strong>span{font-size:calc(52.5 * var(--u));vertical-align:calc(5 * var(--u))}.date-until{font-size:calc(30 * var(--u));line-height:calc(40 * var(--u))}.benefit-content{position:absolute;left:50%;top:calc(932.5 * var(--u));transform:translateX(-50%);width:calc(1240 * var(--u));display:flex;flex-direction:column;align-items:center;gap:calc(40 * var(--u));scroll-margin-top:30px}.benefit-teaser{display:flex;align-items:center;gap:calc(40 * var(--u));height:calc(72 * var(--u))}.benefit-teaser p{font-size:calc(25 * var(--u));line-height:calc(35 * var(--u));letter-spacing:calc(.7 * var(--u));text-align:center}.teaser-bracket{max-width:calc(31.8462 * var(--u));height:auto;flex-shrink:0}.teaser-bracket.right{transform:scaleX(-1)}.benefit-banner{width:100%;height:calc(260 * var(--u));background:#d4cebf;position:relative;filter:drop-shadow(0 0 5px #000)}.benefit-time{position:absolute;left:calc(50% - 72 * var(--u));top:calc(36.5 * var(--u));transform:translateX(-50%);display:flex;align-items:center;gap:calc(10 * var(--u));color:var(--color-accent);white-space:nowrap}.benefit-time>span{font-size:calc(52 * var(--u));line-height:calc(50 * var(--u));font-weight:500}.benefit-time>span:last-child{letter-spacing:calc(1.4 * var(--u))}.benefit-time>strong{font:400 calc(100 * var(--u))/calc(90 * var(--u)) var(--font-latin)}.benefit-message{position:absolute;top:calc(135.5 * var(--u));left:calc(34 * var(--u));font-size:calc(83 * var(--u));font-weight:500;line-height:calc(75 * var(--u));color:var(--color-brown);white-space:nowrap}.benefit-message small{font-size:calc(62 * var(--u))}.benefit-message em{font-style:normal;color:var(--color-accent)}.benefit-message .c-p{letter-spacing:calc(-6 * var(--u))}.benefit-message .c-ra{letter-spacing:calc(-8 * var(--u))}.benefit-message .c-n{letter-spacing:calc(-22 * var(--u))}.benefit-message .c-tsu{letter-spacing:calc(-4 * var(--u))}.benefit-message .c-mo{letter-spacing:calc(-15 * var(--u))}.benefit-message .c-ri{letter-spacing:calc(-10 * var(--u))}.estimate-gift{position:absolute;width:calc(167 * var(--u));height:calc(164 * var(--u));object-fit:cover;left:calc(1035 * var(--u));top:calc(46.5 * var(--u))}.benefit-description{font-size:calc(25 * var(--u));line-height:calc(50 * var(--u));letter-spacing:calc(.7 * var(--u));text-align:center;white-space:nowrap}.benefit-button{display:flex;align-items:center;justify-content:space-between;width:calc(435 * var(--u));padding:calc(28.5 * var(--u)) calc(37.5 * var(--u));background:var(--color-surface);color:var(--color-ink);font-size:calc(21 * var(--u));line-height:calc(39.9 * var(--u));letter-spacing:calc(1.68 * var(--u));transition:background .2s}.benefit-button img{max-width:calc(36 * var(--u));flex-shrink:0}.benefit-button:hover{background:#e2ddd3}
.intro{min-height:calc(400 * var(--u));padding:calc(24 * var(--u)) calc(73 * var(--u));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(33 * var(--u));background:var(--color-surface);color:var(--color-brown);text-align:center}.intro h2{font:500 calc(44 * var(--u))/calc(50 * var(--u)) var(--font-gothic)}.intro p{font-size:calc(20 * var(--u));line-height:calc(40 * var(--u))}
/* Product examples use a responsive editorial grid; diagrams remain actual assets. */
.plans{position:relative;overflow:hidden;background:#151515;color:white;padding:calc(100 * var(--u)) 0}.plans .texture>img{width:calc(2476 * var(--u));height:calc(1651 * var(--u));left:calc(721.5 * var(--u));top:calc(1216 * var(--u))}.plans-shade{position:absolute;inset:0;background:linear-gradient(transparent,#000);mix-blend-mode:soft-light;pointer-events:none}.plans-content{position:relative;width:calc(1240 * var(--u));margin:auto}.plans-heading{text-align:center;margin-bottom:calc(100 * var(--u))}.plans-heading h2{font:500 calc(44 * var(--u))/1 var(--font-heading);letter-spacing:calc(1.8 * var(--u))}.plans-heading p{font-size:calc(19 * var(--u));line-height:calc(20 * var(--u));margin-top:calc(30 * var(--u))}.plan+.plan{margin-top:calc(100 * var(--u))}.plan-top{display:grid;grid-template-columns:490fr 700fr;gap:calc(50 * var(--u));align-items:start}.plan-two .plan-top{grid-template-columns:700fr 490fr}.plan-summary{position:relative}.plan-code{font:400 calc(39 * var(--u))/calc(34.2 * var(--u)) var(--font-latin);letter-spacing:calc(.54 * var(--u));white-space:nowrap}.plan-code span{font-size:calc(33 * var(--u))}.plan-rule{width:auto;max-width:100%;height:auto;margin-top:calc(29 * var(--u))}.plan-summary h3{font:500 calc(44 * var(--u))/1 var(--font-heading);letter-spacing:calc(.92 * var(--u));margin-top:calc(29 * var(--u));white-space:nowrap}.plan-description{font-size:calc(19 * var(--u));line-height:calc(22.8 * var(--u));margin-top:calc(20 * var(--u));white-space:nowrap}.price-row{display:flex;align-items:center;gap:calc(68 * var(--u));margin-top:0}.plan-type{font-size:calc(20.548 * var(--u));border:1px solid white;line-height:calc(39.041 * var(--u));padding:calc(4.11 * var(--u)) calc(18.493 * var(--u));white-space:nowrap}.plan-two .price-row{gap:calc(38 * var(--u))}.plan-price{display:flex;align-items:center;white-space:nowrap}.plan-price strong{font:400 calc(93.386 * var(--u))/1.4 var(--font-price);letter-spacing:calc(-1 * var(--u))}.plan-price>span{position:relative;margin-left:calc(8 * var(--u));font:500 calc(28.016 * var(--u))/1.6 var(--font-gothic)}.plan-price small{position:absolute;left:calc(-7.78 * var(--u));top:calc(-15.63 * var(--u));font:400 calc(15.564 * var(--u))/1 var(--font-gothic)}.plan-area{font:400 calc(22 * var(--u))/1 var(--font-gothic)}.cert-badge{position:absolute;right:calc(3 * var(--u));top:calc(-12 * var(--u));width:calc(86.0396 * var(--u));height:calc(86.0396 * var(--u));display:grid;place-items:center}.cert-badge>img{position:absolute;inset:0;max-width:100%;height:auto}.cert-badge>span{position:relative;text-align:center;font:400 calc(17.121 * var(--u))/1.12 var(--font-gothic)}.exterior,.interior{position:relative;overflow:hidden;background:white}.exterior{height:calc(450 * var(--u))}.exterior img,.interior img{position:absolute;max-width:none;object-fit:cover}.exterior-one img{width:calc(956 * var(--u));height:calc(524 * var(--u));left:calc(-34 * var(--u));top:calc(-13 * var(--u))}.exterior-two img{width:calc(883.525 * var(--u));height:calc(508 * var(--u));left:calc(-34 * var(--u));top:calc(-22 * var(--u))}.plan-one-details{display:grid;grid-template-columns:403fr 57fr 391fr 40fr 349fr;align-items:start;margin-top:calc(6 * var(--u));min-height:calc(310 * var(--u))}.floorplan-one{grid-column:1;position:relative;left:calc(5 * var(--u));width:calc(403 * var(--u));height:calc(305 * var(--u))}.floorplan img{width:100%;height:100%;object-fit:contain}.interior-one{grid-column:3;margin-top:calc(55 * var(--u));height:calc(255 * var(--u))}.interior-one img{width:calc(484 * var(--u));height:calc(266 * var(--u));left:calc(-20 * var(--u));top:calc(-5 * var(--u))}.plan-one-details>.specs{grid-column:5;margin-top:calc(55 * var(--u))}.specs h4{font:700 calc(22 * var(--u))/1 var(--font-gothic);margin-bottom:calc(20 * var(--u))}.specs p{font:400 calc(15.564 * var(--u))/calc(25.4 * var(--u)) var(--font-gothic);white-space:nowrap}.specs small{font-size:calc(12.451 * var(--u))}.spec-divider{display:flex;align-items:center;gap:calc(3 * var(--u));height:calc(17 * var(--u));width:calc(306 * var(--u))}.plan-two-details{display:grid;grid-template-columns:485fr 96fr 659fr;position:relative;min-height:calc(612 * var(--u))}.plan-two-life{grid-column:1;padding-top:calc(55 * var(--u))}.interior-two{width:100%;height:calc(258 * var(--u))}.interior-two img{width:calc(540 * var(--u));height:calc(297 * var(--u));left:calc(-10 * var(--u));top:calc(-39 * var(--u))}.plan-two-life .specs{margin-top:calc(55 * var(--u))}.two-floorplans{grid-column:3;display:grid;grid-template-columns:283fr 333fr;gap:calc(43 * var(--u));align-items:end;position:relative;top:calc(-41 * var(--u));height:calc(653 * var(--u))}.floorplan-two-upper{position:relative;height:calc(314 * var(--u))}.floorplan-two-lower{position:relative;height:calc(653 * var(--u))}.floorplan figcaption{position:absolute;font:400 calc(62 * var(--u))/1 var(--font-latin);letter-spacing:calc(.54 * var(--u));white-space:nowrap}.floorplan-two-upper figcaption{top:calc(-62 * var(--u));left:0}.floorplan-two-lower figcaption{top:calc(-9 * var(--u));left:calc(-99 * var(--u))}.plan-note{font-size:calc(16 * var(--u));line-height:calc(19 * var(--u));white-space:nowrap;margin-top:calc(93 * var(--u));text-align:center}
.quality{padding:calc(100 * var(--u)) 0;background:white}.quality-heading{text-align:center;margin-bottom:calc(50 * var(--u))}.quality-heading h2{font:500 calc(44 * var(--u))/calc(63 * var(--u)) var(--font-heading);letter-spacing:calc(1.8 * var(--u));white-space:nowrap}.quality-heading>p{font-size:calc(19 * var(--u));line-height:calc(20 * var(--u));margin-top:calc(30 * var(--u))}.quality-grid{display:grid;grid-template-columns:repeat(3,1fr)}.quality-grid article{padding:0 calc(38 * var(--u));border-left:1px solid var(--color-line)}.quality-grid article:first-child{border:0;padding-left:0}.quality-grid article:last-child{padding-right:0}.quality-number{display:flex;align-items:center;gap:calc(18 * var(--u));font:400 calc(13 * var(--u))/calc(24.7 * var(--u)) var(--font-latin);color:var(--color-muted)}.quality-number span{font-size:calc(10 * var(--u));letter-spacing:calc(1.4 * var(--u))}.quality-icon{max-width:calc(65 * var(--u));height:auto;margin-top:calc(28 * var(--u))}.quality-grid h3{font-size:calc(21 * var(--u));font-weight:500;line-height:calc(39.9 * var(--u));padding-top:calc(24 * var(--u))}.quality-grid h3+p{font-size:calc(13 * var(--u));line-height:calc(27.3 * var(--u));padding-top:calc(15 * var(--u));color:var(--color-muted)}
.gift{position:relative;height:calc(708 * var(--u));background:#e9e6df;overflow:hidden}.gift-label{position:absolute;left:calc(100 * var(--u));top:calc(110 * var(--u));width:calc(1240 * var(--u));height:calc(70 * var(--u));display:flex;align-items:center;justify-content:center;border-radius:50px;background:#cc6656;color:white;font:700 calc(44 * var(--u))/calc(40 * var(--u)) var(--font-gothic)}.gift-copy{position:absolute;left:calc(336 * var(--u));top:calc(230 * var(--u));width:calc(783 * var(--u));display:flex;flex-direction:column;align-items:center;gap:calc(25 * var(--u));color:#000}.gift-lead{display:flex;align-items:center;gap:calc(30 * var(--u))}.gift-lead p{font-size:calc(36 * var(--u));line-height:calc(30.4 * var(--u));letter-spacing:calc(1.28 * var(--u));white-space:nowrap}.gift-plane{width:calc(102 * var(--u));height:calc(52 * var(--u));object-fit:cover}.gift-ticket{width:calc(110 * var(--u));height:calc(61 * var(--u));object-fit:cover}.gift h2{font:700 calc(87 * var(--u))/calc(73.6 * var(--u)) var(--font-gothic);white-space:nowrap}.gift-destinations{width:calc(578 * var(--u));height:calc(85 * var(--u));object-fit:cover}.gift-choice{font:700 calc(42 * var(--u))/1 var(--font-gothic);white-space:nowrap}.gift-note{font-size:calc(16 * var(--u));line-height:calc(20 * var(--u));color:#625d55;white-space:nowrap}.gift-osaka{position:absolute;left:calc(130 * var(--u));top:calc(365 * var(--u));width:calc(253 * var(--u));height:calc(243 * var(--u));object-fit:cover}.gift-hokkaido{position:absolute;left:calc(1014 * var(--u));top:calc(440 * var(--u));width:calc(296 * var(--u));height:calc(167 * var(--u));object-fit:cover}
.consultation{padding:calc(94 * var(--u)) 0}.consult-heading{text-align:center}.consult-heading .eyebrow{font-size:calc(19 * var(--u));font-weight:500;line-height:calc(22.8 * var(--u));letter-spacing:calc(1.8 * var(--u));color:var(--color-muted)}.consult-heading h2{font:500 calc(44 * var(--u))/calc(57.8 * var(--u)) var(--font-heading);letter-spacing:calc(1.36 * var(--u));margin-top:calc(18 * var(--u))}.consult-heading>p:last-child{font-size:calc(19 * var(--u));line-height:calc(29.4 * var(--u));margin-top:calc(20 * var(--u));padding-bottom:calc(29.6 * var(--u))}.method-form fieldset{border:0;margin:0;padding:0}.method-form legend{width:100%;text-align:center;font-size:calc(17 * var(--u));line-height:calc(22.8 * var(--u));margin-bottom:calc(20 * var(--u))}.method-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.method-options label{position:relative;cursor:pointer}.method-options input{position:absolute;width:1px;height:1px;opacity:0}.method-card{display:flex;align-items:center;gap:calc(20 * var(--u));min-height:108px;padding:23px 21px;border:1px solid var(--color-line);transition:background .2s,border-color .2s}.method-card>img{flex-shrink:0}.method-card>span:not(.radio-mark){font-size:21px;white-space:nowrap}.radio-mark{border:1px solid #b2a99e;border-radius:50%;width:16px;height:16px;margin-left:auto;flex-shrink:0}.method-options input:checked+.method-card{background:#f6f3ed;border-color:#8b7b67}.method-options input:checked+.method-card .radio-mark{border:5px solid #77634b;background:white}.method-options input:focus-visible+.method-card{outline:3px solid var(--color-accent);outline-offset:4px}.method-help{font-size:16px;line-height:20.9px;color:var(--color-muted);text-align:center;padding-top:18px;min-height:41px}.method-help p+p{padding-top:8px}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}.contact-block{min-height:117.19px;padding:22px 19px;display:flex;align-items:center;gap:16px;transition:filter .2s}.contact-block:hover{filter:brightness(.92)}.contact-block>img{flex-shrink:0}.contact-block>.arrow{margin-left:auto}.contact-block>span{font-size:19px;line-height:23.8px}.contact-block small{display:block;font-size:10px;line-height:17px;letter-spacing:.4px;padding-top:6px}.contact-phone{border:1px solid var(--color-ink);gap:12px}.contact-phone>span{font-size:15px;line-height:18.7px}.contact-phone strong{display:block;font:500 28px/34.5px var(--font-latin);white-space:nowrap}.contact-phone small{font-size:13px;padding-top:1px}.contact-form{background:var(--color-accent);color:white}.contact-line{background:var(--color-line-green);color:white}
.footer{background:var(--color-surface);padding:49px 0 40px}.footer-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.footer img{width:220px;height:35px;object-fit:cover}.footer p{font-size:10px;line-height:20px;color:var(--color-muted);margin-top:16px}.footer-right{text-align:right}.footer-right>a{display:block;font-size:12px;margin-bottom:33px}.footer-right>a span{margin-left:24px}.footer-right small{font:400 9px/17.1px var(--font-latin);color:var(--color-muted)}
.sticky-cta{position:fixed;z-index:50;bottom:0;left:0;right:0;min-height:100px;padding:16px 4% max(16px,env(safe-area-inset-bottom));background:white;border-top:1px solid #e3dfd8;box-shadow:0 -4px 24px #0000000a;display:flex;justify-content:space-between;align-items:center;gap:32px}.sticky-intro{display:flex;align-items:center;gap:13px;flex-shrink:0}.sticky-intro strong{display:block;font-size:16px;font-weight:500;line-height:22.8px}.sticky-intro small{display:block;font-size:14px;line-height:19px;color:var(--color-muted)}.status-dot{width:6px;height:6px;background:#9a8060;border-radius:50%}.sticky-buttons{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:10px;width:min(790px,75%)}.sticky-buttons>a{display:flex;align-items:center;justify-content:center;gap:12px;min-height:66px;padding:10px 14px;transition:filter .2s}.sticky-buttons>a:hover{filter:brightness(.92)}.sticky-buttons>a>img{flex-shrink:0}.sticky-buttons>a>span{font-size:13px;line-height:22.1px;font-weight:500}.sticky-buttons small{display:block;font-size:9px;line-height:14.4px;font-weight:400;margin-top:2px;white-space:nowrap}.sticky-buttons em{font-size:8px;font-style:normal}.sticky-phone{border:1px solid #b2aaa0;background:white}.sticky-form{background:var(--color-accent);color:white}.sticky-line{background:var(--color-line-green);color:white}.sticky-buttons .arrow{margin-left:auto}.sticky-form>span{margin-right:auto}.line-mobile,.mobile-only{display:none}
@media(max-width:1199px){
 :root{--sticky-height:92px}body{font-size:14px}.container{width:calc(100% - 40px)}.header{height:68px;padding:0 20px;gap:18px;justify-content:space-between}.brand{width:170px}.brand img{width:170px;height:auto}.header nav{display:none}.header-cta{font-size:10px;gap:9px;padding:7px 0}.header-cta img{width:17px;height:17px}.campaign{height:auto;padding:0 0 46px;display:flex;flex-direction:column;align-items:center}.campaign .texture>img{width:auto;height:160%;max-width:none;left:50%;top:50%;object-fit:cover}.campaign-shade{top:240px}.hero-photo{top:0;left:0;width:100%;height:470px;mask-size:100% 100%}.hero-photo>img{top:0;left:0;width:100%;height:440px;object-fit:cover;object-position:50% 25%}.hero-catch{position:relative;left:auto;top:auto;align-self:center;font-size:clamp(34px,9.8vw,60px);line-height:1.25;letter-spacing:.02em;margin-top:46px;z-index:1;text-align:center}.hero-sub{position:relative;top:auto;left:auto;transform:none;font-size:12px;line-height:1.8;letter-spacing:.025em;margin:20px 20px 0;white-space:normal;text-align:center;z-index:1}.hero-sub span{font-size:15px}.event-heading{position:relative;left:auto;top:auto;width:100%;gap:12px;margin-top:30px;z-index:1}.event-heading h2{font-size:clamp(43px,12.5vw,76px);line-height:1.2;letter-spacing:-.03em}.hero-date{gap:13px}.date-label{gap:10px;font-size:13px;line-height:20px}.date-label img{width:1px;height:27px}.hero-date strong{font-size:38px;letter-spacing:-.04em}.hero-date strong>span{font-size:27px;vertical-align:2px}.date-until{font-size:15px;line-height:1.5}.benefit-content{position:relative;left:auto;top:auto;transform:none;width:calc(100% - 32px);gap:25px;margin-top:35px}.benefit-teaser{height:auto;gap:9px;width:100%;justify-content:center}.benefit-teaser p{font-size:11px;line-height:1.95;letter-spacing:0}.teaser-bracket{width:12px;max-width:12px;height:40px}.benefit-banner{height:auto;min-height:168px;padding:20px 12px 23px;filter:drop-shadow(0 0 4px #0008)}.benefit-time{position:relative;left:auto;top:auto;transform:none;justify-content:center;margin-right:45px;gap:5px;height:45px}.benefit-time>span{font-size:24px;line-height:1.1}.benefit-time>strong{font-size:43px;line-height:1}.benefit-time>span:last-child{letter-spacing:0}.benefit-message{position:relative;left:auto;top:auto;display:block;font-size:27px;line-height:1.5;text-align:left;white-space:normal;max-width:83%;margin-top:14px;letter-spacing:-.05em}.benefit-message small{font-size:20px}.benefit-message span,.benefit-message .c-p,.benefit-message .c-ra,.benefit-message .c-n,.benefit-message .c-tsu,.benefit-message .c-mo,.benefit-message .c-ri{letter-spacing:inherit}.benefit-message em{white-space:nowrap}.estimate-gift{width:63px;height:auto;left:auto;right:10px;top:auto;bottom:24px}.benefit-description{font-size:12px;line-height:2;letter-spacing:.01em;white-space:normal;padding:0 7px}.benefit-description br{display:none}.benefit-button{width:82%;max-width:360px;padding:16px 22px;font-size:14px;line-height:1.8;letter-spacing:.05em;gap:20px}.benefit-button img{width:24px;max-width:24px}
 .intro{min-height:0;padding:53px 24px;gap:23px}.intro h2{font-size:25px;line-height:1.7;text-wrap:balance}.intro p{font-size:12px;line-height:2.1}.desktop-break{display:none}
 .plans{padding:57px 0 50px}.plans .texture>img{width:auto;height:130%;left:50%;top:50%;object-fit:cover}.plans-content{width:calc(100% - 40px)}.plans-heading{margin-bottom:43px}.plans-heading h2{font-size:26px;line-height:1.7;letter-spacing:.04em;text-wrap:balance}.plans-heading p{font-size:12px;line-height:1.9;margin-top:17px}.plan+.plan{margin-top:55px}.plan-top,.plan-two .plan-top{display:flex;flex-direction:column;gap:25px}.plan-summary{width:100%}.plan-code{font-size:25px;line-height:1.4;letter-spacing:.03em}.plan-code span{font-size:20px}.plan-rule{margin-top:19px;width:100%;max-width:100%;height:auto}.plan-summary h3{font-size:29px;line-height:1.5;letter-spacing:0;margin-top:18px;white-space:normal}.plan-description{font-size:12px;line-height:1.9;margin-top:7px;white-space:normal}.price-row,.plan-two .price-row{gap:22px;justify-content:space-between;margin-top:10px}.plan-type{font-size:12px;line-height:1.8;padding:3px 9px}.plan-price strong{font-size:57px;line-height:1.3;letter-spacing:-.02em}.plan-price>span{font-size:18px;line-height:1.5;margin-left:5px}.plan-price small{font-size:10px;left:-4px;top:-8px}.plan-area{font-size:15px;line-height:1.7;margin-top:6px}.cert-badge{right:0;top:-5px;width:58px;height:58px}.cert-badge>span{font-size:12px;line-height:1.1}.exterior{width:100%;height:auto;aspect-ratio:700/450}.exterior-one img{width:136.5714%;height:116.4444%;left:-4.8571%;top:-2.8889%}.exterior-two img{width:126.2178%;height:112.8889%;left:-4.8571%;top:-4.8889%}.plan-two .exterior{order:1}.plan-one-details{display:grid;grid-template-columns:1fr;gap:27px;margin-top:27px;min-height:0}.floorplan-one{grid-column:auto;left:0;width:100%;height:auto;aspect-ratio:403/305;max-width:430px;margin:auto}.interior-one{grid-column:auto;margin-top:0;width:100%;height:auto;aspect-ratio:391/255;order:-1}.interior-one img{width:123.7852%;height:104.3137%;left:-5.115%;top:-1.9608%}.plan-one-details>.specs{grid-column:auto;margin-top:0}.specs h4{font-size:18px;line-height:1.5;margin-bottom:12px}.specs p{font-size:12px;line-height:1.9;white-space:normal}.specs small{font-size:10px}.spec-divider{width:90%;height:13px;gap:3px}.plan-two-details{display:flex;flex-direction:column;gap:35px;min-height:0;margin-top:27px}.plan-two-life{padding-top:0;display:contents}.interior-two{width:100%;height:auto;aspect-ratio:485/258}.interior-two img{width:111.34%;height:115.116%;left:-2.062%;top:-15.116%}.plan-two-life .specs{margin-top:0;order:3}.two-floorplans{display:grid;grid-template-columns:283fr 333fr;gap:20px;top:0;height:auto;align-items:end;margin-top:32px;order:2}.floorplan-two-upper,.floorplan-two-lower{height:auto}.floorplan-two-upper{aspect-ratio:283/314}.floorplan-two-lower{aspect-ratio:333/653}.floorplan figcaption{font-size:26px;line-height:1;letter-spacing:.01em;top:-34px;left:0}.plan-note{margin-top:45px;font-size:10px;line-height:1.9;white-space:normal;text-align:left}
 .quality{padding:55px 0}.quality-heading{margin-bottom:34px}.quality-heading h2{font-size:26px;line-height:1.8;letter-spacing:.025em;white-space:normal;text-wrap:balance}.quality-heading>p{font-size:12px;line-height:2;margin-top:20px}.quality-grid{grid-template-columns:1fr}.quality-grid article,.quality-grid article:first-child,.quality-grid article:last-child{position:relative;border-left:0;border-top:1px solid var(--color-line);padding:27px 0 27px 82px}.quality-grid article:last-child{padding-bottom:0}.quality-number{font-size:12px;line-height:1.5;gap:14px}.quality-number span{font-size:9px;letter-spacing:.1em}.quality-icon{position:absolute;left:0;top:48px;width:55px;max-width:55px;margin:0}.quality-grid h3{font-size:21px;line-height:1.7;padding-top:15px}.quality-grid h3+p{font-size:12px;line-height:1.95;padding-top:10px}
 .gift{height:auto;min-height:520px;padding:45px 20px 155px;display:flex;flex-direction:column;align-items:center}.gift-label{position:relative;left:auto;top:auto;width:100%;height:auto;min-height:42px;font-size:24px;line-height:1.4;padding:7px 15px}.gift-copy{position:relative;left:auto;top:auto;width:100%;gap:19px;margin-top:30px;z-index:1}.gift-lead{gap:10px}.gift-lead p{font-size:17px;line-height:1.5;letter-spacing:0}.gift-plane{width:42px;height:auto}.gift-ticket{width:44px;height:auto}.gift h2{font-size:38px;line-height:1.4;letter-spacing:-.04em}.gift-destinations{width:84%;max-width:420px;height:auto}.gift-choice{font-size:21px;line-height:1.5}.gift-note{font-size:10px;line-height:1.7;white-space:normal}.gift-osaka{left:7%;top:auto;bottom:28px;width:117px;height:auto}.gift-hokkaido{left:auto;right:5%;top:auto;bottom:30px;width:156px;height:auto}
 .consultation{padding:55px 0}.consult-heading .eyebrow{font-size:12px;line-height:1.9;letter-spacing:.12em}.consult-heading h2{font-size:27px;line-height:1.8;letter-spacing:.01em;margin-top:17px}.consult-heading>p:last-child{font-size:12px;line-height:2;margin-top:18px;padding-bottom:29px}.mobile-only{display:block}.method-form legend{font-size:12px;line-height:1.8;margin-bottom:16px}.method-options{grid-template-columns:1fr;gap:11px}.method-card{padding:17px 20px;min-height:85px;gap:20px}.method-card>span:not(.radio-mark){font-size:16px}.method-card>img{max-width:35px}.method-help{font-size:11px;line-height:1.9;padding-top:17px}.contact-grid{grid-template-columns:1fr;gap:12px;margin-top:25px}.contact-block{min-height:87px;padding:19px 22px;gap:18px}.contact-block>img{max-width:30px}.contact-block>span{font-size:15px;line-height:1.7}.contact-block small{font-size:10px;line-height:1.8;padding-top:3px}.contact-phone{justify-content:center}.contact-phone>span{font-size:12px}.contact-phone strong{font-size:26px;line-height:1.5}.contact-phone small{font-size:11px}.contact-block .arrow{max-width:18px}.footer{padding:35px 0}.footer-inner{display:block}.footer img{width:190px;height:auto}.footer p{font-size:9px;line-height:2;margin-top:16px}.footer-right{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:27px;text-align:left}.footer-right>a{font-size:10px;margin:0}.footer-right>a span{margin-left:9px}.footer-right small{font-size:8px}
 .sticky-cta{min-height:0;padding:7px 7px calc(7px + env(safe-area-inset-bottom));gap:0}.sticky-intro{display:none}.sticky-buttons{width:100%;gap:5px;grid-template-columns:.9fr 1fr 1fr}.sticky-buttons>a{min-height:70px;flex-direction:column;gap:3px;padding:8px 2px;text-align:center}.sticky-buttons>a>img{max-width:20px;max-height:20px}.sticky-buttons>a>span{font-size:11px;line-height:1.7;letter-spacing:-.03em}.sticky-buttons small{font-size:8px;line-height:1.5;margin-top:0;letter-spacing:-.03em}.sticky-buttons em,.sticky-buttons .arrow,.line-desktop{display:none!important}.sticky-form>span{margin:0}.line-mobile{display:inline}.sticky-line small{font-size:7px}.sticky-phone small{font-family:var(--font-latin);font-size:8px}
}
@media(max-width:360px){.header{padding-inline:16px}.brand{width:150px}.brand img{width:150px}.header-cta{font-size:9px;gap:6px}.hero-catch{font-size:33px}.hero-sub{font-size:11px}.event-heading h2{font-size:43px}.benefit-content{width:calc(100% - 24px)}.benefit-teaser p{font-size:9px}.benefit-teaser{gap:7px}.benefit-message{font-size:25px;max-width:82%}.benefit-message small{font-size:17px}.estimate-gift{width:55px}.benefit-time>span{font-size:22px}.benefit-time>strong{font-size:39px}.plans-content,.container{width:calc(100% - 32px)}.plan-summary h3{font-size:26px}.price-row,.plan-two .price-row{gap:12px}.plan-price strong{font-size:50px}.plan-price>span{font-size:16px}.plan-type{font-size:10px;padding:3px 7px}.specs p{font-size:11px}.gift h2{font-size:32px}.gift-lead{gap:7px}.gift-lead p{font-size:15px}.gift-plane{width:35px}.gift-ticket{width:37px}.gift-choice{font-size:19px}.gift-osaka{width:100px}.gift-hokkaido{width:137px}.consult-heading h2{font-size:24px}.sticky-buttons>a>span{font-size:10px}.sticky-buttons small{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.sticky-cta,.skip-link,.header-cta{display:none}body{padding:0}.plan,.quality-grid article,.contact-block{break-inside:avoid}}

/* Match the designed date typesetting and the second plan's overlapping diagrams. */
@media(min-width:1200px){.hero-date strong{position:relative;display:block;width:calc(166.195 * var(--u));height:calc(77 * var(--u))}.hero-date strong>.date-month,.hero-date strong>.date-day{position:absolute;top:0;font-size:calc(77 * var(--u));line-height:1}.hero-date strong>.date-month{left:0}.hero-date strong>.date-day{left:calc(77.9 * var(--u))}.hero-date strong>.date-slash{position:absolute;left:calc(54.25 * var(--u));top:calc(14 * var(--u));font-size:calc(52.5 * var(--u));line-height:1}.plan-two-details{height:calc(612 * var(--u));grid-template-rows:calc(612 * var(--u))}}
.benefit-message .free-group{white-space:nowrap}
@media(max-width:1199px){.hero-date strong>.date-month,.hero-date strong>.date-day{font-size:38px;vertical-align:baseline}.hero-date strong>.date-slash{font-size:27px;vertical-align:2px}.teaser-bracket{height:auto}.date-label img{height:auto}}

/* Fluid layouts: maintain readable type rather than scaling the PC canvas on tablets. */
.header-cta,.brand{min-height:44px;display:flex;align-items:center}
.method-options>* , .contact-grid>* , .plan-top>* , .quality-grid>*{min-width:0}
/* Full-width artwork, with text and product content kept within the design width. */
@media (min-width:1441px){
 main,.footer,.header{max-width:none}
 .header{padding-inline:max(4%,calc((100% - 1325px)/2))}
 .hero-photo{left:0;width:100%;height:697px}
 .hero-photo>img{inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
 .hero-catch{left:calc(50% - 306px)}
 .event-heading{left:calc(50% - 449px)}
 .campaign .texture>img{left:50%;width:max(2579px,100%);height:max(1719px,100vw)}
 .plans .texture>img{left:50%;width:max(2476px,100%);height:max(1651px,100vw)}
 .intro{padding-inline:max(73px,calc((100% - 1294px)/2))}
 .gift-label{left:calc(50% - 620px)}
 .gift-copy{left:calc(50% - 384px)}
 .gift-osaka{left:calc(50% - 590px)}
 .gift-hokkaido{left:calc(50% + 294px)}
 .sticky-cta{padding-inline:max(4%,calc((100% - 1325px)/2))}
}
@media (min-width:1200px) and (max-width:1439px){
 .header{padding-inline:32px;gap:24px}.brand{width:190px}.brand img{width:190px;height:auto}
 .header nav{gap:20px;font-size:13px}.header-cta{font-size:14px;gap:14px}
 .specs p{font-size:max(14px,calc(15.564 * var(--u)));line-height:1.65;white-space:normal}
 .specs small{font-size:12px}.quality-grid h3+p{font-size:14px;line-height:1.95}
 .method-card{padding:20px 16px;gap:12px}.method-card>img{width:32px}.method-card>span:not(.radio-mark){font-size:17px}
 .contact-block{padding:20px 14px;gap:10px}.contact-block>img{width:30px}.contact-block>span{font-size:16px}
 .contact-phone strong{font-size:24px}.contact-phone small{font-size:12px}
 .sticky-intro{display:none}.sticky-buttons{width:100%;max-width:1000px;margin:auto}
}
@media (max-width:1199px){
 .container,.plans-content{width:calc(100% - clamp(32px,7vw,80px));max-width:1000px}
 .header{height:76px;padding-inline:clamp(16px,3.5vw,40px)}
 .brand,.brand img{width:clamp(150px,24vw,220px)}
 .header-cta{font-size:clamp(11px,1.7vw,15px);gap:10px}
 .hero-photo{height:clamp(450px,69vw,720px)}
 .hero-photo>img{height:100%;object-position:center 28%}
 .hero-catch{font-size:clamp(34px,8.2vw,84px);margin-top:clamp(42px,6vw,70px)}
 .hero-sub{font-size:clamp(14px,2.1vw,22px);line-height:1.8;margin-top:22px;max-width:90%}
 .hero-sub span{font-size:1.2em}
 .event-heading{margin-top:clamp(28px,4.5vw,54px);gap:18px}
 .event-heading h2{font-size:clamp(43px,11vw,114px)}
 .hero-date strong>.date-month,.hero-date strong>.date-day{font-size:clamp(38px,6vw,64px)}
 .hero-date strong>.date-slash{font-size:clamp(27px,4vw,44px)}
 .date-label{font-size:clamp(14px,2vw,21px)}.date-until{font-size:clamp(16px,2.4vw,25px)}
 .hero-date{gap:clamp(13px,2vw,24px)}
 .benefit-content{width:calc(100% - clamp(24px,6vw,80px));max-width:1000px;margin-top:clamp(40px,6vw,70px);gap:clamp(24px,3.6vw,40px)}
 .benefit-teaser{gap:clamp(8px,2.4vw,28px)}
 .benefit-teaser p{font-size:clamp(12px,1.9vw,21px);line-height:1.9}
 .teaser-bracket{width:clamp(12px,2.8vw,28px);max-width:none;height:auto}
 .benefit-banner{padding:24px clamp(16px,3vw,36px);display:grid;grid-template-columns:minmax(0,1fr) clamp(58px,13vw,136px);column-gap:clamp(10px,2vw,24px);row-gap:12px;align-items:center;min-height:0}
 .benefit-time{grid-column:1;margin:0;height:auto;gap:7px}
 .benefit-time>span{font-size:clamp(24px,4.2vw,44px)}.benefit-time>strong{font-size:clamp(43px,7.2vw,76px)}
 .benefit-message{grid-column:1;margin:0;max-width:none;text-align:center;font-size:clamp(28px,5.4vw,58px);line-height:1.4;letter-spacing:-.05em;text-wrap:balance}
 .benefit-message small{font-size:.74em}
 .estimate-gift{position:static;grid-column:2;grid-row:1/3;width:100%;height:auto;object-fit:contain}
 .benefit-description{font-size:clamp(14px,1.75vw,18px);line-height:2;max-width:900px}
 .benefit-button{min-height:56px;width:min(100%,435px);font-size:16px;padding:18px 26px}
 .campaign{padding-bottom:clamp(48px,7vw,80px)}
 .intro{padding:clamp(52px,7vw,80px) clamp(24px,6vw,70px)}
 .intro h2,.plans-heading h2,.quality-heading h2{font-size:clamp(26px,4vw,40px);line-height:1.6}
 .intro p,.plans-heading p,.quality-heading>p{font-size:clamp(14px,1.8vw,18px);line-height:2}
 .plans{padding:clamp(56px,8vw,90px) 0}
 .plans-heading{margin-bottom:clamp(40px,6vw,64px)}
 .plan-code{font-size:clamp(25px,3.4vw,36px)}.plan-code span{font-size:.8em}
 .plan-summary h3{font-size:clamp(28px,3.8vw,40px)}
 .plan-description,.specs p{font-size:14px;line-height:1.9}
 .plan-type{font-size:14px;padding:5px 10px}
 .plan-price strong{font-size:clamp(54px,7.2vw,78px)}.plan-price>span{font-size:22px}.plan-price small{font-size:12px;top:-10px}
 .plan-area{font-size:16px}.cert-badge{width:64px;height:64px}.cert-badge>span{font-size:13px}
 .specs h4{font-size:21px}.specs small{font-size:12px}.spec-divider{width:min(100%,380px);height:22px}
 .plan-note{font-size:12px;line-height:1.9}
 .quality{padding:clamp(56px,7vw,90px) 0}
 .quality-grid h3+p{font-size:14px;line-height:1.9}
 .quality-heading>p br,.quality-grid h3+p br{display:none}
 .gift{padding:clamp(44px,6vw,72px) clamp(20px,5vw,60px) 170px}
 .gift-label{max-width:1000px;font-size:clamp(24px,4vw,40px)}
 .gift-lead p{font-size:clamp(16px,3vw,30px)}
 .gift h2{font-size:clamp(32px,6.4vw,74px)}
 .gift-choice{font-size:clamp(19px,3.3vw,36px)}.gift-note{font-size:12px}
 .gift-destinations{width:min(84%,578px)}
 .consultation{padding:clamp(56px,7vw,90px) 0}
 .consult-heading .eyebrow{font-size:14px}.consult-heading h2{font-size:clamp(26px,4vw,40px)}
 .consult-heading>p:last-child,.method-form legend{font-size:14px}
 .method-help{font-size:13px;line-height:1.9}
 .contact-block>span{font-size:17px}.contact-block small{font-size:12px}
 .contact-phone>span{font-size:14px}.contact-phone small{font-size:12px}
 .footer p{font-size:12px}.footer-right>a{font-size:12px}.footer-right small{font-size:10px}
 .sticky-buttons>a>span{font-size:12px}.sticky-buttons small,.sticky-line small,.sticky-phone small{font-size:9px}
}
@media (min-width:600px) and (max-width:1199px){
 .header{height:86px}.header-cta{font-size:15px}
 .hero-catch{text-align:left}.hero-sub{margin-top:28px}
 .plan+.plan{margin-top:80px}
 .plan-summary{max-width:650px;margin-inline:auto}
 .price-row,.plan-two .price-row{justify-content:flex-start;gap:clamp(28px,7vw,80px)}
 .plan-one-details{grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin-top:32px}
 .floorplan-one{grid-column:1;grid-row:1;width:100%}.interior-one{grid-column:2;order:0}
 .plan-one-details>.specs{grid-column:1/-1;columns:2;column-gap:32px}
 .plan-one-details>.specs h4{column-span:all}.plan-one-details>.specs p{break-inside:avoid}.plan-one-details .spec-divider{display:none}
 .plan-two-details{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px;align-items:start}
 .interior-two{grid-column:1;grid-row:1}.plan-two-life .specs{grid-column:1;grid-row:2;order:0}
 .two-floorplans{grid-column:2;grid-row:1/3;gap:18px;margin-top:36px;align-self:center}
 .quality-grid article,.quality-grid article:first-child,.quality-grid article:last-child{padding:32px 0 32px 96px}
 .quality-icon{width:65px;max-width:65px;top:50px}
 .quality-grid h3{font-size:25px}.quality-grid h3+p{max-width:680px}
 .gift{padding-bottom:210px}.gift-copy{gap:26px;margin-top:40px}
 .gift-plane{width:76px}.gift-ticket{width:82px}.gift-osaka{width:164px;bottom:30px;left:10%}.gift-hokkaido{width:220px;right:9%;bottom:32px}
 .mobile-only{display:none}.method-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .method-card{position:relative;flex-direction:column;justify-content:center;gap:12px;padding:24px 10px;min-height:142px;text-align:center}
 .method-card>span:not(.radio-mark){font-size:clamp(13px,1.7vw,18px)}.method-card>img{max-width:39px}
 .radio-mark{position:absolute;right:12px;top:12px}
 .contact-grid{max-width:650px;margin-inline:auto}.contact-block{min-height:96px;padding-inline:28px}
 .footer-inner{display:flex}.footer-right{display:block;text-align:right}.footer-right>a{margin-bottom:20px}
 .sticky-cta{padding:12px 24px max(12px,env(safe-area-inset-bottom))}
 .sticky-buttons{max-width:1000px;margin:auto;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}
 .sticky-buttons>a{flex-direction:row;min-height:64px;gap:12px;padding:10px 8px;text-align:left}
 .sticky-buttons>a>img{max-width:24px;max-height:24px}.sticky-buttons>a>span{font-size:14px;letter-spacing:0}.sticky-buttons small{font-size:10px}
}
@media (min-width:900px) and (max-width:1199px){
 .plan-top,.plan-two .plan-top{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:36px;align-items:center}
 .plan-two .exterior{order:0}.plan-two .plan-summary{order:-1}
 .plan-code{font-size:29px}.plan-summary h3{font-size:31px}.plan-rule{margin-top:24px}
 .plan-description{font-size:14px}.price-row,.plan-two .price-row{gap:22px;justify-content:space-between}
 .plan-type{font-size:12px}.plan-price strong{font-size:60px}.plan-price>span{font-size:20px}
 .contact-grid{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))}
 .contact-block{padding:20px 16px;gap:10px}.contact-block>img{width:26px}.contact-block>span{font-size:14px}
 .contact-phone strong{font-size:21px}.contact-block small{font-size:11px}.contact-block .arrow{width:12px}
}
@media (max-width:480px){
 .benefit-banner{grid-template-columns:minmax(0,1fr) 58px;column-gap:10px;padding:22px 14px}
 .benefit-time{grid-column:1/-1;justify-content:center}
 .benefit-message{font-size:clamp(27px,7.3vw,35px);line-height:1.5;letter-spacing:-.04em}
 .estimate-gift{grid-row:2;align-self:center}
 .benefit-teaser p{font-size:12px}.benefit-teaser{gap:7px}
 .two-floorplans{grid-template-columns:1fr;justify-items:center;gap:64px;margin-top:36px}
 .floorplan-two-lower{order:-1;width:min(100%,290px)}
 .floorplan-two-upper{width:min(100%,260px)}
 .floorplan figcaption{font-size:30px;top:-38px}
 .footer-right{flex-wrap:wrap;row-gap:12px}.footer-right small{font-size:9px}
 .sticky-buttons>a{min-height:72px}.sticky-buttons>a>span{font-size:11px}
 .sticky-line small{display:none}
}
@media (max-width:360px){
 .header{gap:10px}.header-cta{font-size:11px;gap:6px}.header-cta img{width:14px}
 .hero-catch{font-size:33px}.hero-sub{font-size:14px}
 .benefit-teaser p{font-size:11px}.benefit-message{font-size:27px}
 .plan-type{font-size:12px;padding:4px 7px}.plan-price strong{font-size:50px}.plan-price>span{font-size:17px}
 .contact-block{padding-inline:16px}.contact-phone strong{font-size:25px}
 .sticky-buttons>a>span{font-size:10px}.sticky-buttons small{font-size:8px}
}
/* A compact persistent bar leaves room for content in landscape phone viewports. */
@media (max-width:1199px) and (max-height:500px) and (orientation:landscape){
 .sticky-cta{padding:5px 12px max(5px,env(safe-area-inset-bottom))}
 .sticky-buttons>a{flex-direction:row;min-height:44px;gap:8px;padding:6px;text-align:center}
 .sticky-buttons small{display:none}.sticky-buttons>a>span{font-size:12px}.sticky-buttons>a>img{max-width:20px;max-height:20px}
}
@media (max-width:1199px){
 .price-row,.plan-two .price-row{flex-wrap:wrap;column-gap:12px;row-gap:0}
 .plan-type,.plan-price{flex-shrink:0}
 .plan-price strong{letter-spacing:0}
}
@media (max-width:1199px){.plan-price small{left:auto;right:0}}

.benefit-plan{display:contents}
@media (max-width:480px){
 .benefit-banner{position:relative;grid-template-columns:minmax(0,1fr);row-gap:12px}
 .benefit-message{grid-column:1;text-align:center;font-size:clamp(23px,6.5vw,31px);letter-spacing:-.04em}
 .benefit-message .benefit-plan{display:block;white-space:nowrap}
 .benefit-message .free-group{display:inline-block;margin-right:64px;font-size:1.35em;line-height:1.6}
 .estimate-gift{position:absolute;width:58px;right:14px;bottom:24px}
}
@media (max-width:480px){.estimate-gift{grid-column:auto;grid-row:auto}}

/* Persistent menu control; the header itself stays in the document flow. */
.menu-ready .header nav{display:none}
.menu-ready .header-cta{margin-left:auto;margin-right:80px}
.menu-toggle{position:fixed;z-index:80;top:21px;right:max(24px,calc((100vw - 1325px)/2));width:56px;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:10px;border:1px solid var(--color-line);background:white;color:var(--color-ink);cursor:pointer;box-shadow:0 2px 12px #0000000d}
.menu-toggle[hidden]{display:none}
.menu-lines{position:relative;width:24px;height:12px;display:block}
.menu-lines::before,.menu-lines::after{content:"";position:absolute;left:0;width:100%;height:1px;background:currentColor}
.menu-lines::before{top:2px}.menu-lines::after{bottom:2px}
.menu-caption{font:500 9px/1 var(--font-latin);letter-spacing:.08em}
.menu-toggle:hover{background:var(--color-surface)}
html.menu-is-open,html.menu-is-open body{overflow:hidden}
.menu-dialog{position:fixed;inset:0;margin:0;border:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;padding:110px 24px 48px;overflow:auto;overscroll-behavior:contain;background:rgb(0 0 0 / 70%);color:white}
.menu-dialog::backdrop{background:transparent}
.menu-close{z-index:auto;background:white;color:var(--color-ink);border-color:var(--color-line);box-shadow:none}
.menu-close:hover{background:var(--color-surface)}
.menu-close .menu-lines::before{top:5px;transform:rotate(45deg)}
.menu-close .menu-lines::after{top:5px;bottom:auto;transform:rotate(-45deg)}
.menu-inner{width:min(100%,640px);margin-inline:auto}
.menu-title{font:500 13px/1.5 var(--font-latin);letter-spacing:.2em;margin-bottom:24px}
.menu-inner nav{display:flex;flex-direction:column}
.menu-inner nav>a{display:flex;align-items:center;gap:24px;min-height:76px;padding:17px 0;border-bottom:1px solid #ffffff4d;font:500 clamp(22px,3vw,32px)/1.5 var(--font-heading);transition:opacity .2s}
.menu-inner nav>a:hover{opacity:.7}
.menu-number{flex-shrink:0;font:400 11px/1 var(--font-latin);letter-spacing:.04em}
.menu-arrow{margin-left:auto;font:400 24px/1 var(--font-latin)}
.menu-note{margin-top:28px;font-size:13px;line-height:1.9}
.menu-dialog a:focus-visible,.menu-close:focus-visible{outline:2px solid white;outline-offset:5px}
@media (min-width:600px) and (max-width:1199px){.menu-toggle{top:17px;width:52px;height:52px}}
@media (max-width:599px){
 .menu-ready .header-cta{display:none}
 .menu-toggle{top:12px;right:clamp(16px,3.5vw,24px);width:52px;height:52px}
 .menu-dialog{padding:100px 28px 40px}
 .menu-title{margin-bottom:18px}
 .menu-inner nav>a{min-height:66px;gap:16px;padding:15px 0;font-size:22px}
 .menu-note{font-size:12px}
}

/* Desktop navigation remains available until the header leaves the viewport. */
@media (min-width:1200px){
 .menu-ready .header nav{display:flex}
 .menu-ready .header-cta{margin-left:0;margin-right:0}
}
/* On smaller screens, destination illustrations sit directly above the destination labels. */
.gift-illustrations{display:contents}
@media (min-width:1200px){
 .gift-osaka{left:calc(-206 * var(--u));top:calc(135 * var(--u))}
 .gift-hokkaido{left:calc(678 * var(--u));top:calc(210 * var(--u))}
}
@media (max-width:1199px){
 .gift{min-height:0;padding:clamp(44px,6vw,72px) clamp(20px,5vw,60px)}
 .gift-illustrations{display:flex;align-items:flex-end;justify-content:space-around;gap:16px;width:min(100%,578px);padding-inline:8px}
 .gift-osaka,.gift-hokkaido{position:static;left:auto;right:auto;top:auto;bottom:auto;height:auto;object-fit:contain;flex-shrink:0}
 .gift-osaka{width:clamp(94px,24vw,174px)}
 .gift-hokkaido{width:clamp(126px,30vw,220px)}
}
/* Phone offer artwork: scale the supplied reference composition with the banner width. */
@media (max-width:599px){
 .benefit-banner{container-type:inline-size;display:block;aspect-ratio:944/502;height:auto;min-height:0;padding:0;border:0}
 .benefit-time{position:absolute;left:50%;top:3.8cqw;transform:translateX(-50%);display:flex;align-items:baseline;justify-content:center;gap:0;height:auto;margin:0;color:var(--color-accent);white-space:nowrap}
 .benefit-time>span{font-size:10.4cqw;font-weight:500;line-height:1;letter-spacing:-.03em}
 .benefit-time>span:last-child{letter-spacing:-.03em}
 .benefit-time>strong{font:400 16cqw/1 var(--font-latin);letter-spacing:-.06em}
 .benefit-message{position:absolute;left:4cqw;top:21.3cqw;width:65.5%;max-width:none;margin:0;font-size:7.7cqw;font-weight:500;line-height:1.22;letter-spacing:-.05em;text-align:left;color:var(--color-brown);white-space:nowrap;text-wrap:nowrap}
 .benefit-message .benefit-plan{display:block;white-space:nowrap}
 .benefit-message small{font-size:.64em}
 .benefit-message .free-group{display:block;margin:0;font-size:15.7cqw;line-height:1.08;letter-spacing:-.02em;white-space:nowrap}
 .benefit-message em{color:var(--color-accent)}
 .estimate-gift{position:absolute;left:auto;right:3.3cqw;top:auto;bottom:5.1cqw;grid-column:auto;grid-row:auto;width:25.5%;height:auto;object-fit:contain}
}

/* Center the longer event title across the hero and keep it within phone screens. */
.event-heading{left:0;width:100%}
@media (max-width:1199px){.event-heading h2{font-size:clamp(30px,10.5vw,114px)}}

.event-mobile-break{display:none}
@media (max-width:599px){.event-mobile-break{display:block}.event-heading h2{text-align:center}}

/* Keep event details as readable as the main hero copy. */
.event-heading{text-shadow:var(--hero-text-shadow)}
/* The phone's long plan section uses a smaller texture instead of one enlarged image. */
@media (max-width:599px){
 .plans .texture{background-image:url('assets/figma/imgAdobeStock2934857691.png');background-size:900px 600px;background-position:center top;background-repeat:repeat}
 .plans .texture>img{display:none}
}

/* Phone-only line breaks and title sizing; desktop text remains inline. */
.phone-copy-break{display:none}
@media (max-width:599px){
 .event-heading h2{font-size:calc((100vw - 60px)/4.85);max-width:calc(100% - 60px)}
 .phone-copy-break{display:block}
 .phone-copy-line{white-space:nowrap}
 .intro h2{font-size:clamp(22px,calc((100vw - 48px)/12),26px)}
 .plans-heading h2{font-size:clamp(24px,calc((100vw - 32px)/11.44),26px)}
 .plans-heading p{font-size:clamp(12px,calc((100vw - 32px)/24),14px)}
 .consult-heading>p:last-child{font-size:clamp(13px,calc((100vw - 32px)/21),14px)}
}
/* Keep phone plan dividers visible and align currency units with the price baseline. */
@media (max-width:599px){
 .plan-rule{height:1px;background:white;object-fit:fill}
 .plan-price{align-items:baseline}
 .plan-price>span{line-height:1}
 .plan-price small{top:-1em}
}

/* Use a CSS rule, avoiding fractional SVG image sizing in WebKit. */
.spec-divider{max-width:100%;gap:0}
.spec-divider::before{content:"";display:block;flex:0 0 100%;height:0;border-top:1px solid currentColor}

/* Contact is available only by phone and LINE. */
.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px;margin-inline:auto}
.sticky-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:899px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:599px){.sticky-buttons>a>span{font-size:12px}}
