/*
Theme Name: 충주 성남동 Residence
Author: 비랜딩 (blanding.kr)
Version: 1.0.30
Text Domain: chungju-seongnam
Description: 비랜딩 기본테마에서 파생된 충주 성남동 프로젝트 전용 테마.
*/
@font-face{font-family:SUIT;src:url('assets/SUIT-Variable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--ink:#172c42;--muted:#64707b;--bronze:#ad8b5e;--paper:#fff;--line:#dedfe1;--white:#fff;--container:1440px;--display:500 clamp(38px,3.4vw,58px)/1.28 SUIT,sans-serif;--page:500 clamp(36px,3.4vw,54px)/1.3 SUIT,sans-serif;--section:500 clamp(28px,2.7vw,40px)/1.35 SUIT,sans-serif;--sub:500 23px/1.45 SUIT,sans-serif;--body:400 17px/1.75 SUIT,sans-serif;--support:400 15px/1.75 SUIT,sans-serif;--label:500 14px/1.5 SUIT,sans-serif;--caption:400 12px/1.7 SUIT,sans-serif;--number:400 37px/1.35 SUIT,sans-serif;--display-ls:-.035em;--page-ls:-.045em;--section-ls:-.04em;--sub-ls:-.025em;--body-ls:-.01em;--label-ls:0;--caption-ls:.01em;--eyebrow-ls:.16em;--number-ls:-.04em}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--paper);font:var(--body);letter-spacing:var(--body-ls);word-break:keep-all}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1{font:var(--page);letter-spacing:var(--page-ls)}h2{font:var(--section);letter-spacing:var(--section-ls)}h3{font:var(--sub);letter-spacing:var(--sub-ls)}p+p{margin-top:22px}a:focus-visible,button:focus-visible{outline:2px solid var(--bronze);outline-offset:6px}input:focus,textarea:focus{outline:2px solid var(--bronze);outline-offset:2px}.section{max-width:var(--container);margin:auto;padding:100px 64px}.eyebrow{font:var(--label);letter-spacing:var(--eyebrow-ls);margin-bottom:22px}.bronze{color:var(--bronze)}.muted{color:var(--muted)}.caption{font:var(--caption);letter-spacing:var(--caption-ls);color:var(--muted);margin-top:18px}.caption a{text-decoration:underline;text-underline-offset:3px}.text-link{display:inline-flex;gap:42px;align-items:center;padding:13px 0;border-bottom:1px solid currentColor;font:var(--label);letter-spacing:var(--label-ls)}.text-link span{font:var(--sub);letter-spacing:var(--sub-ls);transition:transform .3s}.text-link:hover span{transform:translate(3px,-3px)}.dark{color:var(--ink)}.button{display:inline-flex;justify-content:space-between;gap:55px;align-items:center;padding:18px 26px;background:var(--ink);color:white;border:1px solid var(--ink);font:var(--label);letter-spacing:var(--label-ls);transition:background .25s}.button:hover{background:#41564a}.light{background:transparent;border-color:#85988a}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;left:16px;top:-100px;z-index:100;background:white;color:var(--ink);padding:12px}.skip:focus{top:15px}
/* Navigation: five groups, keyboard and mobile hierarchy retained. */
.header{height:94px;padding:0 4.3%;display:flex;align-items:center;justify-content:space-between;position:fixed;inset:0 0 auto;z-index:50;background:var(--paper);border-bottom:1px solid var(--line);transition:background .3s,color .3s,height .3s}.header.over-hero{background:linear-gradient(#18291f55,transparent);color:white;border-color:#ffffff30}.header.scrolled{height:78px;background:var(--paper);color:var(--ink);border-color:var(--line)}.brand{display:flex;flex-direction:column;gap:4px}.brand-en{font:var(--caption);letter-spacing:var(--eyebrow-ls)}.brand-ko{font:var(--sub);letter-spacing:var(--sub-ls)}.nav{display:flex;gap:33px;font:var(--label);letter-spacing:var(--label-ls)}.nav a{padding:12px 0}.nav a:hover,.nav a[aria-current]{color:var(--bronze)}.nav-group{position:relative}.nav-top{display:block}.nav-dropdown{position:absolute;left:50%;top:100%;transform:translateX(-50%) translateY(8px);min-width:190px;background:var(--paper);color:var(--ink);padding:16px 23px;border:1px solid var(--line);visibility:hidden;opacity:0;transition:opacity .2s,transform .2s;box-shadow:0 12px 30px #1228200b}.nav-group:hover .nav-dropdown,.nav-group:focus-within .nav-dropdown{visibility:visible;opacity:1;transform:translateX(-50%)}.nav-dropdown a{display:block;padding:11px 0;white-space:nowrap;font:var(--label);letter-spacing:var(--label-ls)}.header-contact{display:flex;gap:25px;padding:12px 0 12px 25px;border-left:1px solid currentColor;font:var(--label);letter-spacing:var(--label-ls)}.header-contact:hover{color:var(--bronze)}.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;color:inherit}.menu-toggle span:not(.sr-only){display:block;width:25px;height:1px;background:currentColor;margin:7px auto}.mobile-nav[hidden]{display:none!important}.mobile-nav{position:fixed;z-index:49;inset:78px 0 0;background:var(--paper);padding:32px 28px 125px;color:var(--ink);overflow-y:auto}.mobile-group{border-bottom:1px solid var(--line)}.mobile-group summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font:var(--sub);letter-spacing:var(--sub-ls);padding:22px 0;list-style:none}.mobile-group summary::-webkit-details-marker{display:none}.mobile-group[open] summary span{transform:rotate(45deg)}.mobile-group>div{padding:0 0 15px 18px}.mobile-group a{display:flex;justify-content:space-between;font:var(--label);letter-spacing:var(--label-ls);padding:13px 0}.mobile-contact{display:flex;justify-content:space-between;margin-top:24px;padding:20px 0;font:var(--sub);letter-spacing:var(--sub-ls)}
/* Main: panorama, bright introduction, two independent architectural views. */
.hero{height:100svh;min-height:680px;max-height:1080px;position:relative;color:white;overflow:hidden;background:#263a34}.hero-media{position:absolute;inset:0;animation:hero-reveal 1.2s ease-out both}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}.hero-slide.is-active{opacity:1}.hero-media picture{display:block;width:100%;height:100%}.hero-media img{height:100%;width:100%;object-fit:cover;object-position:center}.hero-slide.is-active img{animation:hero-zoom 16s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#13281fb3,transparent 52%),linear-gradient(0deg,#10261f99,transparent 23%);pointer-events:none}.hero-copy{position:absolute;left:6.5%;bottom:24%;width:44%;max-width:620px;animation:copy-in 1.1s ease-out both}.hero-copy h1{font:var(--display);letter-spacing:var(--display-ls)}.hero-copy .eyebrow{margin-bottom:20px}.hero-desc{font:var(--support);letter-spacing:var(--body-ls);color:#ffffffe6;margin-top:22px}.hero-copy .text-link{margin-top:26px}.hero-bottom{position:absolute;bottom:30px;left:4.3%;right:4.3%;display:flex;justify-content:space-between;gap:30px;font:var(--caption);letter-spacing:var(--caption-ls)}.hero-caption{color:#ffffffdf;text-align:right}.hero-scroll{position:absolute;left:6.5%;bottom:115px;font:var(--caption);letter-spacing:var(--eyebrow-ls);display:flex;align-items:center;gap:20px}.hero-scroll:before{content:'';width:45px;height:1px;background:currentColor}.opening-copy{display:grid;grid-template-columns:1.1fr 1fr;gap:0 100px;align-items:center}.opening-copy>.eyebrow{grid-column:1/-1}.opening-copy h2{font:var(--page);letter-spacing:var(--page-ls)}.home-units h2,.home-plan h2,.contact-band h2{font:var(--sub);letter-spacing:var(--sub-ls)}.opening-copy .text-link{margin-top:22px}.project-opening{padding-top:125px;padding-bottom:65px}.facts{display:grid;grid-template-columns:1fr 1fr 1.1fr;margin-top:65px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.facts>div{padding:25px 35px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-right:1px solid var(--line)}.facts>div:first-child{padding-left:0}.facts>div:last-child{border:0;padding-right:0}.facts>div>span{font:var(--label);letter-spacing:var(--label-ls);color:var(--muted)}.facts strong{font:var(--number);letter-spacing:var(--number-ls);white-space:nowrap}.facts strong span{font:var(--support);letter-spacing:var(--body-ls);margin-left:8px}.architecture-story{display:grid;grid-template-columns:1.65fr 1fr;gap:80px;align-items:center;padding-top:70px;padding-bottom:55px}.story-photo{min-width:0}.story-photo img{width:100%;height:auto}.story-photo figcaption{font:var(--caption);letter-spacing:var(--caption-ls);color:var(--muted);margin-top:14px}.story-copy>.muted{font:var(--support);letter-spacing:var(--body-ls);margin-top:25px}.story-copy .text-link{margin-top:24px}.architecture-reverse{grid-template-columns:1fr 1.65fr;padding-top:55px;padding-bottom:120px}.architecture-reverse .story-copy{padding-left:35px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:45px}.section-heading>.muted{font:var(--support);letter-spacing:var(--body-ls)}
/* Map remains the original approved map; facility names remain sourced data. */
.location-editorial{background:#f0f1eb}.location-editorial>.section{padding-top:90px;padding-bottom:70px}.location-layout{display:grid;grid-template-columns:1.9fr 1fr;gap:48px;align-items:start}.location-map,.location-list{min-width:0}.map-frame,.plan-editorial-image{display:block;position:relative;background:#eeece7;border:1px solid var(--line)}.map-frame img{width:100%;height:auto;object-fit:contain}.image-expand{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:25px;min-height:44px;padding:12px 18px;background:var(--ink);color:var(--white);font:var(--label);letter-spacing:var(--label-ls);box-shadow:0 2px 9px #14292315}.facility-line{display:flex;gap:17px;padding:16px 0;border-bottom:1px solid #d5d9ce}.facility-line:first-child{padding-top:0}.value-icon{width:42px;height:42px;color:var(--bronze);flex-shrink:0}.facility-line h3{font:var(--label);letter-spacing:var(--label-ls)}.facility-line p{font:var(--support);letter-spacing:var(--body-ls);margin-top:5px;color:var(--muted)}.location-list>.text-link{margin-top:15px}.location-note{margin-top:25px}.home-units{padding-top:105px;padding-bottom:70px}.unit-rows{border-top:1px solid var(--ink)}.unit-row{display:grid;grid-template-columns:1fr 1.5fr 1fr 35px;gap:25px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.unit-label{font:var(--label);letter-spacing:var(--label-ls);color:var(--muted)}.unit-row h3{font:var(--page);letter-spacing:var(--page-ls)}.unit-row p{font:var(--number);letter-spacing:var(--number-ls)}.unit-row p span{font:var(--support);letter-spacing:var(--body-ls);margin-left:12px}.unit-arrow{font:var(--sub);letter-spacing:var(--sub-ls)}.unit-row:hover .unit-arrow{color:var(--bronze)}.home-plan{padding-top:45px;padding-bottom:100px}.plan-editorial-image img{width:100%;height:auto}.home-final{display:grid;grid-template-columns:1fr 1.15fr;gap:90px;padding-top:70px;padding-bottom:100px;border-top:1px solid var(--line)}.directions-address{font:var(--sub);letter-spacing:var(--sub-ls);margin-bottom:25px}.directions-links{display:flex;flex-wrap:wrap;gap:28px;margin-top:22px}.directions-links .text-link{gap:15px}.contact-band{padding-left:60px;border-left:1px solid var(--line)}.contact-band>.muted{font:var(--support);letter-spacing:var(--body-ls);margin-top:22px}.contact-band .button{margin-top:27px}.contact-band>.text-link{display:flex;max-width:265px;margin-top:10px;justify-content:space-between}
/* Shared public pages, form, galleries, privacy and notice routes. */
.sub-main{padding-top:94px;min-height:60vh}.page-heading{padding-top:90px;padding-bottom:65px}.page-heading h1{margin-bottom:25px}.page-content{padding-top:0}.editorial{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:65px}.editorial .button{margin-top:30px}.data-list{margin-top:35px;border-top:1px solid var(--line)}.data-list>div{display:grid;grid-template-columns:115px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);font:var(--support);letter-spacing:var(--body-ls)}dt{color:var(--muted)}dd{margin:0}.wide-image{width:100%;max-height:850px;object-fit:cover}.map-image{object-fit:contain;background:#ebe9e3}.map-original{display:block}.map-original img{height:auto}.after-image{margin-top:65px;margin-bottom:0}.external-links{display:flex;flex-direction:column;align-items:start;gap:14px;margin-top:30px}.image-gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px}.image-open{border:0;padding:0;text-align:left;background:transparent;color:var(--ink)}.image-open:first-child{grid-column:1/-1}.image-open img{width:100%;aspect-ratio:16/10;object-fit:cover}.image-open:first-child img{aspect-ratio:16/9}.image-open>span{display:flex;align-items:center;justify-content:space-between;font:var(--label);letter-spacing:var(--label-ls);padding:18px 0;border-bottom:1px solid var(--line)}.lightbox{border:0;background:var(--ink);padding:0;max-width:95vw;max-height:95vh}.lightbox::backdrop{background:#0f211bdf}.lightbox img{max-height:85vh;max-width:95vw;object-fit:contain}.lightbox-close{color:white;border:0;background:var(--ink);padding:10px 20px;display:block;margin-left:auto;font:var(--label);letter-spacing:var(--label-ls)}.list-heading{margin:80px 0 30px}.notice-list{border-top:1px solid var(--ink)}.notice-list>a{display:flex;gap:30px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line)}.notice-list>a span{flex:1}.notice-list time{font:var(--caption);letter-spacing:var(--caption-ls);color:var(--muted)}.notice-list>p{padding:35px 0;font:var(--support);letter-spacing:var(--body-ls)}.form-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px}.form-layout h2{margin-bottom:30px}.interest-form>label{display:block;font:var(--label);letter-spacing:var(--label-ls);margin-bottom:25px}.interest-form input:not([type=checkbox]),.interest-form textarea{display:block;width:100%;margin-top:12px;background:transparent;border:0;border-bottom:1px solid #a5aaa3;padding:15px 0;border-radius:0;font:var(--body);letter-spacing:var(--body-ls);color:var(--ink)}.required{font:var(--caption);letter-spacing:var(--caption-ls);color:var(--bronze);margin-left:10px}.consent-detail{border:1px solid var(--line);padding:23px;font:var(--caption);letter-spacing:var(--caption-ls);color:var(--muted)}.consent-detail strong{color:var(--ink);font:var(--label);letter-spacing:var(--label-ls)}.consent-detail p{margin:12px 0}.consent-detail a{color:var(--ink);text-decoration:underline}.interest-form .consent{display:flex;align-items:center;gap:10px;margin-top:20px;cursor:pointer}.consent input{width:18px;height:18px;accent-color:var(--ink);flex-shrink:0}.interest-form .button{width:100%;margin-top:10px}.honeypot{position:absolute;left:-9999px}.form-success{padding:35px 0;border-top:1px solid var(--bronze);border-bottom:1px solid var(--line)}.form-success p{margin-top:25px;font:var(--support);letter-spacing:var(--body-ls)}.prose{max-width:850px}.prose h2,.prose h3{margin:40px 0 22px}.prose h1{margin-bottom:50px}.prose p{font:var(--support);letter-spacing:var(--body-ls)}.map-title{margin:70px 0 35px}.context-gallery{grid-template-columns:1fr;margin-top:40px}.context-gallery .image-open{grid-column:1/-1}.context-gallery .image-open img{aspect-ratio:8/5;object-fit:contain}.concept-gallery{margin-top:35px}.concept-gallery .image-open:first-child img{aspect-ratio:8/5}.review-details{margin-top:75px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0}.review-details summary{cursor:pointer;font:var(--label);letter-spacing:var(--label-ls)}.review-details[open]>summary{margin-bottom:35px}.review-details .list-heading{margin-top:40px}.section-nav{display:flex;flex-wrap:wrap;gap:35px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:65px;font:var(--label);letter-spacing:var(--label-ls)}.section-nav a{padding:3px 0}.section-nav a:hover{color:var(--bronze)}.content-block{margin-top:85px;padding-top:40px;border-top:1px solid var(--line)}.site-plan-block{margin-top:0;padding-top:0;border:0;margin-bottom:85px}.plan-original{display:block}.site-plan-block .wide-image{width:auto;height:auto;max-height:820px;margin:0 auto;object-fit:contain}.preparation-note{padding:35px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.preparation-note p:not(.eyebrow){font:var(--support);letter-spacing:var(--body-ls);color:var(--muted);margin-top:24px}.preparation-note .text-link{margin-top:25px}.living-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px 35px;margin-top:55px}.living-grid article{border-top:1px solid var(--line);padding-top:25px}.living-grid .value-icon{margin-bottom:20px}.living-grid .eyebrow{margin-bottom:12px}.living-grid .muted{font:var(--support);letter-spacing:var(--body-ls);margin-top:15px}.living-facilities{font:var(--support);letter-spacing:var(--body-ls);margin-top:22px}.page-content [id]{scroll-margin-top:25px}
.footer{padding:60px 6% 35px;background:#eeeee7;display:grid;grid-template-columns:1fr 1fr;gap:30px;color:#626d66;font:var(--caption);letter-spacing:var(--caption-ls)}.footer-brand{display:inline-block;font:var(--sub);letter-spacing:var(--sub-ls);color:var(--ink);margin-bottom:20px}.footer-links{display:flex;gap:25px;justify-content:end;align-items:start;font:var(--label);letter-spacing:var(--label-ls)}.fine{grid-column:1/-1;max-width:880px}.footer small{font:var(--caption);letter-spacing:var(--caption-ls)}.floating-contact{display:none}.reveal{opacity:0;transform:translateY(25px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}
@keyframes hero-zoom{from{transform:scale(1.025)}to{transform:scale(1)}}@keyframes copy-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes hero-reveal{from{opacity:.3}to{opacity:1}}
@media(max-width:1100px){.header{height:78px}.nav,.header-contact{display:none}.menu-toggle{display:block}.menu-open{overflow:hidden}.menu-open .header{background:var(--paper);color:var(--ink)}.section{padding-left:35px;padding-right:35px}.sub-main{padding-top:78px}.opening-copy,.editorial,.form-layout{gap:45px}.facts>div{padding:22px;gap:15px}.facts strong{font:var(--sub);letter-spacing:var(--sub-ls)}.architecture-story{gap:40px;grid-template-columns:1.4fr 1fr}.architecture-reverse{grid-template-columns:1fr 1.4fr}.architecture-reverse .story-copy{padding-left:0}.location-layout{gap:30px;grid-template-columns:1.55fr 1fr}.facility-line{padding:12px 0;gap:12px}.facility-line .value-icon{width:32px;height:32px}.home-final{gap:40px}.contact-band{padding-left:35px}}
@media(min-width:781px) and (max-height:800px){.hero-copy{bottom:24%}.hero-scroll{left:auto;right:4.3%}}
@media(max-width:780px){:root{--display:500 clamp(28px,7.5vw,36px)/1.32 SUIT,sans-serif;--page:500 36px/1.3 SUIT,sans-serif;--section:500 30px/1.35 SUIT,sans-serif;--body:400 16px/1.85 SUIT,sans-serif;--support:400 14px/1.8 SUIT,sans-serif;--label:500 13px/1.5 SUIT,sans-serif;--sub:500 21px/1.45 SUIT,sans-serif;--number:400 29px/1.35 SUIT,sans-serif}.header{height:78px;padding:0 24px}.section{padding:65px 24px}.desktop-only{display:none}.hero{height:auto;min-height:0;max-height:none}.hero-media{position:relative;height:143.62vw;max-height:720px}.hero-media img{object-fit:contain;object-position:center}.hero-shade{bottom:auto;height:143.62vw;max-height:720px;background:linear-gradient(0deg,#263a34,transparent 17%)}.hero-copy{position:relative;left:auto;bottom:auto;width:auto;max-width:none;padding:12px 24px 30px;background:#263a34}.hero-copy .eyebrow{margin-bottom:12px}.hero-desc{margin-top:15px}.hero-copy .text-link{margin-top:15px;padding-bottom:10px}.hero-bottom{position:relative;inset:auto;display:block;padding:0 24px 28px;background:#263a34}.hero-bottom>span{display:block}.hero-caption{text-align:left;margin-top:5px}.hero-scroll{display:none}.project-opening{padding-top:65px;padding-bottom:25px}.opening-copy{display:block}.opening-copy>div{margin-top:25px}.opening-copy .text-link{margin-top:16px}.facts{grid-template-columns:1fr;margin-top:36px}.facts>div,.facts>div:first-child,.facts>div:last-child{padding:18px 0;border-right:0;border-bottom:1px solid var(--line)}.facts>div:last-child{border-bottom:0}.facts strong{font:var(--number);letter-spacing:var(--number-ls)}.architecture-story,.architecture-reverse{display:flex;flex-direction:column;gap:25px;padding-top:40px;padding-bottom:30px;align-items:stretch}.architecture-story .story-copy{order:0;padding:0}.architecture-story .story-photo{order:1}.story-copy>.muted{margin-top:18px}.story-copy .text-link{margin-top:15px}.architecture-reverse{padding-bottom:65px}.section-heading{display:block;margin-bottom:30px}.section-heading>.muted,.section-heading>.text-link{margin-top:23px}.location-editorial>.section{padding-top:60px;padding-bottom:55px}.location-layout{display:block}.location-list{margin-top:30px}.location-map .map-frame{padding-bottom:58px}.facility-line,.facility-line:first-child{padding:14px 0;gap:17px}.facility-line .value-icon{width:36px;height:36px}.facility-line p{margin-top:3px}.image-expand{right:10px;bottom:10px;padding:11px 13px;gap:20px}.location-note{margin-top:20px}.home-units{padding-top:65px;padding-bottom:35px}.unit-row{grid-template-columns:1fr 1fr 25px;gap:10px;padding:23px 0}.unit-label{grid-column:1/-1}.unit-row h3{font:var(--page);letter-spacing:var(--page-ls)}.unit-row p{font:var(--number);letter-spacing:var(--number-ls)}.unit-row p span{display:block;font:var(--caption);letter-spacing:var(--caption-ls);margin:2px 0 0}.home-plan{padding-top:30px;padding-bottom:60px}.home-plan .plan-editorial-image{padding-bottom:58px}.home-plan .image-expand{bottom:9px}.home-final{display:block;padding-top:55px;padding-bottom:65px}.directions-links{gap:22px}.contact-band{padding:40px 0 0;margin-top:40px;border-left:0;border-top:1px solid var(--line)}.contact-band>.text-link{max-width:none}.footer{padding:45px 24px 135px;display:block}.footer-links{justify-content:start;flex-wrap:wrap;gap:15px;margin:30px 0}.footer .fine{margin:25px 0}.floating-contact{position:fixed;inset:auto 0 0;z-index:30;display:flex;justify-content:space-between;padding:14px 24px;background:var(--ink);color:white;border-top:1px solid #698070;font:var(--label);letter-spacing:var(--label-ls);box-shadow:0 -3px 14px #1c33251a}.page-heading{padding-top:60px;padding-bottom:40px}.page-content{padding-top:0}.editorial,.form-layout{display:block}.editorial h2{margin-bottom:30px}.editorial{margin-bottom:40px}.after-image{margin-top:45px;margin-bottom:0}.image-gallery{display:block}.image-open{display:block;margin-bottom:30px;width:100%}.image-open img,.image-open:first-child img,.concept-gallery .image-open:first-child img{aspect-ratio:8/5}.form-layout>div:first-child{margin-bottom:45px}.notice-list>a{gap:14px}.data-list>div{grid-template-columns:100px 1fr;gap:10px}.prose h1{margin-bottom:30px}.section-nav{gap:18px 25px;margin-bottom:40px;padding:16px 0}.content-block{margin-top:60px;padding-top:30px}.site-plan-block{margin-top:0;padding-top:0;margin-bottom:60px}.site-plan-block .wide-image{width:100%;max-height:none}.preparation-note{padding:28px 0}.living-grid{grid-template-columns:1fr;gap:35px;margin-top:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.hero-media,.hero-copy{animation:soft-entry .4s ease-out both!important}.hero-slide.is-active img{animation:none!important}}
@keyframes soft-entry{from{opacity:.2}to{opacity:1}}

.review-film video{display:block;width:100%;height:auto;background:#263a34;aspect-ratio:16/9}.review-film .editorial{margin-bottom:30px}

/* Keep linked headings visible below the fixed navigation. */
:root{--anchor-offset:118px}.page-content [id]{scroll-margin-top:var(--anchor-offset)}
@media(max-width:1100px){:root{--anchor-offset:102px}}

/* Common campaign typography role 10. Same tokens on every route. */
:root{--campaign:500 clamp(54px,6vw,88px)/1.12 SUIT,sans-serif;--campaign-ls:-.045em;--header-height:132px;--rail-width:80px}
html{scroll-padding-top:calc(var(--header-height) + 28px)}
.header{height:var(--header-height);padding:0 4.3%;display:grid;grid-template-rows:76px 56px;justify-content:stretch;background:#fff;border-color:var(--line)}
.header-topline{display:flex;align-items:center;justify-content:space-between;gap:24px}
.header .brand{min-width:190px}.header .brand-en{color:var(--bronze)}
.header.over-hero{background:linear-gradient(#14283f66,transparent);border-color:#ffffff38}
.header.over-hero .brand-en{color:#fff}.header-title{font:var(--support);letter-spacing:var(--body-ls);text-align:center}
.header .nav{justify-content:center;gap:clamp(40px,6.5vw,100px);border-top:1px solid #ffffff38;align-items:center}
.header .nav-top{padding:16px 0}.header .header-contact{padding:9px 0 9px 24px;white-space:nowrap}
.header.scrolled{height:var(--header-height);background:#fff;color:var(--ink)}
.header.scrolled .nav,.header:not(.over-hero) .nav{border-color:var(--line)}
.header.scrolled .brand-en{color:var(--bronze)}
.sub-main{padding-top:var(--header-height)}
.quick-rail{position:fixed;inset:0 0 0 auto;width:var(--rail-width);z-index:60;background:#14283f;color:#fff;display:flex;flex-direction:column;justify-content:center}
.quick-rail a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:104px;border-bottom:1px solid #ffffff24;font:var(--caption);letter-spacing:var(--caption-ls);text-align:center;transition:background .25s}
.quick-rail a:hover,.quick-rail a:focus-visible{background:#304863}.quick-rail svg{width:26px;height:26px;color:#d7c2a6}
.quick-rail .quick-top{min-height:64px;color:#d7c2a6}
body.home{padding-right:var(--rail-width)}body.home .header{right:var(--rail-width)}
body.home .header-title{color:inherit}
@media(max-width:1100px){:root{--header-height:78px;--rail-width:0px}.header{display:flex;padding:0 24px}.header-topline{width:100%}.header-title,.header .nav,.header .header-contact,.quick-rail{display:none}.header .brand{min-width:0}.header .menu-toggle{display:block}.mobile-nav{top:var(--header-height)}.header.scrolled{height:var(--header-height)}}
@media(max-width:780px){:root{--campaign:500 42px/1.16 SUIT,sans-serif}.header .brand-ko{font:var(--sub);letter-spacing:var(--sub-ls)}}

/* Visual pass 2: anchor the rail return control at the viewport base. */
.quick-rail .quick-top{position:absolute;bottom:0;left:0;right:0;border-top:1px solid #ffffff24;border-bottom:0}
.prose p.caption{font:var(--caption);letter-spacing:var(--caption-ls)}
/* Role 10 responds to short landscape screens; every use shares the token. */
@media(min-width:992px) and (max-height:820px){:root{--campaign:500 44px/1.12 SUIT,sans-serif}}
