/* ===========================================================
   TROON ESTATE — 공통 스타일
   화면설계서 v1.0 (2026.09.18) 03 공통 규격 준수
   디자인 확정 시 :root 토큰과 타이포 블록만 교체하면 된다.
   =========================================================== */

:root{
  /* 3.1 디자인 토큰 — 지면 추출 근사값, 웹 적용 전 최종 확정 필요(08-02) */
  --charcoal:#262520;      /* 에스테이트 차콜 */
  --ivory:#F4F1EA;         /* 웜 아이보리 */
  --teal:#0D5B5B;          /* 딥 티일 — 화면당 액센트 2곳 이내 */
  --bronze:#9B7B50;        /* 브론즈 */

  --ink:var(--charcoal);
  --ink-soft:rgba(38,37,32,.62);
  --line:rgba(38,37,32,.14);
  --bg:var(--ivory);

  --font-display:Georgia,"Times New Roman",serif;      /* 08-03 확정 필요 */
  --font-body:"Noto Sans KR",-apple-system,"Apple SD Gothic Neo",sans-serif;

  --maxw:1280px;           /* 12칼럼 최대폭 */
  --contentw:960px;        /* 콘텐츠 폭 */
  --gutter:24px;
  --secpad:120px;          /* PC 섹션 상하 여백 — 줄이지 않는다 */
}

@media (max-width:768px){
  :root{ --secpad:72px; }
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
@media (max-width:768px){ body{font-size:15px} }

h1,h2,h3,h4,p,li,dt,dd,th,td,summary{
  word-break:keep-all;
  overflow-wrap:break-word;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.content{max-width:var(--contentw);margin:0 auto}
section{padding:var(--secpad) 0}

/* ── C-03 섹션 헤더: 영문 1행 → 국문 2행 → 본문 ───────────── */
.eyebrow{
  font-family:var(--font-display);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--teal);
  margin:0 0 20px;
}
.headline{
  font-family:var(--font-body);
  font-weight:400;
  font-size:clamp(26px,3.4vw,40px);
  line-height:1.45;
  letter-spacing:-.01em;
  margin:0 0 24px;
}
.lede{color:var(--ink-soft);margin:0;max-width:62ch}

/* ── 숫자 ─────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);margin:0;padding:0;list-style:none}
.stats li{border-top:1px solid var(--line);padding-top:20px}
.stats .n{font-family:var(--font-display);font-size:clamp(30px,4vw,46px);line-height:1.1;display:block}
.stats .en{font-family:var(--font-display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:10px}
.stats .ko{font-size:14px;color:var(--ink-soft);display:block;margin-top:6px}
@media (max-width:768px){ .stats{grid-template-columns:repeat(2,1fr);gap:28px var(--gutter)} }

/* ── 2분할 ────────────────────────────────────────────── */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px}
@media (max-width:900px){ .split{grid-template-columns:1fr;gap:48px} }
.split .t{font-family:var(--font-display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin:0 0 14px}
.split h3{font-size:22px;font-weight:400;margin:0 0 18px}
.split ol{margin:0;padding:0;list-style:none;counter-reset:i}
.split ol li{counter-increment:i;border-top:1px solid var(--line);padding:16px 0 16px 34px;position:relative}
.split ol li::before{content:"0" counter(i);position:absolute;left:0;top:16px;font-family:var(--font-display);font-size:12px;color:var(--bronze)}

/* ── 카드 그리드 ───────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter)}
.cards.two{grid-template-columns:repeat(2,1fr)}
.cards.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:1024px){ .cards,.cards.four{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .cards,.cards.two,.cards.four{grid-template-columns:1fr} }
.card{background:#fff;border:1px solid var(--line)}
.card figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:#e8e4da}
.card figure img{width:100%;height:100%;object-fit:cover}
.card .body{padding:24px}
.card h3{font-size:19px;font-weight:400;margin:0 0 10px}
.card p{margin:0;color:var(--ink-soft);font-size:15px}
.card .meta{margin:14px 0 0;font-size:13px;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:12px}

/* ── C-05 사양 표 ─────────────────────────────────────── */
.spec{width:100%;border-collapse:collapse;font-size:15px}
.spec th,.spec td{text-align:left;padding:16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.spec th{width:34%;font-weight:400;color:var(--ink-soft)}
@media (max-width:640px){
  .spec,.spec tbody,.spec tr,.spec th,.spec td{display:block;width:100%}
  .spec th{border:0;padding-bottom:0}
  .spec td{padding-top:6px}
}

/* ── 버튼 ─────────────────────────────────────────────── */
.btn{
  display:inline-block;padding:15px 30px;border:1px solid var(--charcoal);
  font-size:14px;letter-spacing:.02em;background:transparent;color:var(--charcoal);
  cursor:pointer;transition:background .2s,color .2s;
}
.btn:hover{background:var(--charcoal);color:var(--ivory)}
.btn.fill{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.fill:hover{background:var(--charcoal);border-color:var(--charcoal)}
.btnrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* ── C-01 글로벌 내비게이션 (공식 사이트 전용) ─────────────── */
.gnb{position:sticky;top:0;z-index:70;background:rgba(244,241,234,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.gnb .inner{display:flex;align-items:center;gap:32px;height:72px;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.gnb .mark{font-family:var(--font-display);font-size:15px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.gnb nav{display:flex;gap:26px;margin-left:auto}
.gnb nav a{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-family:var(--font-display);padding:6px 0;border-bottom:1px solid transparent}
.gnb nav a:hover,.gnb nav a[aria-current]{border-bottom-color:var(--teal)}
.gnb nav a[data-locked]{color:var(--ink-soft);cursor:not-allowed}
.gnb .side{display:flex;align-items:center;gap:16px}
.gnb .lang{font-size:12px;letter-spacing:.08em;color:var(--ink-soft)}
.gnb .visit{padding:10px 20px;border:1px solid var(--charcoal);font-size:13px}
.gnb .burger{display:none;margin-left:auto;background:none;border:0;font-size:22px;cursor:pointer;line-height:1}
@media (max-width:1024px){
  .gnb nav,.gnb .side{display:none}
  .gnb .burger{display:block}
}

/* C-02 모바일 메뉴 */
.mobmenu{position:fixed;inset:0;z-index:90;background:var(--ivory);padding:28px var(--gutter);overflow:auto}
.mobmenu .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}
.mobmenu .close{background:none;border:0;font-size:26px;cursor:pointer}
.mobmenu a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;font-size:14px}
.mobmenu .sub a{text-transform:none;font-family:var(--font-body);letter-spacing:0;padding-left:16px;color:var(--ink-soft);font-size:14px}
body.lock{overflow:hidden}

/* ── C-06 방문예약 폼 ─────────────────────────────────── */
.form{display:grid;gap:18px;max-width:560px}
.form label{font-size:13px;color:var(--ink-soft);display:block;margin-bottom:8px}
.form input,.form select,.form textarea{
  width:100%;padding:14px;border:1px solid var(--line);background:#fff;
  font-family:inherit;font-size:15px;color:var(--ink);border-radius:0;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--teal);outline-offset:1px}
.form .tel3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.form .check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-soft)}
.form .check input{width:auto;margin-top:5px}
.form .msg{font-size:14px;min-height:22px;margin:0}
.form a.terms{text-decoration:underline}

/* ── C-07 푸터 ────────────────────────────────────────── */
.foot{background:var(--charcoal);color:rgba(244,241,234,.72);padding:72px 0 56px;font-size:14px}
.foot a{color:rgba(244,241,234,.72)}
.foot a:hover{color:#fff}
.foot .mark{font-family:var(--font-display);font-size:16px;letter-spacing:.2em;color:var(--ivory);text-transform:uppercase;margin-bottom:28px}
.foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:44px}
@media (max-width:768px){ .foot .cols{grid-template-columns:1fr;gap:28px} }
.foot h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(244,241,234,.5);margin:0 0 14px;font-weight:400;font-family:var(--font-display)}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{padding:5px 0}
.foot .notice{border-top:1px solid rgba(244,241,234,.16);padding-top:26px;font-size:12.5px;line-height:1.85;color:rgba(244,241,234,.5)}
.foot .notice p{margin:0 0 4px}

/* ── C-08 하단 고정 바 ───────────────────────────────── */
.fixbar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(0,0,0,.1)}
.fixbar a{padding:17px 0;text-align:center;font-size:15px;letter-spacing:.02em}
.fixbar .tel{background:var(--ivory);color:var(--charcoal)}
.fixbar .rsv{background:var(--teal);color:#fff}
body.hasfixbar{padding-bottom:58px}
/* 공식 사이트는 모바일만 노출 */
.official .fixbar{display:none}
@media (max-width:768px){ .official .fixbar{display:grid} }

/* ── 확정 대기 표시 (내부 검토용) ─────────────────────── */
.tbd{
  display:inline-block;padding:2px 8px;margin-left:6px;
  font-size:11px;letter-spacing:.04em;
  border:1px dashed var(--bronze);color:var(--bronze);
  vertical-align:middle;
}
.notebox{
  border-left:2px solid var(--bronze);background:rgba(155,123,80,.07);
  padding:18px 22px;margin:32px 0;font-size:14px;color:var(--ink-soft);
}
.notebox strong{color:var(--bronze);font-weight:400}

/* ── 화면 키비주얼 (설계서 각 화면 SECTION STACK 상단) ─────── */
.kv{position:relative;height:clamp(280px,46vh,460px);overflow:hidden;background:var(--charcoal)}
.kv img{width:100%;height:100%;object-fit:cover;opacity:.72}
.kv::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(38,37,32,.42) 0%,rgba(38,37,32,.10) 45%,rgba(38,37,32,.55) 100%)}
.kvtxt{position:absolute;z-index:2;left:0;right:0;bottom:30px;
  max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);
  font-family:var(--font-display);font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(244,241,234,.86)}
.kv + section{padding-top:var(--secpad)}

/* 법적 각주 — 해외 제휴 상호이용 고지 (제미나이 교열 0918) */
.legalnote{margin:28px 0 0;padding:16px 20px;border-left:2px solid var(--bronze);
  font-size:13px;line-height:1.8;color:var(--ink-soft)}

/* 2026-09-21 — Oreve-inspired photographic official site. */
:root{
  --bg:#fff;
  --ink:#202725;
  --ink-soft:#69716d;
  --charcoal:#14211f;
  --font-display:'Montserrat',sans-serif;
  --font-body:'Pretendard',-apple-system,'Apple SD Gothic Neo',sans-serif;
  --gutter:64px}

button,a,input,select,textarea{
  -webkit-tap-highlight-color:transparent}

a:focus-visible,button:focus-visible{
  outline:2px solid #a38052;
  outline-offset:6px}

.skip-link{
  position:fixed;
  left:20px;
  top:12px;
  transform:translateY(-150%);
  background:#fff;
  color:#14211f;
  padding:12px;
  z-index:200}
.skip-link:focus{
  transform:none}

.gnb{
  position:absolute;
  inset:0 0 auto;
  z-index:70;
  background:none;
  border:0;
  color:#fff;
  backdrop-filter:none}

.gnb .inner{
  height:132px;
  max-width:none;
  padding:0 64px;
  gap:32px}
.gnb .mark{
  font-family:var(--font-display);
  font-size:22px;
  font-weight:500;
  letter-spacing:.23em;
  line-height:1.1}
.gnb .mark span{
  display:block;
  font-size:9px;
  letter-spacing:.58em;
  margin-top:9px}

.gnb .side{
  margin-left:auto;
  display:flex;
  gap:32px}
.gnb .member{
  font-family:var(--font-display);
  font-size:11px;
  letter-spacing:.12em}
.gnb .visit{
  font-size:12px;
  border-color:rgba(255,255,255,.45);
  padding:9px 21px}

.gnb .burger{
  display:flex;
  width:44px;
  height:44px;
  margin:0;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  color:inherit;
  padding:9px}
.burger span{
  display:block;
  height:1px;
  width:26px;
  background:currentColor}
.burger span:last-child{
  width:18px;
  align-self:flex-end}

.estate-hero{
  padding:0;
  height:100vh;
  height:100svh;
  min-height:620px;
  position:relative;
  background:#334841;
  color:#fff;
  overflow:hidden}
.estate-hero picture,.estate-hero picture img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover}
.estate-hero picture img{
  object-position:center 58%}
.estate-hero:after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(9,20,17,.3),rgba(9,20,17,.12) 45%,rgba(9,20,17,.3))}

.hero-copy{
  position:absolute;
  z-index:1;
  left:24px;
  right:24px;
  top:44%;
  transform:translateY(-20%);
  text-align:center;
  text-shadow:0 2px 22px #0005}
.hero-copy p{
  font-family:var(--font-display);
  font-size:clamp(24px,3.5vw,50.4px);
  font-weight:300;
  line-height:1.4;
  margin:0 0 5px;
  letter-spacing:-.035em}
.hero-copy h1{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(40px,3.5vw,56px);
  line-height:1.4;
  letter-spacing:.04em;
  margin:0 0 26px}
.hero-copy>span{
  font-size:18px;
  font-weight:300;
  letter-spacing:.015em}

.scroll-cue{
  position:absolute;
  z-index:2;
  bottom:34px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  flex-direction:column;
  gap:18px}
.scroll-cue span{
  white-space:nowrap;
  font-family:var(--font-display);
  font-size:9px;
  letter-spacing:.18em}
.scroll-cue i{
  display:block;
  height:46px;
  width:1px;
  background:#fff8}

.estate-intro{
  padding:150px 24px 160px;
  text-align:center}
.estate-intro .eyebrow{
  font-size:12px;
  letter-spacing:.2em;
  margin-bottom:32px}
.estate-intro h2,.feature-copy h2,.estate-membership h2,.estate-contact h2{
  font-size:clamp(30px,3vw,44px);
  font-weight:300;
  line-height:1.5;
  letter-spacing:-.025em;
  margin:0 0 28px}
.estate-intro p,.feature-copy>p:not(.eyebrow),.estate-membership p{
  font-weight:300;
  color:var(--ink-soft);
  font-size:16px;
  line-height:1.9;
  margin:0 0 35px}

.text-link{
  display:inline-flex;
  gap:32px;
  align-items:center;
  justify-content:space-between;
  font-size:13px;
  min-height:44px;
  border-bottom:1px solid #9ba39d;
  padding-bottom:7px}
.text-link span{
  font-size:19px;
  font-weight:300}
.text-link:hover{
  border-color:var(--teal);
  color:var(--teal)}

.estate-feature{
  display:grid;
  grid-template-columns:58% 42%;
  padding:0 0 140px;
  align-items:center;
  max-width:1800px;
  margin:auto}
.feature-image{
  height:660px;
  overflow:hidden}
.feature-image img{
  width:100%;
  height:100%;
  object-fit:cover}
.feature-copy{
  padding:40px clamp(40px,7vw,116px)}
.section-number{
  display:block;
  font:300 13px var(--font-display);
  color:#8c968e;
  margin-bottom:42px}
.feature-copy .eyebrow{
  font-size:12px;
  letter-spacing:.14em;
  margin:0 0 25px}
.estate-feature.reverse{
  grid-template-columns:42% 58%}
.reverse .feature-image{
  grid-column:2;
  grid-row:1}
.reverse .feature-copy{
  grid-column:1;
  grid-row:1}

.estate-panorama{
  position:relative;
  padding:0;
  height:650px;
  color:white}
.estate-panorama>img{
  width:100%;
  height:100%;
  object-fit:cover}
.estate-panorama:after{
  content:'';
  position:absolute;
  inset:0;
  background:#10241c45}
.estate-panorama>div{
  position:absolute;
  z-index:1;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center}
.estate-panorama .eyebrow{
  color:white;
  font-size:12px}
.estate-panorama h2{
  font-size:42px;
  font-weight:300;
  margin:5px 0 35px}
.estate-panorama .text-link{
  border-color:#fff8}
.estate-panorama .text-link:hover{
  color:white;
  border-color:white}

.estate-membership{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  max-width:1280px;
  margin:auto;
  padding:145px 64px}
.estate-membership>div:last-child{
  padding-top:24px}
.estate-membership .text-link{
  display:flex;
  max-width:330px;
  margin-bottom:14px}
.estate-contact{
  text-align:center;
  background:#f3f5f1;
  padding:120px 24px}
.estate-contact .btn{
  margin-top:8px;
  font-size:13px;
  font-weight:400;
  padding:17px 36px;
  background:#183b33;
  border-color:#183b33}

.mobmenu{
  padding:0;
  display:grid;
  grid-template-columns:45% 55%;
  background:#11201d;
  color:#fff;
  overflow:hidden}
.menu-image{
  position:relative;
  height:100vh;
  height:100svh}
.menu-image img{
  height:100%;
  width:100%;
  object-fit:cover;
  filter:brightness(.74)}
.menu-image p{
  position:absolute;
  left:10%;
  bottom:9%;
  font:400 30px var(--font-display);
  letter-spacing:.1em}
.menu-image p span{
  display:block;
  font-size:12px;
  letter-spacing:.4em;
  margin-top:16px}
.menu-panel{
  height:100vh;
  height:100svh;
  padding:45px 60px 38px;
  overflow:auto;
  overscroll-behavior:contain}
.mobmenu .top{
  margin-bottom:40px;
  gap:20px}
.mobmenu .top .mark{
  font:400 12px var(--font-display);
  letter-spacing:.18em;
  border:0}
.mobmenu .close{
  color:#fff;
  font:200 40px sans-serif;
  width:44px;
  height:44px;
  line-height:1}
.mobmenu nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:25px 40px}
.menu-group h2{
  font:400 20px var(--font-display);
  letter-spacing:.02em;
  margin:0 0 12px}
.mobmenu .sub a{
  font-size:13px;
  letter-spacing:0;
  text-transform:none;
  color:#aab7b1;
  padding:6px 0;
  border:0;
  font-family:var(--font-body)}
.mobmenu .sub a:hover{
  color:white}
.mobmenu .menu-bottom{
  border-top:1px solid #ffffff26;
  margin-top:38px;
  padding-top:18px;
  display:flex;
  gap:30px}
.menu-bottom a{
  font:400 12px var(--font-body);
  letter-spacing:0;
  border:0;
  padding:8px 0}
.mobmenu a:focus-visible,.mobmenu button:focus-visible{
  outline-color:white}

.detail-page .kv{
  height:64vh;
  min-height:400px;
  max-height:720px}
.detail-page:not(:has(.kv)) main{
  padding-top:132px}
.detail-page:not(:has(.kv)) .gnb{
  color:var(--ink)}
.detail-page .kvtxt{
  bottom:40px}
.detail-page .kv img{
  opacity:.85}
.detail-page .headline{
  font-weight:300}
.detail-page .card{
  box-shadow:none;
  border:0;
  border-top:1px solid var(--line);
  background:none}
.detail-page .card .body{
  padding:28px 0}
.detail-page .tbd{
  border:0;
  color:var(--ink-soft);
  padding:0;
  margin-left:0;
  font-size:13px;
  letter-spacing:0}

.foot{
  padding:80px 0 52px;
  background:#11201d}
.foot .mark{
  font-size:22px}
.foot .cols{
  grid-template-columns:repeat(4,1fr);
  gap:35px}
.foot .notice{
  font-size:11px}
.official .fixbar{
  display:none}
.form-notice{
  font-size:13px;
  color:var(--ink-soft);
  line-height:1.7}
.form-notice a{
  text-decoration:underline}
.form button:disabled{
  opacity:.6;
  cursor:not-allowed}

@media(max-width:1100px){
  :root{
  --gutter:40px}
.gnb .inner{
  padding:0 40px;
  height:110px}
.feature-image{
  height:530px}
.feature-copy{
  padding:30px 40px}
.menu-panel{
  padding:32px}
.mobmenu nav{
  gap:25px}
.menu-group h2{
  font-size:17px}
.estate-membership{
  gap:60px;
  padding:100px 40px}
.foot .cols{
  grid-template-columns:repeat(2,1fr)}
.estate-panorama{
  height:550px}
}

@media(max-width:700px){
  :root{
  --gutter:22px}
.gnb .inner{
  height:92px;
  padding:0 22px;
  gap:16px}
.gnb .mark{
  font-size:18px}
.gnb .mark span{
  font-size:7px}
.gnb .side{
  display:flex;
  margin-left:auto}
.gnb .member{
  display:none}
.gnb .visit{
  font-size:11px;
  padding:7px 10px}
.estate-hero{
  min-height:580px;
  max-height:none}
.hero-copy{
  top:42%;
  left:18px;
  right:18px}
.hero-copy p{
  font-size:25px;
  line-height:1.55;
  max-width:320px;
  margin:0 auto 9px}
.hero-copy h1{
  font-size:34px;
  letter-spacing:.005em;
  margin-bottom:23px}
.hero-copy>span{
  font-size:14px}
.estate-hero picture img{
  object-position:50% 50%}
.scroll-cue{
  bottom:34px}
.scroll-cue i{
  height:30px}
.estate-intro{
  padding:88px 24px 90px}
.estate-intro h2,.feature-copy h2,.estate-membership h2,.estate-contact h2{
  font-size:30px}
.estate-intro p,.feature-copy>p:not(.eyebrow),.estate-membership p{
  font-size:14px}
.estate-feature,.estate-feature.reverse{
  display:flex;
  flex-direction:column;
  padding-bottom:60px;
  align-items:stretch}
.feature-image{
  height:420px;
  margin-right:24px}
.reverse .feature-image{
  margin:0 0 0 24px}
.feature-copy{
  padding:36px 28px 12px}
.section-number{
  margin-bottom:22px}
.feature-copy .eyebrow{
  margin-bottom:18px}
.feature-copy h2{
  margin-bottom:20px}
.feature-copy>p:not(.eyebrow){
  margin-bottom:22px}
.estate-panorama{
  height:470px}
.estate-panorama h2{
  font-size:29px}
.estate-panorama img{
  object-position:55% center}
.estate-membership{
  display:block;
  padding:80px 26px}
.estate-membership>div:last-child{
  padding-top:0}
.estate-contact{
  padding:80px 24px}
.mobmenu{
  display:block}
.menu-image{
  display:none}
.menu-panel{
  padding:24px;
  height:100svh}
.mobmenu .top{
  margin-bottom:26px}
.mobmenu nav{
  grid-template-columns:1fr 1fr;
  gap:26px 18px}
.menu-group h2{
  font-size:16px}
.mobmenu .sub a{
  font-size:12px;
  padding:7px 0;
  line-height:1.6}
.mobmenu .menu-bottom{
  gap:18px;
  flex-wrap:wrap}
.detail-page .kv{
  height:57vh;
  min-height:330px}
.detail-page:not(:has(.kv)) main{
  padding-top:92px}
.foot{
  padding:56px 0 80px}
.foot .cols{
  gap:25px 20px}
.foot h4{
  font-size:11px}
.foot li{
  font-size:12px}
.foot .mark{
  font-size:18px}
.official .fixbar{
  display:grid;
  grid-template-columns:1fr 1fr;
  padding-bottom:env(safe-area-inset-bottom);
  background:var(--teal)}
.fixbar a{
  font-size:12px;
  padding:14px 4px}
.fixbar .member{
  background:#f5f4ed;
  color:var(--ink)}
body.official{
  padding-bottom:47px}
.estate-hero{
  height:calc(100svh - 47px)}
}

@media(prefers-reduced-motion:reduce){
  html{
  scroll-behavior:auto}
*,*:before,*:after{
  transition:none!important;
  animation:none!important}
}


/* Mobile reference measured at 390px: full-height single-column menu. */
@media(max-width:700px){
 .mobmenu nav{grid-template-columns:1fr;gap:36px}
 .menu-panel{padding:24px 36px}
 .mobmenu .top{position:sticky;top:-24px;background:#11201d;padding:12px 0 20px;z-index:1}
 .menu-group h2{font-size:17px;margin-bottom:14px}
 .mobmenu .sub a{font-size:14px;padding:8px 0}
 .hero-copy p{font-size:24px;line-height:1.4}
 .hero-copy>span{font-size:15px;line-height:1.2}
}
@media(min-width:561px) and (max-width:1100px){
 .mobmenu{display:block}
 .menu-image{display:none}
 .menu-panel{padding:36px 48px}
 .mobmenu nav{grid-template-columns:1fr 1fr;gap:34px 60px}
 .mobmenu .top{position:static}
}

.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.hero-video.is-playing{opacity:1}
.hero-motion{position:absolute;z-index:3;right:40px;bottom:36px;width:38px;height:38px;border:1px solid #ffffff80;border-radius:50%;background:#14211f50;color:white;cursor:pointer;font-size:15px}
@media(max-width:700px){.hero-motion{right:22px;bottom:34px}.hero-video{object-position:50% center}}
@media(prefers-reduced-motion:reduce){.hero-video,.hero-motion{display:none!important}}
