:root{
  --bone:#F7F3EC; --ink:#1C1A17; --ember:#D35217; --clay:#C08A6B; --clay-lt:#D9A886;
  --slate:#2B3A47; --mist:#E2D9CC; --mute:#6B635A; --paper:#FFFCF7; --sand:#EFE9DF;
  --display:'Fraunces',Georgia,serif;
  --body:'Karla','Helvetica Neue',Arial,sans-serif;
  --gut:clamp(18px,5vw,72px);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--body);
     font-size:17px;line-height:1.72;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding-inline:var(--gut)}
p{margin:0 0 20px}

/* every display heading, everywhere */
h1,h2,h3,.disp{font-family:var(--display);font-weight:300;letter-spacing:-.012em}
h2{font-size:clamp(26px,3.4vw,42px);line-height:1.18;margin:0;max-width:20ch}
h3{font-weight:400;font-size:clamp(19px,2.1vw,24px);line-height:1.3;margin:0 0 12px}
.eyebrow{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.22em;
         text-transform:uppercase;color:var(--ember);margin:0 0 18px;letter-spacing:.22em}

/* header */
.util{background:var(--slate);color:#CFC7BC;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:500}
.util .wrap{display:flex;gap:18px 30px;justify-content:space-between;align-items:center;min-height:40px;flex-wrap:wrap;padding-block:6px}
.util-nav{display:flex;gap:22px 26px;flex-wrap:wrap}
.util a{text-decoration:none;white-space:nowrap}
.util a:hover,.util a[aria-current]{color:#fff}
.util-tel{white-space:nowrap;font-weight:600;letter-spacing:.1em}
@media(max-width:640px){.util .wrap{justify-content:center;gap:10px 18px}.util-nav{justify-content:center}}
.masthead{position:sticky;top:0;z-index:60;background:rgba(247,243,236,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--mist)}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px}
.brand{display:block;flex:none;text-decoration:none;line-height:0}
.brand img{height:44px;width:auto}
@media(max-width:520px){.brand img{height:34px}}

.btn{display:inline-block;font-family:var(--body);font-size:11.5px;font-weight:600;letter-spacing:.16em;
     text-transform:uppercase;text-decoration:none;padding:16px 30px;border:1px solid var(--ink);border-radius:999px}
.btn.solid{background:var(--ember);border-color:var(--ember);color:#fff}
.btn.solid:hover{background:#B8430F;border-color:#B8430F}
.btn.ghost:hover{background:var(--ink);color:var(--bone)}
.btn.light{border-color:rgba(255,255,255,.5);color:#fff}
.btn.light:hover{background:#fff;color:var(--slate)}
.btn.sm{padding:12px 22px;font-size:10.5px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.book{color:#fff!important;padding:14px 24px;flex:none}
@media(max-width:560px){.book{padding:12px 16px;font-size:10.5px}}

.klink{color:inherit;text-decoration:none;border-bottom:1px solid var(--clay);padding-bottom:1px;
       transition:color .18s,border-color .18s,background .18s}
.klink:hover{color:var(--ember);border-bottom-color:var(--ember);background:rgba(211,82,23,.06)}
.on-dark .klink{border-bottom-color:rgba(217,168,134,.65)}
.on-dark .klink:hover{color:#fff;border-bottom-color:#fff;background:rgba(255,255,255,.07)}

/* hero */
.hero{background:var(--bone);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
           gap:clamp(26px,4vw,64px);align-items:center;
           padding-block:clamp(34px,5vw,66px) clamp(34px,5vw,66px)}
.hero-txt{max-width:44ch}
.hero h1{font-size:clamp(30px,4.2vw,52px);line-height:1.08;margin:0;max-width:17ch}
.hero-sub{margin:20px 0 0;color:#453F38;font-size:clamp(16px,1.7vw,18.5px);max-width:46ch}
.hero-cta{margin-top:clamp(24px,3vw,32px)}
.hero-meta{margin:clamp(26px,3.4vw,34px) 0 0;padding-top:20px;border-top:1px solid var(--mist);
           display:flex;flex-wrap:wrap;gap:8px 0}
.hero-meta span{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--mute);
                padding-right:16px;margin-right:16px;border-right:1px solid var(--mist)}
.hero-meta span:last-child{border-right:0;margin-right:0;padding-right:0}
.hero-fig{position:relative;margin:0;
          margin-right:calc(-1 * var(--gut));border-radius:4px 0 0 4px;overflow:hidden}
.hero-fig img{width:100%;height:clamp(280px,46vw,520px);object-fit:cover;object-position:70% 52%;
              transform:scale(1.06);transition:transform 1.5s cubic-bezier(.2,.7,.2,1),opacity 1.1s ease}
.hero-fig.in img{transform:scale(1)}
.hero-fig figcaption{position:absolute;left:0;bottom:0;right:0;padding:22px 24px 18px;
                     font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#EDE7DE;
                     background:linear-gradient(to top,rgba(16,24,31,.72),rgba(16,24,31,0))}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:26px;padding-block:26px 0}
  .hero h1{max-width:none}
  .hero-fig{margin-inline:calc(-1 * var(--gut));border-radius:0}
  .hero-fig img{height:clamp(240px,58vw,380px)}
}

/* sections */
section.s{padding:clamp(50px,7vw,88px) 0;border-top:1px solid var(--mist)}
.sec-head{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(18px,3.5vw,56px);
          align-items:start;margin:0 0 clamp(30px,3.6vw,44px);
          padding-bottom:clamp(20px,2.4vw,30px);border-bottom:1px solid var(--mist)}
.sec-intro{margin:0;padding-top:37px;font-size:17.5px;line-height:1.68;color:#453F38;max-width:52ch}
@media(max-width:860px){.sec-head{grid-template-columns:1fr;gap:16px;padding-bottom:22px}
  h2{max-width:none}.sec-intro{padding-top:0}}
.grid2{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.6fr);gap:clamp(24px,5vw,72px)}
@media(max-width:940px){.grid2{grid-template-columns:1fr;gap:20px}}
.lede{font-size:19px;line-height:1.62}
.pull{margin:32px 0;padding:24px 0 24px 26px;border-left:2px solid var(--ember);
      font-family:var(--display);font-weight:300;font-size:clamp(20px,2.5vw,28px);line-height:1.34}
.dark{background:var(--slate);color:#EDE7DE;border:0}
.dark h2,.dark h3{color:#fff}
.dark .eyebrow{color:var(--clay-lt)}
.dark .sec-head{border-bottom-color:rgba(255,255,255,.16)}
.dark .sec-intro{color:#BFB7AC}

/* ---- AT A GLANCE ---- */
.glance{background:var(--sand);padding:clamp(46px,6vw,78px) 0}
.gl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0;
         border-top:1px solid rgba(28,26,23,.13);border-bottom:1px solid rgba(28,26,23,.13)}
.gl{padding:clamp(24px,3vw,34px) clamp(16px,2.4vw,32px);border-left:1px solid rgba(28,26,23,.13)}
.gl:first-child{border-left:0;padding-left:0}
@media(max-width:820px){.gl-grid{grid-template-columns:1fr 1fr}
  .gl:nth-child(odd){border-left:0;padding-left:0}
  .gl:nth-child(n+3){border-top:1px solid rgba(28,26,23,.13)}}
.gl-num{display:block;font-family:var(--display);font-weight:300;font-size:clamp(32px,4.4vw,52px);
        line-height:1;letter-spacing:-.02em;color:var(--slate);margin-bottom:16px}
.gl-lbl{display:block;font-size:14.5px;line-height:1.5;color:var(--mute);max-width:22ch}
.gl-note{margin:26px 0 0;max-width:60ch;color:#453F38}
.gl-foot{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,40px);margin-top:clamp(26px,3vw,38px);
         padding-top:clamp(20px,2.4vw,28px);border-top:1px solid rgba(28,26,23,.13)}
.gl-foot b{display:block;font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
           color:var(--ember);margin-bottom:8px}
.gl-foot span{font-size:15.5px;line-height:1.6;color:#453F38}
@media(max-width:620px){.gl-foot{grid-template-columns:1fr;gap:20px}}

/* ---- pillars ---- */
.pillars{display:grid;gap:0;margin-top:4px}
.pillar{display:grid;grid-template-columns:minmax(0,84px) minmax(0,1fr);gap:clamp(16px,3vw,40px);
        padding:clamp(26px,3.2vw,38px) 0;border-bottom:1px solid var(--mist);
        opacity:0;transform:translateY(16px);
        transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.pillar.in{opacity:1;transform:none}
.pillar:first-child{border-top:1px solid var(--mist)}
.pillar .n{font-family:var(--display);font-weight:300;font-size:clamp(28px,3.4vw,42px);line-height:1;color:var(--clay)}
.pillar p{margin:0 0 14px;color:#453F38;max-width:64ch;font-size:16.5px}
.pillar p:last-child{margin-bottom:0}
@media(max-width:620px){.pillar{grid-template-columns:1fr;gap:8px}}

/* ---- COMPARISON TABLE ---- */
.cmp{width:100%;border-collapse:collapse;margin-top:6px;font-size:15.5px;
     border:1px solid var(--mist);background:var(--paper)}
.cmp caption{caption-side:bottom;text-align:left;font-size:14px;color:var(--mute);
             padding-top:16px;max-width:70ch;line-height:1.6}
.cmp th,.cmp td{padding:16px clamp(12px,1.6vw,22px);text-align:left;vertical-align:middle;
                border-bottom:1px solid var(--mist)}
.cmp thead th{background:var(--sand);font-size:10.5px;font-weight:600;letter-spacing:.16em;
              text-transform:uppercase;color:var(--mute);white-space:nowrap}
.cmp thead th.us{font-family:var(--display);font-weight:400;font-size:18px;letter-spacing:0;
                 text-transform:none;color:var(--ink);background:#F6E4D8}
.cmp tbody tr:nth-child(even) td{background:rgba(226,217,204,.28)}
.cmp td.us{background:#FAEDE4;font-weight:600}
.cmp tbody tr:nth-child(even) td.us{background:#F6E4D8}
.cmp tbody tr:last-child td{border-bottom:0}
.cmp .what{font-weight:500;color:var(--ink);max-width:34ch}
.cmp .yes{color:var(--ink);font-size:16px}
.cmp .us .yes{color:var(--ember)}
.cmp .no{color:var(--mute)}
.cmp .no::before{content:"—";margin-right:.5em;color:var(--clay)}
.cmp-label{display:none}
.cmp-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:760px){
  .cmp-scroll{overflow:visible}
  .cmp{display:block;width:100%;min-width:0;border:0;background:transparent;margin-top:8px}
  .cmp caption,.cmp thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .cmp tbody{display:grid;gap:14px}
  .cmp tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid var(--mist);border-radius:8px;background:var(--paper)}
  .cmp th,.cmp td{border:0}
  .cmp td{display:flex;min-width:0;min-height:82px;padding:12px 7px;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;border-right:1px solid var(--mist);font-size:13px;line-height:1.35;background:var(--paper)!important}
  .cmp td.what{grid-column:1/-1;min-height:0;max-width:none;padding:15px 16px;align-items:flex-start;text-align:left;border-right:0;border-bottom:1px solid var(--mist);background:var(--sand)!important;font-size:14.5px;line-height:1.45}
  .cmp td:last-child{border-right:0}
  .cmp td.us{background:#FAEDE4!important;color:var(--ember);font-size:18px}
  .cmp .no::before{content:none}
  .cmp-label{display:block;min-height:22px;font-size:8.5px;font-weight:600;line-height:1.25;letter-spacing:.11em;text-transform:uppercase;color:var(--mute)}
  .cmp td.us .cmp-label{color:#9B4B29}
}

/* ---- FIT CARDS ---- */
.fit{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.fitcard{border:1px solid var(--mist);border-top:3px solid var(--ember);background:var(--paper);
         padding:30px 28px;display:flex;flex-direction:column}
.fitcard .kick{font-family:var(--display);font-style:italic;font-weight:400;font-size:16px;
               color:var(--ember);margin:0 0 16px;line-height:1.4}
.fitcard h3{margin:0 0 14px}
.fitcard p{font-size:15.5px;line-height:1.65;color:#453F38}
.fitcard .btn{margin-top:auto;align-self:flex-start}

/* ---- EXPECT list ---- */
.expect{list-style:none;padding:0;margin:0;border-top:1px solid var(--mist)}
.expect li{display:grid;grid-template-columns:26px 1fr;gap:16px;align-items:start;
           padding:17px 0;border-bottom:1px solid var(--mist);font-size:17.5px;line-height:1.55}
.expect li::before{content:"";width:9px;height:9px;margin-top:11px;border-radius:50%;
                   border:1.5px solid var(--ember)}

/* ---- FIVE WORDS ---- */
.words{border-top:1px solid rgba(255,255,255,.16);margin-top:4px}
.word{display:grid;grid-template-columns:minmax(0,44px) minmax(0,240px) minmax(0,1fr);
      gap:clamp(14px,2.6vw,34px);align-items:baseline;padding:clamp(18px,2.2vw,26px) 0;
      border-bottom:1px solid rgba(255,255,255,.16)}
.word .i{font-size:11px;letter-spacing:.16em;color:#8E9AA4}
.word .w{font-size:14px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#fff}
.word .d{font-size:16px;line-height:1.6;color:#BFB7AC}
@media(max-width:760px){.word{grid-template-columns:44px 1fr}.word .d{grid-column:2}}

/* ---- REVIEWS ---- */
.rev-top{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
         padding-bottom:22px;border-bottom:1px solid var(--mist);margin-bottom:28px}
.rating{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:16px}
.gmark{width:22px;height:22px;flex:none}
.stars{color:#E8A33D;letter-spacing:.12em;font-size:15px}
.rating b{font-weight:600}
.rating span{color:var(--mute)}

/* ---- carousel buttons (shared) ---- */
.tour-btn{width:44px;height:44px;border:1px solid var(--mist);border-radius:50%;background:transparent;
          cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.18s}
.tour-btn:hover{border-color:var(--ember);background:rgba(211,82,23,.06)}
.tour-btn:disabled{opacity:.3;cursor:default}
.tour-btn svg{width:14px;height:14px;fill:none;stroke:var(--ink);stroke-width:1.6}

.fin{padding:clamp(56px,8vw,100px) 0;text-align:center;border-top:1px solid var(--mist)}
.fin h2{margin:0 auto 20px;max-width:24ch}
.fin p{margin:0 auto 32px;max-width:54ch;color:#453F38}
.fin .btns{justify-content:center}
footer{background:var(--slate);color:#A9A197;padding:38px 0;font-size:13px}
footer .wrap{display:flex;flex-wrap:wrap;gap:10px 30px;justify-content:space-between}

@media (prefers-reduced-motion:reduce){
  [data-rv]{opacity:1;transform:none}
  .hero-fig img{transform:none}
    *{transition:none!important;animation:none!important}
  .pillar{opacity:1;transform:none}
  .tm-track,.track{scroll-behavior:auto}
}

/* ---- concierge four ---- */
.four{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;
      border-top:1px solid var(--mist)}
.four > div{padding:clamp(24px,3vw,32px) clamp(14px,2.2vw,30px);
            border-left:1px solid var(--mist);border-bottom:1px solid var(--mist)}
.four > div:first-child{border-left:0;padding-left:0}
@media(max-width:840px){.four{grid-template-columns:1fr 1fr}
  .four > div:nth-child(odd){border-left:0;padding-left:0}}
@media(max-width:520px){.four{grid-template-columns:1fr}
  .four > div{border-left:0;padding-left:0}}
.four h3{font-size:20px;line-height:1.3;margin:0 0 10px}
.four p{margin:0;font-size:15.5px;line-height:1.62;color:#453F38}
/* ---- short lines ---- */
.lines{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:0;max-width:52ch}
.lines li{padding:14px 0;border-bottom:1px solid var(--mist);font-size:17.5px}
.lines li:first-child{border-top:1px solid var(--mist)}
/* ---- stage / location ---- */
.stage-cta{margin-top:26px}
.loc{background:var(--sand);border-top:1px solid var(--mist)}
.loc .wrap{padding-block:clamp(46px,6vw,78px)}
.loc h2{max-width:24ch}
.loc p{max-width:60ch;color:#453F38;margin-top:20px}

/* ---- body copy column (kills the empty-left-cell void) ---- */
.body-col{max-width:68ch;margin-top:clamp(6px,1.4vw,14px)}
.body-col .lede{font-size:19px;line-height:1.62}

/* ---- comparison sub-head ---- */
.cmp-head{margin:clamp(38px,5vw,60px) 0 clamp(18px,2.4vw,26px);
          padding-top:clamp(26px,3.4vw,38px);border-top:1px solid var(--mist)}
.cmp-head h3{font-family:var(--display);font-weight:300;font-size:clamp(22px,2.8vw,32px);
             line-height:1.2;margin:0;max-width:24ch}
.cmp-head p{margin:12px 0 0;max-width:56ch;color:#453F38;font-size:16.5px}

/* ---- testimonials (light, card carousel) ---- */
.tm{background:var(--bone);border-top:1px solid var(--mist);padding:clamp(50px,7vw,88px) 0}
.tm-head{text-align:center;max-width:44ch;margin:0 auto clamp(30px,4vw,46px)}
.tm-head .eyebrow{margin-bottom:14px}
.tm-head h2{max-width:none;margin:0}
.tm-head p{margin:16px 0 0;color:var(--mute);font-size:16.5px}
.tm-track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
          padding:4px var(--gut) 6px;margin-inline:calc(-1 * var(--gut))}
.tm-track::-webkit-scrollbar{display:none}
.tm-card{flex-grow:0;flex-shrink:0;flex-basis:330px;width:330px;max-width:82vw;scroll-snap-align:start;display:flex;flex-direction:column;
         background:var(--paper);border:1px solid var(--mist);border-top:3px solid var(--ember);
         border-radius:6px;padding:30px 26px 26px;text-align:center;
         box-shadow:0 1px 2px rgba(90,70,50,.04)}
@media(max-width:900px){.tm-card{flex-basis:290px;width:290px}}
.tm-card .stars{color:var(--ember);letter-spacing:.16em;font-size:15px;margin-bottom:18px}
.tm-card blockquote{margin:0 0 22px;font-family:var(--display);font-weight:300;
                    font-size:18px;line-height:1.5;color:var(--ink)}
.tm-card .who{margin-top:auto;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.tm-card .gm{width:18px;height:18px;margin:12px auto 0}
.tm-ctl{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:clamp(24px,3vw,34px)}
.tm-dots{display:flex;gap:8px}
.tm-dot{height:8px;width:8px;padding:0;border:0;border-radius:999px;background:var(--mist);cursor:pointer;transition:.25s}
.tm-dot[aria-current]{background:var(--ember);width:26px}


/* ---- office tour carousel ---- */
.tour{background:var(--sand);border-top:1px solid var(--mist);padding:clamp(48px,6.5vw,84px) 0 clamp(38px,5vw,60px)}
.tour-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
          margin-bottom:clamp(22px,3vw,30px)}
.tour-top h2{max-width:18ch}
.tour-nav{display:flex;align-items:center;gap:14px}
.tour-count{font-family:var(--display);font-weight:300;font-size:19px;color:var(--mute);
            font-variant-numeric:tabular-nums;min-width:5.5em;text-align:right}
.track{display:flex;align-items:flex-start;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
       padding:2px var(--gut) 6px;margin-inline:calc(-1 * var(--gut))}
.track::-webkit-scrollbar{display:none}
.shot{flex-grow:0;flex-shrink:0;flex-basis:395px;width:395px;max-width:82vw;
      scroll-snap-align:start;margin:0}
.shot img{display:block;width:100%;height:222px;object-fit:cover;object-position:50% 47%;
          background:var(--mist);border-radius:3px}
.shot figcaption{display:flex;justify-content:space-between;gap:14px;margin-top:11px;
                 font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.shot figcaption em{font-style:normal;color:var(--clay)}

@media(max-width:900px){.shot{flex-basis:330px;width:330px}.shot img{height:186px}}
@media(max-width:600px){.shot{flex-basis:270px;width:270px}.shot img{height:152px}}
