/*
Theme Name: Estee Design
Description: Custom theme for Estee Design. Ink and cream, Instrument Serif and Jost, hairline gold details, signature logo.
Version: 2.5
Author: Estee Design
Text Domain: estee
*/

:root{
  --edge: clamp(22px, 3vw, 44px);
  --ink:#211e1a; --cream:#f5f1e8; --cream-dim:#efe9dd;
  --hair:rgba(201,161,95,.5); --hair-soft:rgba(201,161,95,.28);
  --tx:#46413a; --tx-dim:#8d8577; --gold:#a9834a; --gold-lt:#c9a15f;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Jost',sans-serif;font-weight:300;color:var(--tx);
  background:var(--cream);font-size:16.5px;line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.serif{font-family:'Cormorant Garamond',serif;font-weight:500;color:var(--ink)}
em{font-style:italic}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
.label,.kicker{
  font-size:11px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--gold);font-weight:400;
}
.small{font-size:12.5px;letter-spacing:.4px;color:var(--tx-dim)}

/* reveals */
.rv{opacity:0;transform:translateY(28px);animation:rv 1.1s cubic-bezier(.19,1,.22,1) both}
.rv.d1{animation-delay:.15s}.rv.d2{animation-delay:.3s}.rv.d3{animation-delay:.5s}.rv.d4{animation-delay:.7s}
@keyframes rv{to{opacity:1;transform:none}}
.mask{overflow:hidden}
.mask>span{display:block;transform:translateY(110%);animation:mask 1.3s cubic-bezier(.19,1,.22,1) both}
.mask.d1>span{animation-delay:.2s}.mask.d2>span{animation-delay:.35s}
@keyframes mask{to{transform:none}}

/* ---------- NAV ---------- */
.site-nav{
  position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;
  justify-content:space-between;padding:22px var(--edge);
}
.estee-light-nav .site-nav{background:linear-gradient(to bottom, rgba(245,241,232,.94), rgba(245,241,232,0))}
.estee-dark-nav .site-nav{color:#ece5d6;text-shadow:0 1px 12px rgba(10,8,6,.6)}
.wordmark{
  font-family:'Cormorant Garamond',serif;font-weight:600;font-size:19px;
  letter-spacing:.4em;text-transform:uppercase;white-space:nowrap;color:inherit;
  display:inline-flex;align-items:center;gap:.34em;
}
/* ED monogram: sized to the wordmark cap height, inherits the text colour */
.wm-mark{height:.62em;width:auto;flex:none;overflow:visible;display:block}
.wm-mark path{fill:none;stroke:currentColor;stroke-width:6.5;stroke-linecap:round;stroke-linejoin:round}
.wm-text{text-indent:.16em}
.estee-light-nav .wordmark{color:var(--ink)}
.wordmark-footer{font-size:15px;color:var(--ink)}
.navlinks{display:flex;gap:34px;align-items:center}
.navlinks a{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:inherit;opacity:.82;transition:opacity .3s}
.estee-light-nav .navlinks a{color:var(--tx)}
.navlinks a:hover{opacity:1}
.navlinks a.cta{opacity:1;border-bottom:1px solid var(--hair);padding-bottom:4px}
.estee-dark-nav .navlinks a.cta{color:#ece5d6}
.estee-contact .navlinks a{color:var(--tx);text-shadow:none}
.estee-contact .navlinks a.cta{color:var(--tx)}
.estee-contact .nav-toggle{color:var(--ink)}
body.menu-open.estee-contact .nav-toggle{color:var(--cream)}

/* hamburger + mobile overlay */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:10px;z-index:60}
.nav-toggle span{display:block;width:24px;height:1.5px;background:currentColor;margin:6px 0;transition:transform .3s, opacity .3s}
.estee-light-nav .nav-toggle{color:var(--ink)}
.estee-dark-nav .nav-toggle{color:var(--cream)}
body.menu-open .nav-toggle{color:var(--cream)}
body.menu-open .nav-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
body.menu-open .nav-toggle span:nth-child(2){opacity:0}
body.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.mobile-menu{
  position:fixed;inset:0;z-index:50;background:var(--ink);
  display:flex;flex-direction:column;justify-content:center;gap:8px;padding:40px;
  opacity:0;pointer-events:none;transition:opacity .35s ease;
}
body.menu-open .mobile-menu{opacity:1;pointer-events:auto}
.mobile-menu a{
  font-family:'Cormorant Garamond',serif;font-size:34px;color:var(--cream);
  padding:12px 0;border-bottom:1px solid rgba(201,161,95,.16);
}
.mobile-menu a.cta{color:var(--gold-lt)}

/* ---------- HOME HERO ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:#ece5d6}
.hero-img{position:absolute;inset:0;overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:50% 82%;animation:slow 16s cubic-bezier(.23,.6,.35,1) both}
@keyframes slow{from{transform:scale(1.09)}to{transform:none}}
.hero-img:after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 95% at 100% 100%, rgba(23,20,17,.5), transparent 55%),
    linear-gradient(to right, rgba(23,20,17,.66) 0%, rgba(23,20,17,.34) 42%, rgba(23,20,17,.06) 72%),
    linear-gradient(to top, rgba(23,20,17,.74) 0%, rgba(23,20,17,.10) 42%),
    linear-gradient(to bottom, rgba(23,20,17,.42) 0%, rgba(23,20,17,0) 18%),
    rgba(23,20,17,.08);
}
.hero h1,.hero .sub,.hero-side{text-shadow:0 1px 26px rgba(10,8,6,.45)}
.hero-inner{position:relative;z-index:2;width:100%;padding:0 var(--edge) 48px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}
.hero h1{
  font-size:clamp(58px,8vw,122px);line-height:.96;letter-spacing:-.5px;
  color:#ece5d6;font-weight:400;max-width:10ch;
}
/* Indent the sub so its left edge sits under the headline caps: large serif
   capitals carry left side-bearing, so the sub is nudged in by the same
   amount, scaled to the headline's own clamp so they stay aligned at any width. */
.hero .sub{margin-top:26px;max-width:52ch;color:rgba(236,229,214,.85);font-size:17px;text-align:left;hyphens:none;-webkit-hyphens:none;margin-left:calc(clamp(58px, 8vw, 122px) * 0.066)}
.hero-side{text-align:right;padding-bottom:12px}
.hero-side .small{color:rgba(236,229,214,.86);display:block;margin-bottom:16px;letter-spacing:1.5px;text-transform:uppercase;font-size:11px}
.begin-lg{
  font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#ece5d6;
  border-bottom:1px solid var(--hair);padding-bottom:6px;transition:opacity .3s;
}
.begin-lg:hover{opacity:.7}

/* ---------- WORK ---------- */
.work{max-width:1280px;margin:0 auto;padding:72px 48px 16px}
.work .head{margin-bottom:32px}
.work h2{font-size:clamp(34px,3.6vw,54px);letter-spacing:-.5px;margin-top:14px}
.work-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:26px}
.work-main{overflow:hidden}
.work-main img{width:100%;height:640px;object-fit:cover;transition:transform 1.2s ease}
.work-main:hover img{transform:scale(1.03)}
.work-side{display:flex;flex-direction:column;gap:26px}
.work-side .shot{overflow:hidden;position:relative;display:block}
.work-side .shot .tag{position:absolute;left:0;bottom:0;background:rgba(33,30,26,.92);color:var(--cream);padding:10px 18px;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;border-top:1px solid var(--gold-lt);font-family:Jost,sans-serif}
.work-side img{width:100%;height:307px;object-fit:cover;transition:transform 1.2s ease}
.work-side .shot:hover img{transform:scale(1.04)}
.work-cap{display:grid;grid-template-columns:220px 1fr;gap:30px;align-items:start;margin-top:30px;max-width:900px}
.work-cap p{font-size:16.5px}
.work-cap .serif{font-size:24px;margin-bottom:6px}
.all-work{display:inline-block;margin-top:24px;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--hair);padding-bottom:5px}

/* ---------- HOME SERVICES TEASER ---------- */
.services-teaser{max-width:1280px;margin:0 auto;padding:64px 48px 24px;display:grid;grid-template-columns:1fr 1fr;gap:64px}
.svc-t{border-top:1px solid var(--hair);padding-top:28px;text-align:center}
.svc-t h3{font-size:30px;margin-bottom:4px}
.svc-t .fee{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:17px;margin-bottom:14px}
.svc-t p{max-width:46ch;margin:0 auto 18px}
.svc-t a{display:inline-block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--hair);padding-bottom:5px}

/* ---------- PROCESS ---------- */
.process{background:var(--ink);color:var(--cream);margin-top:64px;padding:68px 48px}
.pr-inner{max-width:1184px;margin:0 auto}
.process h2{color:var(--cream);font-size:clamp(32px,3.4vw,50px);letter-spacing:-.5px;margin:16px 0 8px}
.process .sub{color:rgba(245,241,232,.6);max-width:56ch;margin-bottom:36px;text-align:left}
.process .label{color:var(--gold-lt)}
.pr-list{border-top:1px solid rgba(201,161,95,.32)}
.pr-row{
  display:grid;grid-template-columns:56px 240px 1fr;gap:30px;align-items:baseline;
  padding:22px 6px;border-bottom:1px solid rgba(201,161,95,.16);
}
.pr-row .n{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;color:var(--gold-lt)}
.pr-row .t{font-family:'Cormorant Garamond',serif;font-size:23px;color:var(--cream)}
.pr-row p{font-size:15px;color:rgba(245,241,232,.62)}
.pr-note{margin-top:36px;margin-left:356px;font-size:13px;color:rgba(245,241,232,.5);line-height:1.8}

/* ---------- DESIGNER ---------- */
.designer{max-width:1280px;margin:0 auto;padding:72px 48px 56px;display:grid;grid-template-columns:414px 1fr;gap:90px;align-items:stretch}
/* Text column tops out at the photo top and its facts strip pins to the
   photo's bottom edge (same treatment as .about-story; the padding offsets
   the caption line under the portrait). */
.designer > div:last-child{display:flex;flex-direction:column;padding-bottom:24px}
.designer > div:last-child .facts{margin-top:auto}
.designer .pic img{width:100%;filter:saturate(.9)}
.designer .pic .small{display:block;margin-top:12px;letter-spacing:1.5px;text-transform:uppercase;font-size:10.5px}
.designer h2{font-size:clamp(32px,3.4vw,48px);letter-spacing:-.5px;line-height:1.1;margin:18px 0 22px}
/* Second sentence sized to hold a single line inside the text column: fixed
   size once the 1280px container caps, fluid below it, natural wrap on the
   stacked mobile layout. */
.designer h2.bal{text-wrap:balance}
.designer h2.bal em{display:block;font-size:min(27px, calc((100vw - 600px) / 25));line-height:1.35;margin-top:6px}
@media (max-width: 980px){
  .designer h2.bal em{font-size:.6em;line-height:1.3}
}
.designer p{max-width:none}
.designer .facts{display:flex;gap:44px;margin-top:32px;padding-top:24px;border-top:1px solid var(--hair-soft)}
.designer .facts>div{flex:1}
.designer .facts .serif{display:block;font-size:19px;line-height:1.25;min-height:48px}
.designer .facts .small{display:block;margin-top:4px;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}
@media (max-width: 640px){
  .designer .facts{flex-direction:column;gap:22px}
  .designer .facts .serif{min-height:0}
}

/* ---------- QUOTE / CLOSE / FOOTER ---------- */
.quiet-quote{max-width:1080px;margin:0 auto;padding:12px 48px 64px;text-align:center}
/* Services review sits in its own band between the FAQ and the close; center it there (scoped, does not touch the shared home/portfolio quote). */
.faq + .quiet-quote{padding-top:72px;padding-bottom:72px}
.quiet-quote blockquote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(23px,2.5vw,32px);line-height:1.4;color:var(--ink)}
.quiet-quote .small{margin-top:20px;display:block;letter-spacing:1.5px;text-transform:uppercase;font-size:10.5px}
.close{border-top:1px solid var(--hair-soft);padding:64px 48px;text-align:center}
.close h2{font-size:clamp(34px,4vw,56px);letter-spacing:-.6px}
.close p{margin:16px 0 32px;color:var(--tx-dim)}
.btn-ink{
  display:inline-block;background:var(--ink);color:var(--cream);border:none;cursor:pointer;
  font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:19px 44px;
  transition:opacity .3s;font-family:'Jost',sans-serif;
}
.btn-ink:hover{opacity:.85;color:var(--cream)}
.site-footer{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px var(--edge);border-top:1px solid var(--hair-soft);background:var(--cream);
}

.site-footer .small{font-size:11px;letter-spacing:1px;text-transform:uppercase}

/* ---------- SERVICES PAGE ---------- */
.svc-hero{max-width:1280px;margin:0 auto;padding:128px 48px 20px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end}
.svc-hero h1{font-size:clamp(50px,6vw,88px);letter-spacing:-.5px;line-height:.98;margin:14px 0 0}
.svc-hero .lede{font-size:17px;padding-bottom:6px}
.svc-hero .lede strong{font-weight:400;color:var(--ink)}
.svcs{max-width:1280px;margin:0 auto;padding:36px 48px 24px;display:grid;grid-template-columns:1fr 1fr;gap:88px;position:relative}
.svcs:after{content:"";position:absolute;top:36px;bottom:24px;left:50%;width:1px;background:var(--hair-soft)}
.svc{border-top:1px solid var(--hair);padding-top:28px;display:flex;flex-direction:column}
.svc h2{font-size:33px;margin:8px 0 4px}
.svc .fee{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:18px;margin-bottom:16px}
.svc p.desc{margin-bottom:20px;min-height:120px}
.svc ul{list-style:none;margin-bottom:26px;flex:1 0 auto}
.svc li{padding:10px 0;border-bottom:1px solid var(--hair-soft);font-size:15.5px}
.svc .go{display:inline-block;margin-top:auto;align-self:flex-start;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--hair);padding-bottom:5px}
.svc .side{font-size:12px;color:var(--tx-dim);margin-top:18px;padding-top:12px;border-top:1px solid var(--hair-soft);line-height:1.7;min-height:56px}
.faq{max-width:1280px;margin:0 auto;padding:64px 48px 24px}
.faq h2{font-size:clamp(32px,3.4vw,46px);margin:12px 0 28px}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 70px;border-top:1px solid var(--hair-soft)}
.faq-item{padding:24px 0;border-bottom:1px solid var(--hair-soft)}
.faq-item h3{font-size:20px;font-weight:400;margin-bottom:6px}
.faq-item p{font-size:15px;color:var(--tx-dim)}
.close.tight{margin-top:48px}

/* ---------- CONTACT PAGE ---------- */
.split{display:grid;grid-template-columns:46% 54%;min-height:100vh;min-height:100svh}
.contact-panel{background:var(--ink);color:var(--cream);padding:128px 64px 44px max(48px, calc((100vw - 1280px) / 2 + 48px));display:flex;flex-direction:column}
.contact-panel h1{font-size:clamp(38px,3.8vw,58px);line-height:1.04;color:var(--cream);letter-spacing:-.6px;margin:20px 0 20px}
.contact-panel h1 em{color:#dfc690}
.contact-panel .lede{color:rgba(245,241,232,.66);max-width:44ch}
.contact-panel .label{color:var(--gold-lt)}
.direct{margin-top:40px;padding-top:28px;border-top:1px solid rgba(201,161,95,.32)}
.direct a{display:block;font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--cream);margin-bottom:6px;transition:opacity .3s}
.direct a:hover{opacity:.75}
.direct .small{color:rgba(245,241,232,.5);letter-spacing:1.5px;text-transform:uppercase;font-size:10.5px}
.next{margin-top:auto;padding-top:40px}
.next .label{display:block;margin-bottom:16px}
.next ol{list-style:none}
.next li{display:flex;gap:18px;padding:11px 0;border-top:1px solid rgba(201,161,95,.16);font-size:14.5px;color:rgba(245,241,232,.72)}
.next li span{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold-lt);font-size:15px;min-width:22px}
.next .free{margin-top:16px;font-size:12px;color:rgba(245,241,232,.45)}
.formside{padding:150px 84px 48px;display:flex;flex-direction:column;background:var(--cream)}
.steps-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:34px}
.formside h2{font-size:28px}
.step-ind{font-size:11px;letter-spacing:1.5px;color:var(--gold)}
.trust{margin-top:auto;padding-top:36px;border-top:1px solid var(--hair-soft)}
.trust blockquote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:20px;color:var(--ink);line-height:1.45;max-width:54ch}
.trust .small{margin-top:10px;display:block;letter-spacing:1.5px;text-transform:uppercase;font-size:10.5px}

/* CF7 two-step form */
.estee-form .fstep{display:grid;grid-template-columns:1fr 1fr;gap:30px 36px;margin-bottom:10px}
.estee-form.js .fstep[data-step="2"]{display:none}
.estee-form.js.step2 .fstep[data-step="1"]{display:none}
.estee-form.js.step2 .fstep[data-step="2"]{display:grid}
.estee-form .field{display:flex;flex-direction:column}
.estee-form .field.wide{grid-column:1/-1}
.estee-form label{font-size:10.5px;letter-spacing:1.8px;text-transform:uppercase;color:var(--tx-dim);margin-bottom:8px;font-weight:400}
.estee-form label b{color:var(--gold);font-weight:400}
.estee-form input:not([type=submit]),.estee-form select,.estee-form textarea{
  font-family:'Jost',sans-serif;font-weight:300;font-size:17px;color:var(--ink);
  background:transparent;border:none;border-bottom:1px solid rgba(70,65,58,.25);
  padding:8px 2px;outline:none;transition:border-color .3s;border-radius:0;width:100%;
}
.estee-form input:focus,.estee-form select:focus,.estee-form textarea:focus{border-bottom-color:var(--gold)}
.estee-form textarea{min-height:120px;resize:vertical;border:1px solid rgba(70,65,58,.25);padding:10px 12px}
.estee-form textarea:focus{border-color:var(--gold)}
.estee-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23a9834a' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}
.estee-form .frow{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:26px;margin-top:8px}
.estee-form input[type=submit]{
  background:var(--ink);color:var(--cream);border:none;cursor:pointer;
  font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:18px 42px;
  transition:opacity .3s;font-family:'Jost',sans-serif;
}
.estee-form input[type=submit]:hover{opacity:.85}
.estee-form .frow .small{max-width:30ch;line-height:1.7}
.estee-form .back{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--tx-dim);background:none;border:none;cursor:pointer;border-bottom:1px solid var(--hair-soft);padding-bottom:3px;font-family:'Jost',sans-serif}
.estee-form .wpcf7-not-valid-tip{font-size:12px;color:#b0563c;margin-top:6px}
.estee-form .wpcf7-response-output{border:1px solid var(--hair) !important;padding:14px 18px !important;margin:14px 0 0 !important;font-size:14px}
.estee-form .wpcf7-spinner{position:absolute}
.form-sent{padding:60px 0;text-align:center;display:none}
.form-sent .serif{font-size:30px;margin-bottom:12px}
.form-sent.show{display:block}

/* ---------- PORTFOLIO / INNER / BLOG (restyled, class names preserved) ---------- */
.folio{max-width:1280px;margin:0 auto;padding:128px 48px 56px}
.folio-head{margin-bottom:34px}
.folio-head h1{font-size:clamp(40px,4.4vw,62px);letter-spacing:-.5px;margin-top:16px}
.folio-head h1 em{color:var(--gold)}
.folio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.tile{position:relative;overflow:hidden;display:block;background:var(--cream-dim)}
.tile img{width:100%;height:340px;object-fit:cover;transition:transform .8s ease}
.tile:hover img{transform:scale(1.045)}
.tile .tag{
  position:absolute;left:0;bottom:0;background:rgba(33,30,26,.92);color:var(--cream);
  padding:12px 20px;font-size:11px;letter-spacing:2px;text-transform:uppercase;
  border-top:1px solid var(--gold-lt);
}
.single-hero{padding:128px 48px 8px;max-width:1280px;margin:0 auto}
.single-hero h1{font-size:clamp(36px,4vw,56px);margin-top:14px;line-height:1.12;min-height:1.12em}
.inner{max-width:1280px;margin:0 auto;padding:128px 48px 56px}
.inner-title h1{font-size:clamp(38px,4vw,58px);letter-spacing:-.5px;margin:16px 0 40px}
.inner-content{font-size:16.5px}
.inner-content p{margin-bottom:1.2em;max-width:70ch}
.inner-content h2,.inner-content h3{margin:1.4em 0 .5em}
.inner-content a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.inner-content img{margin:1.5em 0}
.inner-content ul{list-style:none;padding-left:0}
.inner-content ul li{padding-left:22px;position:relative}
.inner-content ul li:before{content:"";position:absolute;left:2px;top:.9em;width:8px;height:1px;background:var(--gold-lt)}

/* ---------- ABOUT ---------- */
.about-hero{max-width:1280px;margin:0 auto;padding:112px 48px 8px}
.about-hero h1{margin-top:12px}
.about-story{max-width:1280px;margin:0 auto;padding:24px 48px 32px;display:grid;grid-template-columns:480px 1fr;gap:64px;align-items:start}
.about-story .pic img{width:100%;filter:saturate(.9)}
.about-story .pic .small{display:block;margin-top:12px;letter-spacing:1.5px;text-transform:uppercase;font-size:10.5px}
/* Sized so the four bio paragraphs plus the facts strip stay inside the
   portrait's height: the row stretches to the photo and margin-top:auto pins
   the facts to its bottom edge (round 5 behaviour, re-broken by longer copy). */
.about-story .txt p{margin-bottom:1.05em;font-size:15.5px;line-height:1.72;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.story-facts{display:flex;gap:40px;margin-top:28px;padding-top:24px;border-top:1px solid var(--hair-soft)}
.story-facts .serif{font-size:18px;display:block}
.story-facts .small{display:block;margin-top:4px;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}
.about-awards{max-width:1280px;margin:0 auto;padding:48px 48px 12px}
.about-awards h2,.about-quotes h2{font-size:clamp(32px,3.4vw,46px);margin:12px 0 26px}
.about-awards h2 em,.about-quotes h2 em{color:var(--gold)}
.aw-list{border-top:1px solid var(--hair-soft)}
.aw-row{display:grid;grid-template-columns:110px minmax(260px,400px) 1fr;gap:30px;align-items:baseline;padding:24px 4px;border-bottom:1px solid var(--hair-soft)}
.aw-row .yr{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:18px}
.aw-row .t{font-family:'Cormorant Garamond',serif;font-size:21px;color:var(--ink)}
.aw-row p{font-size:14.5px;color:var(--tx-dim)}
.about-quotes{max-width:1280px;margin:0 auto;padding:48px 48px 24px}
.tq-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 70px}
.tq blockquote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18.5px;line-height:1.55;color:var(--ink)}
.tq blockquote:before{content:"\201C";color:var(--gold-lt);margin-right:2px}
.tq .small{display:block;margin-top:12px;letter-spacing:1.5px;text-transform:uppercase;font-size:10.5px}

/* ---------- PRESS ---------- */
.press-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.press-item{display:block;position:relative;overflow:hidden;background:var(--cream-dim)}
/* Round 7: never crop press logos and covers; contain inside a square tile */
.press-item img{width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;padding:14px;transition:opacity .4s ease}
a.press-item:hover img{opacity:.8}
.press-item .ptag{
  display:block;padding:12px 14px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--tx-dim);line-height:1.6;border-top:1px solid var(--hair-soft);
}

/* ---------- PORTFOLIO TABS ---------- */
.folio-tabs{display:flex;gap:0;align-items:stretch;justify-content:center;margin:30px auto 40px;max-width:560px;border:1px solid var(--hair)}
.folio-tabs a{
  flex:1;text-align:center;font-size:14px;letter-spacing:.24em;text-transform:uppercase;color:var(--tx-dim);
  padding:16px 10px;transition:color .3s,background .3s;
}
.folio-tabs a:hover{color:var(--ink)}
.folio-tabs a.on{background:var(--ink);color:var(--cream)}

/* ---------- PROJECT SINGLE ---------- */
/* Note sits BELOW the gallery and nav so every project opens with the
   photos and controls in exactly the same position (round 7). */
.proj-note{max-width:1280px;margin:0 auto;padding:34px 48px 0}
.proj-note p{font-size:15px;color:var(--tx-dim)}
.proj-note p.cols{columns:2;column-gap:56px}
.proj-credit{max-width:1280px;margin:0 auto;padding:18px 48px 0;letter-spacing:1.2px;text-transform:uppercase;font-size:10.5px;color:var(--tx-dim)}
.proj-wrap{max-width:1280px;margin:0 auto;padding:24px 48px 0}
.proj-empty{min-height:600px}
.proj-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
.proj-track::-webkit-scrollbar{display:none}
.proj-track a.proj-zoom{flex:none;scroll-snap-align:start;cursor:zoom-in}
.proj-track img{height:600px;width:auto;flex:none;scroll-snap-align:start;object-fit:cover;display:block}
.proj-arrows{display:flex;justify-content:space-between;align-items:center;max-width:1280px;margin:8px auto 0;padding:0 48px}
.proj-arrow{background:none;border:none;cursor:pointer;font-family:'Cormorant Garamond',serif;font-size:28px;line-height:1;color:var(--gold);padding:2px 12px;transition:opacity .3s}
.proj-arrow:hover{opacity:.6}
.proj-nav{display:flex;justify-content:center;gap:38px;padding:22px 48px 4px}
.proj-nav a{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--hair);padding-bottom:4px}
.proj-nav a:hover{color:var(--ink)}

/* ---------- JOURNAL ---------- */
.journal-list{border-top:1px solid var(--hair-soft);margin-top:10px}
.j-row{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:baseline;padding:22px 4px;border-bottom:1px solid var(--hair-soft);transition:background .3s}
.j-row:hover{background:var(--cream-dim)}
.j-row .t{font-family:'Cormorant Garamond',serif;font-size:23px;color:var(--ink)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:980px){
  .navlinks{display:none}
  .nav-toggle{display:block}
  .hero-inner{grid-template-columns:1fr;padding:0 22px 44px}
  .hero-side{text-align:left}
  .work,.designer,.quiet-quote,.close,.faq{padding-left:22px;padding-right:22px}
  .services-teaser{grid-template-columns:1fr;gap:44px;padding:70px 22px 20px}
  .process{padding:80px 22px}
  .work-grid{grid-template-columns:1fr}
  .work-main img{height:64vw}
  .work-side img{height:52vw}
  .work-cap{grid-template-columns:1fr}
  .pr-row{grid-template-columns:36px 1fr;gap:14px}
  .pr-row p{grid-column:2}
  .designer{grid-template-columns:1fr;gap:60px}
  .designer > div:last-child{padding-bottom:0}
  .designer > div:last-child .facts{margin-top:32px}
  .svc-hero{padding:110px 22px 16px;grid-template-columns:1fr;gap:20px;align-items:start}
  .svcs{grid-template-columns:1fr;gap:44px;padding:30px 22px}
  .faq-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .contact-panel{padding:110px 22px 36px}
  .formside{padding:48px 22px}
  .estee-form .fstep{grid-template-columns:1fr}
  .folio{padding:110px 22px 44px}
  .folio-grid{grid-template-columns:1fr 1fr}
  .about-hero{padding:110px 22px 16px}
  .about-story{grid-template-columns:1fr;gap:44px;padding:20px 22px}
  .about-awards,.about-quotes{padding-left:22px;padding-right:22px}
  .aw-row{grid-template-columns:1fr;gap:6px}
  .aw-row .yr{min-height:0}
  .tq-grid{grid-template-columns:1fr;gap:36px}
  .press-grid{grid-template-columns:1fr 1fr}
  .proj-wrap{padding:16px 22px 0}
  .proj-track img{height:320px}
  .proj-empty{min-height:320px}
  .single-hero h1{min-height:2.24em}
  .pr-note{margin-left:0}
  .about-hero h1.about-name{font-size:clamp(18px,5vw,24px);letter-spacing:.24em}
  .proj-arrows{padding:0 22px}
  .proj-note{padding:26px 22px 0}
  .j-row{grid-template-columns:1fr;gap:2px}
  .inner,.single-hero{padding-left:22px;padding-right:22px;padding-top:110px}
}
@media(max-width:640px){
  .folio-grid{grid-template-columns:1fr}
}

/* ---- Bio links page (/links) ---- */
.biolinks{background:var(--cream);color:var(--ink)}
.bl{max-width:440px;margin:0 auto;padding:52px 26px 64px;display:flex;flex-direction:column;align-items:center;text-align:center}
.bl-mark{font-size:15px}
.bl-portrait{width:136px;height:auto;margin:38px 0 22px}
.bl-name{font-family:'Cormorant Garamond',serif;font-weight:500;text-transform:uppercase;font-size:20px;letter-spacing:.26em;line-height:1.3;margin:0 0 8px;color:var(--ink)}
.bl-line{font-family:Jost,sans-serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--tx-dim);margin:0 0 36px}
.bl-links{display:flex;flex-direction:column;gap:12px;width:100%}
.bl-btn{display:block;padding:15px 18px;border:1px solid var(--hair);color:var(--ink);text-decoration:none;font-family:Jost,sans-serif;font-weight:400;font-size:12px;letter-spacing:.24em;text-transform:uppercase;transition:background .25s,color .25s}
.bl-btn:hover{background:var(--ink);color:var(--cream)}
.bl-btn .sub{display:block;margin-top:5px;font-size:11.5px;letter-spacing:.02em;text-transform:none;color:var(--tx-dim);transition:color .25s}
.bl-btn:hover .sub{color:rgba(245,241,232,.7)}
.bl-primary{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.bl-primary:hover{background:var(--gold);border-color:var(--gold);color:var(--cream)}
.bl-contact{margin:34px 0 0;font-family:Jost,sans-serif;font-size:14.5px;color:var(--tx)}
.bl-contact a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair)}
.bl-social{display:flex;gap:26px;margin:18px 0 38px;font-family:Jost,sans-serif;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.bl-social a{color:var(--tx-dim);text-decoration:none}
.bl-social a:hover{color:var(--gold)}
.bl-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}
.bl-strip img{width:100%;height:108px;object-fit:cover;display:block}
.bl-more{margin:12px 0 0;font-family:Jost,sans-serif;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.bl-more a{color:var(--tx-dim);text-decoration:none}
.bl-more a:hover{color:var(--gold)}
.bl-foot{margin:46px 0 0;font-family:Jost,sans-serif;font-size:12.5px}
.bl-foot a{color:var(--tx-dim);text-decoration:none;border-bottom:1px solid var(--hair-soft)}

/* Footer privacy link */
.site-footer .small a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hair-soft)}

/* ---- Intro call page (/intro-call) ---- */
.call-hero{max-width:1280px;margin:0 auto;padding:128px 48px 12px}
.call-hero h1{font-size:clamp(44px,5vw,74px);letter-spacing:-.5px;line-height:1;margin:14px 0 18px}
.call-hero .lede{max-width:56ch;font-size:17px;color:var(--tx)}
.call-grid{max-width:1280px;margin:0 auto;padding:36px 48px 72px;display:grid;grid-template-columns:1fr 1.2fr;gap:72px;align-items:start}
.call-info{border-top:1px solid var(--hair);padding-top:26px}
.call-info .label{display:block;margin-bottom:14px}
.call-info ol{list-style:none}
.call-info li{display:flex;gap:18px;padding:13px 0;border-bottom:1px solid var(--hair-soft);font-size:15.5px;color:var(--tx)}
.call-info li span{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:16px;min-width:22px}
.call-note{margin-top:22px;font-size:13.5px;color:var(--tx-dim);max-width:44ch;line-height:1.7}
.call-note a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair)}
.call-alt{margin-top:14px;font-size:13.5px}
.call-alt a{color:var(--tx-dim);text-decoration:none;border-bottom:1px solid var(--hair-soft)}
.call-alt a:hover{color:var(--gold)}
.call-formside{border-top:1px solid var(--hair);padding-top:26px}
.call-formside .steps-head h2{font-size:28px;margin-bottom:22px}

/* ---- Paired close CTAs ---- */
.close-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.close-cta .btn-ink,.close-cta .btn-line{min-width:300px;text-align:center;box-sizing:border-box;padding-left:24px;padding-right:24px}
.btn-line{
  display:inline-block;background:none;color:var(--ink);border:1px solid var(--ink);cursor:pointer;
  font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:18px 44px;
  transition:background .3s,color .3s;font-family:'Jost',sans-serif;
}
.btn-line:hover{background:var(--ink);color:var(--cream)}
.contact-panel .talk-first a{color:var(--cream);text-decoration:none;border-bottom:1px solid var(--hair)}
.contact-panel .talk-first a:hover{opacity:.75}
.pr-row p a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hair)}
@media(max-width:900px){
  .call-hero{padding:110px 22px 8px}
  .call-grid{grid-template-columns:1fr;gap:44px;padding:24px 22px 56px}
}
.direct .small a{display:inline;font-family:'Jost',sans-serif;font-size:inherit;color:inherit;border-bottom:1px solid var(--hair);margin:0}


/* ---- Round 4: about editorial sizing ---- */
.about-hero h1.about-name{font-family:'Cormorant Garamond',serif;font-weight:500;text-transform:uppercase;font-size:30px;letter-spacing:.3em;line-height:1.3;color:var(--ink)}
.about-name .g{color:var(--gold)}
.about-story .txt p:first-child{margin-top:-0.4em}

/* ---- Round 4: lightbox ---- */
.lb{position:fixed;inset:0;background:rgba(23,20,16,.96);z-index:200;display:none;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb-img{max-width:90vw;max-height:86vh;object-fit:contain;display:block}
.lb-close{position:absolute;top:18px;right:22px;background:none;border:none;color:var(--cream);font-size:38px;line-height:1;cursor:pointer;font-family:Jost,sans-serif;padding:8px 12px}
.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:1px solid rgba(245,241,232,.35);color:var(--cream);font-size:20px;width:52px;height:52px;cursor:pointer;transition:border-color .3s,background .3s}
.lb-arrow:hover{border-color:var(--gold-lt);background:rgba(245,241,232,.06)}
.lb-prev{left:18px}
.lb-next{right:18px}
.lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(245,241,232,.6);font-family:Jost,sans-serif;font-size:12px;letter-spacing:.2em}
@media(max-width:700px){
  .lb-arrow{width:44px;height:44px}
  .lb-prev{left:8px}
  .lb-next{right:8px}
  .lb-img{max-width:96vw}
}
.call-quote{margin:34px 0 0;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;line-height:1.55;color:var(--tx)}
.call-quote .small{display:block;margin-top:10px;font-family:Jost,sans-serif;font-style:normal;font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--tx-dim)}
.bl-group{margin:34px 0 2px;font-family:Jost,sans-serif;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--tx-dim)}
.bl-group + .bl-links{margin-top:12px}


/* ---- Round 5: scrolled nav (must stay last for specificity ties) ---- */
.site-nav{transition:background .35s,color .35s,box-shadow .35s}
.site-nav.scrolled{background:rgba(245,241,232,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);text-shadow:none;box-shadow:0 1px 0 var(--hair-soft)}
.site-nav.scrolled .navlinks a{color:var(--tx);text-shadow:none}
.site-nav.scrolled .navlinks a.cta{color:var(--ink)}
.site-nav.scrolled .nav-toggle{color:var(--ink)}

/* ---- Round 5: portfolio grid quote variant ---- */
.quiet-quote.grid-quote{max-width:1280px;margin:0 auto;padding:36px 48px 56px;text-align:center}
.quiet-quote.grid-quote blockquote{font-size:20px;max-width:64ch;margin:0 auto}
.quiet-quote.grid-quote .small{margin-top:12px}

/* ---- Round 5: about facts strip aligns with portrait bottom ---- */
.about-story{align-items:stretch}
.about-story .txt{display:flex;flex-direction:column;padding-bottom:34px}
.about-story .story-facts{margin-top:auto}

@media(max-width:980px){
  .svcs:after{display:none}
  .about-story .txt{padding-bottom:0}
}
@media(max-width:900px){
  .quiet-quote.grid-quote{padding:28px 22px 44px}
  .proj-note p.cols{columns:1}
}


/* ---- Justified body text sitewide (centered blocks deliberately excluded) ---- */
.work-cap > div > p:not(.serif),
.designer > div > p,
.pr-row p,
.pr-note,
.svc-hero .lede,
.svc p.desc,
.svc .side,
.faq-item p,
.about-story .txt p,
.aw-row p,
.contact-panel .lede,
.call-hero .lede,
.call-note,
.proj-note p,
.inner p{
  text-align:justify;hyphens:auto;-webkit-hyphens:auto;
}


/* ---- Mobile-only fixes: stacked footer ---- */
@media(max-width:700px){
  .site-footer{flex-direction:column;align-items:flex-start;gap:12px;padding-top:28px;padding-bottom:28px}
  .site-footer .small{line-height:2.1}
  .press-item img{padding:10px}
  .estee-form .frow{flex-direction:column;align-items:stretch;gap:18px}
  .estee-form input[type=submit]{width:100%}
  .estee-form .btn-ink.js-next{width:100%}
  .estee-form .back{align-self:center}
  .estee-form .frow .small{max-width:none;text-align:center}
}

.site-footer .fgroup{white-space:nowrap}

.tq blockquote{text-align:justify;hyphens:auto;-webkit-hyphens:auto}

/* Round 6: hero badge legibility over the bright glass table */
.hero-side .small,.hero-side .begin-lg{text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 22px rgba(0,0,0,.6)}

/* Round 6: CF7 wraps submit+back in one <p>; make that <p> the flex row */
.estee-form .frow > p{margin:0;width:100%;display:flex;align-items:center;justify-content:space-between;gap:26px}
@media(max-width:700px){
  .estee-form .frow > p{flex-direction:column;align-items:stretch;gap:16px}
}

/* ---- Round 7: current-section nav state ---- */
.navlinks a.on{color:var(--ink);opacity:1;border-bottom:1px solid var(--gold);padding-bottom:4px}
.estee-dark-nav .site-nav:not(.scrolled) .navlinks a.on{color:inherit}
.site-nav.scrolled .navlinks a.on{color:var(--ink)}
.mobile-menu a.on{font-style:italic;color:var(--cream)}
.mobile-menu a.on:before{content:"";display:inline-block;width:22px;height:1px;background:var(--gold-lt);vertical-align:middle;margin-right:14px}

/* ---- Round 7: browsable reviews (collapsed to six until expanded) ---- */
.tq-grid.tq-collapsed .tq:nth-child(n+7){display:none}
.tq-more{
  display:none;margin:38px auto 0;background:none;border:none;cursor:pointer;
  font-family:'Jost',sans-serif;font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink);border-bottom:1px solid var(--hair);padding:0 2px 5px;transition:color .3s;
}
.tq-more:hover{color:var(--gold)}
.tq-more.show{display:block}
