/* ============================================================
   MASTERPIECE CABINETRY — Design System
   Newsreader is used as the web-safe Canela-style serif until
   licensed Canela webfont files are supplied.
   Palette: Rich Black / Antique Bronze / Charcoal / Warm Ivory
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Newsreader:opsz,wght@6..72,300;6..72,400;6..72,500;6..72,600&display=swap');

:root{
  --ink:        #0A0A0A;   /* Rich Black */
  --bronze:     #4B3620;   /* Antique Bronze */
  --bronze-lt:  #8a6a3f;   /* lightened bronze for hover/hairlines */
  --gold:       #b08d4f;   /* muted gold, derived from bronze — signature accent only */
  --charcoal:   #333333;
  --ivory:      #FCFAF7;   /* Warm Ivory */
  --ivory-dim:  #F3EEE5;   /* card/section tint */
  --line:       rgba(10,10,10,0.12);

  --serif: 'Newsreader', 'Iowan Old Style', 'Baskerville', Georgia, serif;
  --sans:  'Newsreader', 'Iowan Old Style', 'Baskerville', Georgia, serif;

  --max: 1240px;
}

/* A slightly cleaner editorial pairing on the homepage. */
body.home-page{
  --serif: 'Cormorant Garamond', 'Iowan Old Style', 'Baskerville', Georgia, serif;
  --sans: 'DM Sans', Arial, sans-serif;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  color:var(--charcoal);
  background:
    radial-gradient(circle at 12% 4%, rgba(75,54,32,0.045), transparent 28rem),
    var(--ivory);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

/* ---------- Signature element: the "joint line" ----------
   A thin double-rule echoing a mitred cabinet-door seam.
   Used as the section divider throughout the site. */
.joint{
  display:flex; align-items:center; gap:10px;
  margin:0 auto;
}
.joint::before,.joint::after{
  content:'';
  height:1px; flex:1;
  background:linear-gradient(90deg, transparent, var(--bronze) 50%, transparent);
  opacity:0.5;
}
.joint span{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--bronze);
  white-space:nowrap;
}

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(252,250,247,0.94);
  backdrop-filter:blur(8px);
  border-top:5px solid var(--ink);
  border-bottom:1px solid var(--line);
  transition:background .3s ease;
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 32px;
  max-width:var(--max); margin:0 auto;
}
.brand{display:flex; align-items:center; min-width:0;}
.brand-header-logo{display:block; width:220px; height:auto; max-width:52vw;}
.brand-mark{
  display:block; position:relative; width:50px; height:50px; flex:0 0 50px;
  overflow:hidden; border-radius:50%; background:var(--ivory);
  box-shadow:inset 0 0 0 1px rgba(75,54,32,0.12);
}
.brand-mark img{
  position:absolute; width:118px; max-width:none; height:auto;
  left:-35px; top:-5px;
}
.brand-text{font-family:var(--serif); font-size:20px; line-height:1; letter-spacing:0.08em; color:var(--ink); text-transform:uppercase;}
.brand-text small{display:block; font-family:var(--sans); font-size:11px; line-height:1.1; letter-spacing:0.34em; color:var(--bronze); font-weight:500; margin-top:5px; text-transform:lowercase;}

nav.links{display:flex; align-items:center; gap:28px;}
nav.links a{
  font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
  font-weight:500; color:var(--charcoal);
  position:relative; padding:4px 0;
}
nav.links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--bronze); transition:width .25s ease;
}
nav.links a:hover::after, nav.links a.active::after{width:100%;}
nav.links a.active{color:var(--bronze);}
nav.links a.btn,
nav.links a.btn.active{
  padding:12px 22px; color:var(--ivory);
}
nav.links a.btn::after{display:none;}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase; font-weight:600;
  padding:13px 26px;
  border:1px solid var(--ink);
  color:var(--ink);
  transition:all .25s ease;
  white-space:nowrap;
}
.btn:hover{background:var(--ink); color:var(--ivory);}
.btn.solid{background:var(--bronze); border-color:var(--bronze); color:var(--ivory);}
.btn.solid:hover{background:var(--ink); border-color:var(--ink);}
.btn.on-dark{border-color:var(--ivory); color:var(--ivory);}
.btn.on-dark:hover{background:var(--ivory); color:var(--ink);}

.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{width:24px; height:1.5px; background:var(--ink);}

@media (max-width:960px){
  nav.links{
    position:absolute;
    top:100%; left:0; right:0;
    height:calc(100vh - 84px);
    height:calc(100dvh - 84px);
    z-index:101;
    align-items:stretch;
    flex-direction:column;
    justify-content:flex-start;
    padding:28px 24px 32px;
    gap:0;
    overflow-y:auto;
    background:var(--ivory);
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  }
  nav.links.open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
    transition-delay:0s;
  }
  nav.links a{
    width:100%;
    padding:17px 2px;
    border-bottom:1px solid var(--line);
    font-size:20px;
    font-family:var(--serif);
    text-align:left;
  }
  nav.links a::after{display:none;}
  nav.links a.btn,
  nav.links a.btn.active{
    display:inline-flex;
    justify-content:center;
    width:100%;
    margin-top:24px;
    padding:15px 20px;
    border-bottom:0;
    color:var(--ivory);
  }
  .burger{display:flex; position:relative; z-index:102;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:flex-end;
  padding-top:120px;
  overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:saturate(0.92) contrast(1.03);
}
.hero-bg-featured{background-position:center 48%;}
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(10,10,10,0.56) 0%, rgba(10,10,10,0.24) 58%, rgba(10,10,10,0.08) 100%),
    linear-gradient(180deg, rgba(10,10,10,0.18) 0%, rgba(10,10,10,0.12) 38%, rgba(10,10,10,0.82) 100%);
}
.hero-inner{
  position:relative; z-index:2; color:var(--ivory);
  width:100%; padding-bottom:72px;
}
.eyebrow{
  font-size:12px; letter-spacing:0.32em; text-transform:uppercase;
  color:var(--ivory); font-weight:700; margin-bottom:18px; display:inline-flex;
  padding:8px 11px 8px 14px; border:1px solid rgba(252,250,247,0.4);
  border-radius:18px;
  background:rgba(10,10,10,0.48); backdrop-filter:blur(5px);
  text-shadow:0 1px 10px rgba(0,0,0,0.8);
}
.hero h1{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(2.4rem, 5.6vw, 5rem);
  line-height:1.03; max-width:15ch;
  letter-spacing:-0.01em;
}
.hero h1 em{
  font-style:italic; color:var(--ivory); font-weight:400;
  text-shadow:0 2px 18px rgba(0,0,0,0.85);
  text-decoration:underline; text-decoration-color:var(--gold);
  text-decoration-thickness:2px; text-underline-offset:0.12em;
}
.hero-sub{
  max-width:46ch; font-size:17px; margin:26px 0 34px; color:rgba(252,250,247,0.88);
}
.hero-cta{display:flex; gap:16px; flex-wrap:wrap;}

.hero-strip{
  position:relative; z-index:2;
  display:flex; border-top:1px solid rgba(252,250,247,0.25);
  margin-top:56px;
}
.hero-strip .stat{
  flex:1; padding:20px 0 0; color:var(--ivory);
  border-left:1px solid rgba(252,250,247,0.25);
}
.hero-strip .stat:first-child{border-left:none;}
.hero-strip .num{font-family:var(--serif); font-size:clamp(1.5rem,2.6vw,2.2rem); color:var(--gold);}
.hero-strip .lbl{font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(252,250,247,0.75); margin-top:4px;}

@media (max-width:720px){
  .hero-strip{flex-wrap:wrap;}
  .hero-strip .stat{flex:1 1 50%; border-left:none; border-top:1px solid rgba(252,250,247,0.2); padding-top:14px; margin-top:14px;}
}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{
  padding:168px 0 64px; background:var(--ivory);
  border-bottom:1px solid var(--line);
}
.page-hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(2.2rem,4.6vw,3.4rem); color:var(--ink);}
.page-hero .crumb{font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--bronze); margin-bottom:14px; display:block;}
.page-hero p{max-width:56ch; margin-top:16px; font-size:16px; color:var(--charcoal);}
.contact-hero{border-bottom:0; padding-bottom:42px;}
.contact-section{padding-top:22px; background:var(--ivory);}

/* ---------- Profile ---------- */
.profile-page-hero{
  padding-bottom:46px;
  background:#fff;
}
.profile-page-hero .crumb{
  letter-spacing:0.26em;
  word-spacing:0.08em;
}
.profile-page-hero h1{
  font-size:clamp(3.4rem,8vw,7rem);
  font-weight:400;
  line-height:.9;
  letter-spacing:-.035em;
}
.profile-intro{
  padding-top:72px;
  background:#fff;
}
.profile-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);
  gap:clamp(52px,8vw,112px);
  align-items:start;
}
.profile-portrait img{
  width:100%;
  aspect-ratio:2 / 3;
  object-fit:cover;
  object-position:center 30%;
}
.profile-portrait figcaption{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding-top:14px;
  border-top:1px solid var(--line);
  margin-top:14px;
  font-size:10.5px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--bronze);
}
.profile-portrait figcaption strong{font-weight:600; color:var(--ink);}
.profile-copy{padding-top:12px;}
.profile-copy .joint{
  justify-content:flex-start;
  margin:0 0 30px;
  max-width:190px;
}
.profile-copy .joint::before{display:none;}
.profile-copy p{
  margin-bottom:22px;
  font-size:16px;
  line-height:1.78;
  color:var(--charcoal);
}
.profile-copy .profile-lead{
  margin-bottom:26px;
  font-family:var(--serif);
  font-size:clamp(1.65rem,3vw,2.45rem);
  line-height:1.22;
  letter-spacing:-.012em;
  color:var(--ink);
}
.profile-copy blockquote{
  margin-top:40px;
  padding:30px 0 0 32px;
  border-top:1px solid var(--line);
  border-left:2px solid var(--gold);
  font-family:var(--serif);
  font-size:clamp(1.45rem,2.4vw,2rem);
  font-style:italic;
  line-height:1.35;
  color:var(--bronze);
}
@media (max-width:860px){
  .profile-intro-grid{grid-template-columns:1fr; gap:48px;}
  .profile-portrait{max-width:620px;}
  .profile-copy{padding-top:0;}
}
@media (max-width:520px){
  .profile-page-hero{padding-bottom:34px;}
  .profile-intro{padding-top:44px;}
  .profile-portrait figcaption{flex-direction:column; gap:3px;}
  .profile-copy blockquote{padding-left:20px;}
}

/* ---------- Sections ---------- */
section{padding:96px 0;}
@media (max-width:720px){ section{padding:64px 0;} }
.section-head{max-width:640px; margin-bottom:56px;}
.section-head .joint{justify-content:flex-start; margin-bottom:18px;}
.section-head .joint::before{display:none;}
.section-head .joint::after{max-width:60px;}
.section-head h2{font-family:var(--serif); font-weight:500; font-size:clamp(1.8rem,3.4vw,2.6rem); color:var(--ink); line-height:1.15;}
.section-head p{margin-top:16px; font-size:16px; color:var(--charcoal);}
.center{text-align:center; margin-left:auto; margin-right:auto;}
.center .joint{justify-content:center;}
.center .joint::before{display:flex;}

.dark{background:var(--ink); color:rgba(252,250,247,0.9);}
.dark{background:linear-gradient(135deg, #15120f 0%, #2a2118 100%);}
.dark .section-head h2{color:var(--ivory);}
.dark .section-head p{color:rgba(252,250,247,0.75);}
.tint{background:var(--ivory-dim);}

/* ---------- Instagram gallery feed ---------- */
.instagram-gallery{background:var(--ivory-dim);}
.instagram-gallery .section-head{margin-bottom:42px;}
.instagram-gallery .section-head h2 em{font-style:italic;}
.instagram-feed-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  min-height:120px;
  margin-bottom:34px;
}
.instagram-feed-card{
  display:block;
  overflow:hidden;
  background:var(--ivory);
  border:1px solid rgba(10,10,10,0.08);
  transition:transform .3s ease, box-shadow .3s ease;
}
.instagram-feed-card:hover,.instagram-feed-card:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 18px 38px rgba(10,10,10,0.12);
  outline:none;
}
.instagram-feed-card img{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  background:var(--ivory-dim);
  transition:transform .5s ease;
}
.instagram-feed-card:hover img,.instagram-feed-card:focus-visible img{transform:scale(1.025);}
.instagram-feed-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px 14px;
  color:var(--bronze);
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.instagram-feed-meta time{color:var(--bronze-lt); white-space:nowrap;}
.instagram-feed-empty{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:26px 28px;
  border:1px solid var(--line);
  background:rgba(252,250,247,0.55);
}
.instagram-feed-status{margin:0; color:var(--charcoal); font-size:15px;}
.instagram-feed-empty .more{flex:0 0 auto;}
@media (max-width:900px){.instagram-feed-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:560px){
  .instagram-feed-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
  .instagram-feed-empty{display:block; padding:22px 20px;}
  .instagram-feed-empty .more{display:inline-block; margin-top:14px;}
}
.instagram-home .instagram-feed-grid{
  display:flex;
  flex-wrap:nowrap;
  overflow-x:auto;
  gap:18px;
  padding:2px 2px 12px;
  margin-bottom:34px;
  scrollbar-width:thin;
}
.instagram-home .instagram-feed-card{
  flex:0 0 clamp(190px,22vw,260px);
}
.instagram-home .instagram-feed-empty{
  flex:1 0 100%;
}

/* ---------- Services / process grid ---------- */
.grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);}
@media (max-width:960px){ .grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .grid{grid-template-columns:1fr;} }
.card{
  background:var(--ivory); padding:36px 30px; position:relative;
  transition:background .25s ease;
}
.card:hover{background:var(--ivory-dim);}
.card .mark{font-family:var(--serif); font-size:14px; color:var(--bronze); letter-spacing:0.05em; margin-bottom:22px; display:block;}
.card img{width:100%; aspect-ratio:4/3; object-fit:cover; margin-bottom:22px;}
.card h3{font-family:var(--serif); font-weight:500; font-size:1.25rem; color:var(--ink); margin-bottom:10px;}
.card-kicker{font-family:var(--sans); font-size:1rem; line-height:1.35; font-weight:600; color:var(--ink); margin:-2px 0 12px;}
.card p{font-size:14.5px; color:var(--charcoal);}
.card a.more{display:inline-block; margin-top:16px; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--bronze); border-bottom:1px solid var(--bronze); padding-bottom:2px;}

/* ---------- Values ---------- */
.values{display:grid; grid-template-columns:repeat(4,1fr); gap:44px;}
@media (max-width:900px){ .values{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .values{grid-template-columns:1fr;} }
.value h4{font-family:var(--serif); font-size:1.3rem; color:var(--gold); margin-bottom:10px;}
.value p{font-size:14.5px; color:rgba(252,250,247,0.78);}
.by-room-grid{gap:0;}
.by-room-grid .value{padding:0 30px; border-left:1px solid var(--line);}
.by-room-grid .value:first-child{padding-left:0; border-left:0;}
.by-room-grid .value h4{font-size:1.45rem; color:var(--bronze); margin-bottom:16px;}
.by-room-grid .value p{font-size:15px; line-height:1.6; color:var(--charcoal);}
@media (max-width:900px){
  .by-room-grid .value:nth-child(odd){padding-left:0; border-left:0;}
  .by-room-grid .value:nth-child(even){padding-right:0;}
}
@media (max-width:560px){
  .by-room-grid .value{padding:28px 0 0; border-left:0; border-top:1px solid var(--line);}
  .by-room-grid .value:first-child{padding-top:0; border-top:0;}
}

/* ---------- Gallery grid ---------- */
.masonry{column-count:3; column-gap:18px;}
@media (max-width:900px){ .masonry{column-count:2;} }
@media (max-width:560px){ .masonry{column-count:1;} }
.masonry figure{
  position:relative; overflow:hidden; break-inside:avoid; margin:0 0 18px;
  background:var(--ivory-dim); cursor:zoom-in;
}
.masonry figure[hidden]{display:none;}
.masonry img{width:100%; height:auto; display:block; transition:transform .5s ease;}
.masonry figure:hover img,.masonry figure:focus-visible img{transform:scale(1.025);}
.masonry figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:42px 18px 16px;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,0.72));
  color:#fff; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase;
  opacity:0; transition:opacity .3s ease;
}
.masonry figure:hover figcaption,.masonry figure:focus-visible figcaption{opacity:1;}
.masonry figure:focus-visible{outline:2px solid var(--bronze); outline-offset:3px;}
@media (hover:none){ .masonry figcaption{opacity:1;} }

.filters{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.filters button{
  font-family:var(--sans); font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase;
  padding:10px 20px; border:1px solid var(--line); background:transparent; cursor:pointer;
  color:var(--charcoal); transition:all .2s ease;
}
.filters button.active,.filters button:hover{background:var(--ink); border-color:var(--ink); color:var(--ivory);}

.gallery-lightbox{
  position:fixed; inset:0; z-index:2000; display:grid; place-items:center;
  padding:clamp(18px,4vw,52px); background:rgba(10,10,10,0.92); backdrop-filter:blur(6px);
}
.gallery-lightbox[hidden]{display:none;}
.gallery-lightbox-frame{
  max-width:min(1180px,100%); max-height:calc(100vh - 80px);
  display:grid; justify-items:center; gap:12px;
}
.gallery-lightbox img{
  display:block; max-width:100%; max-height:calc(100vh - 128px);
  width:auto; height:auto; object-fit:contain; box-shadow:0 22px 80px rgba(0,0,0,0.45);
}
.gallery-lightbox p{
  margin:0; color:#fff; font-size:0.84rem; letter-spacing:0.09em; text-transform:uppercase;
}
.gallery-lightbox-close{
  position:fixed; top:14px; right:18px; width:46px; height:46px;
  border:1px solid rgba(255,255,255,0.35); border-radius:50%;
  background:rgba(0,0,0,0.25); color:#fff; font-size:1.9rem; line-height:1; cursor:pointer;
}
.gallery-lightbox-close:hover,.gallery-lightbox-close:focus-visible{
  background:var(--bronze); outline:none;
}
body.lightbox-open{overflow:hidden;}

/* ---------- Testimonials ---------- */
.reviews-summary{margin-top:16px; color:var(--charcoal);}
.reviews-summary strong{font-family:var(--serif); font-size:1.25rem; color:var(--bronze);}
.reviews-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px;}
.review-card{
  display:flex; flex-direction:column; min-height:250px; padding:30px;
  background:var(--ivory); border:1px solid var(--line);
}
.review-card p{font-family:var(--serif); font-size:1.08rem; line-height:1.55; color:var(--ink);}
.review-card .who{margin-top:auto; padding-top:24px; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--bronze);}
.review-note{text-align:center; margin-top:26px; font-size:13px; color:var(--charcoal);}
@media (max-width:900px){
  .reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .review-card:last-child:nth-child(odd){grid-column:1 / -1; width:calc(50% - 9px); justify-self:center;}
}
@media (max-width:600px){
  .reviews-grid{grid-template-columns:1fr;}
  .review-card{min-height:0; padding:26px;}
  .review-card:last-child:nth-child(odd){grid-column:auto; width:100%;}
}
.stars{color:var(--gold); font-size:15px; letter-spacing:3px; margin-bottom:18px;}

/* ---------- Instagram Live ---------- */
.instagram-live{padding:72px 0; background:var(--ivory);}
.instagram-live-card{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:28px;
  padding:34px 38px; border:1px solid var(--line);
  background:linear-gradient(135deg, var(--ivory) 0%, var(--ivory-dim) 100%);
  box-shadow:0 18px 55px rgba(75,54,32,0.07);
}
.instagram-live-mark{
  width:58px; height:58px; border:1px solid rgba(75,54,32,0.28); border-radius:50%;
  display:grid; place-items:center; font-size:12px; letter-spacing:0.12em; color:var(--bronze);
  background:rgba(252,250,247,0.72);
}
.live-label{
  display:flex; align-items:center; gap:8px; margin-bottom:7px;
  font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--bronze);
}
.live-dot{width:8px; height:8px; border-radius:50%; background:#9a938a; box-shadow:0 0 0 4px rgba(154,147,138,0.14);}
.live-label.is-live{color:#a32424;}
.live-label.is-live .live-dot{background:#c62c2c; box-shadow:0 0 0 4px rgba(198,44,44,0.14); animation:live-pulse 1.8s infinite;}
@keyframes live-pulse{50%{box-shadow:0 0 0 8px rgba(198,44,44,0);}}
.instagram-live-copy h2{font-family:var(--serif); font-size:clamp(1.55rem,3vw,2.15rem); font-weight:500; line-height:1.1; color:var(--ink);}
.instagram-live-copy p{margin-top:7px; color:var(--charcoal);}
.instagram-live-button{justify-self:end;}
@media (max-width:760px){
  .instagram-live-card{grid-template-columns:auto 1fr; padding:28px; gap:20px;}
  .instagram-live-button{grid-column:1 / -1; justify-self:stretch; justify-content:center;}
}
@media (max-width:480px){
  .instagram-live-card{grid-template-columns:1fr; text-align:center;}
  .instagram-live-mark{margin:0 auto;}
  .live-label{justify-content:center;}
  .instagram-live-button{grid-column:auto;}
}

/* ---------- Editorial feature ---------- */
.press-feature{
  padding:110px 0;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.press-feature-grid{
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);
  gap:clamp(44px,7vw,96px);
  align-items:center;
}
.press-feature-copy .joint{
  justify-content:flex-start;
  margin:0 0 24px;
  max-width:210px;
}
.press-feature-copy .joint::before{display:none;}
.press-feature-copy h2{
  max-width:9ch;
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.5rem,5.3vw,4.8rem);
  line-height:.98;
  letter-spacing:-.025em;
  color:var(--ink);
}
.press-feature-copy > p{
  max-width:42ch;
  margin-top:28px;
  font-size:16px;
  color:var(--charcoal);
}
.press-credit{
  margin-top:36px;
  padding-top:22px;
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.press-credit span{
  font-size:10.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bronze-lt);
}
.press-credit strong{
  font-family:var(--serif);
  font-size:1.15rem;
  font-weight:500;
  color:var(--ink);
}
.press-feature-media{
  min-width:0;
}
.press-feature-media video{
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
  background:var(--ink);
  box-shadow:0 28px 70px rgba(10,10,10,.14);
}
.press-feature-media p{
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid var(--line);
  font-size:10.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--bronze);
}
.press-feature-magazine{background:var(--ivory-dim);}
.press-feature-magazine .press-feature-copy h2{max-width:14ch; font-size:clamp(2.2rem,4.4vw,4.1rem);}
.press-feature-magazine .press-feature-copy h2 em{font-style:italic;}
.magazine-preview{display:block; overflow:hidden; background:var(--ivory); box-shadow:0 28px 70px rgba(10,10,10,.14);}
.magazine-preview img{display:block; width:100%; height:auto; aspect-ratio:1303.94 / 841.89; object-fit:cover; transition:transform .5s ease;}
.magazine-preview:hover img,.magazine-preview:focus-visible img{transform:scale(1.015);}
.press-feature-magazine .magazine-link{margin-top:20px;}
.press-feature-award{background:var(--ivory);}
.press-feature-award .press-feature-copy h2{max-width:13ch; font-size:clamp(2.2rem,4.4vw,4.1rem);}
.award-image{display:block; width:100%; height:auto; box-shadow:0 28px 70px rgba(10,10,10,.14);}
.press-feature-award .award-image{width:88%; margin-inline:auto;}
@media (max-width:880px){
  .press-feature{padding:80px 0;}
  .press-feature-grid{grid-template-columns:1fr; gap:42px;}
  .press-feature-copy h2{max-width:none;}
  .press-feature-copy > p{max-width:58ch;}
}
@media (max-width:520px){
  .press-feature{padding:64px 0;}
  .press-feature-media{margin:0 -20px;}
  .press-feature-media p{margin-left:20px; margin-right:20px;}
  .press-feature-magazine .magazine-link{margin-left:20px;}
}

/* ---------- Brands strip ---------- */
.brands{
  display:grid; grid-template-columns:repeat(5,minmax(120px,1fr));
  align-items:center; gap:34px 28px; opacity:0.78;
}
.brands img{height:26px; width:auto; max-width:145px; margin:0 auto; filter:grayscale(1) contrast(1.1);}
.brand-fallback{
  min-height:48px; display:grid; place-items:center; margin:0 auto;
  color:rgba(252,250,247,0.9); text-align:center; white-space:nowrap;
  font-family:var(--sans); font-size:14px; font-weight:700;
  letter-spacing:0.08em; text-transform:uppercase;
}
.brand-fallback.brand-blum{font-family:Arial,sans-serif; font-size:22px; font-weight:700; letter-spacing:-0.04em; text-transform:lowercase;}
.brand-fallback.brand-lincoln{font-size:11px; letter-spacing:0.06em;}
.partner-logo{
  width:100%; min-height:56px; padding:4px 8px;
  display:grid; place-items:center; background:transparent;
}
.partner-logo img{
  width:100%; height:auto; max-width:170px; max-height:48px;
  object-fit:contain; filter:grayscale(1) invert(1) brightness(1.12); margin:auto;
  mix-blend-mode:screen;
}
.partner-logo.elton-logo img{max-height:42px;}
.partner-logo.fethers-logo img{max-height:36px;}
.partner-logo.timberwood-logo{background:transparent;}
.timberwood-wordmark{
  display:grid; place-items:center; gap:2px; min-height:56px;
  color:rgba(252,250,247,0.94); font-family:Arial,sans-serif;
  font-size:15px; line-height:0.92; font-weight:800; letter-spacing:-0.07em; white-space:nowrap;
}
.timberwood-wordmark::before{
  content:""; width:28px; height:12px; display:block;
  border-top:7px solid currentColor; border-left:7px solid transparent;
  border-right:7px solid transparent; transform:skewX(-18deg);
}
.timberwood-wordmark small{font-size:8px; letter-spacing:0.11em; font-weight:700; color:var(--bronze);}
.dark .brand-fallback{color:rgba(252,250,247,0.9);}
.dark .partner-logo img{filter:grayscale(1) invert(1) brightness(1.12); mix-blend-mode:screen;}
.dark .timberwood-wordmark{color:rgba(252,250,247,0.94);}
.dark .timberwood-wordmark small{color:var(--bronze);}
.dark .brands img{filter:grayscale(1) brightness(0) invert(0.94);}
@media (max-width:900px){.brands{grid-template-columns:repeat(3,minmax(110px,1fr));}}
@media (max-width:560px){.brands{grid-template-columns:repeat(2,minmax(100px,1fr)); gap:30px 18px;}}

/* ---------- Split / about ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
@media (max-width:860px){ .split{grid-template-columns:1fr; gap:36px;} }
.split img{width:100%; aspect-ratio:4/5; object-fit:cover;}
.split .body p{margin-bottom:16px; font-size:16px;}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--bronze); color:var(--ivory); text-align:center; padding:80px 0;
}
.cta-band h2{font-family:var(--serif); font-weight:500; font-size:clamp(1.8rem,3.6vw,2.6rem); margin-bottom:20px;}
.cta-band p{max-width:52ch; margin:0 auto 34px; color:rgba(252,250,247,0.85);}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }
.info-row{display:flex; gap:16px; padding:20px 0; border-bottom:1px solid var(--line);}
.info-row .lbl{width:120px; flex-shrink:0; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--bronze);}
.info-row .val{font-size:15.5px;}
.map-box{width:100%; aspect-ratio:4/3; border:1px solid var(--line); filter:grayscale(0.4) sepia(0.1);}

form.quote{display:flex; flex-direction:column; gap:18px;}
form.quote label{font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--bronze); margin-bottom:6px; display:block;}
form.quote input, form.quote select, form.quote textarea{
  width:100%; padding:13px 14px; border:1px solid var(--line); background:var(--ivory);
  font-family:var(--sans); font-size:14.5px; color:var(--ink);
}
form.quote input:focus, form.quote select:focus, form.quote textarea:focus{
  outline:none; border-color:var(--bronze);
}
form.quote textarea{resize:vertical; min-height:110px;}
.form-note{font-size:13px; color:var(--bronze); margin-top:-2px;}
.form-status{padding:14px 16px; border:1px solid rgba(75,54,32,0.22); background:var(--ivory-dim); color:var(--charcoal); font-size:14px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:520px){ .field-row{grid-template-columns:1fr;} }

/* ---------- Footer ---------- */
footer{background:linear-gradient(135deg, #15120f 0%, #2a2118 100%); color:rgba(252,250,247,0.7); padding:72px 0 28px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 0.8fr 0.8fr 1fr; gap:48px; padding-bottom:52px; border-bottom:1px solid rgba(252,250,247,0.12);}
@media (max-width:820px){ .foot-grid{grid-template-columns:1fr 1fr; row-gap:36px;} }
@media (max-width:520px){ .foot-grid{grid-template-columns:1fr;} }
.footer-brand{gap:14px; align-items:center;}
.footer-brand-mark{display:block; position:relative; width:58px; height:58px; flex:0 0 58px; overflow:hidden; background:transparent;}
.footer-brand-mark img{position:absolute; width:155px; max-width:none; height:auto; left:-50px; top:-15.5px; mix-blend-mode:normal;}
.footer-brand-wordmark{display:block; width:260px; max-width:100%; height:auto; mix-blend-mode:normal;}
footer h5{font-size:11.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); margin-bottom:18px;}
footer .brand-text{color:var(--ivory);}
footer .brand-mark{box-shadow:inset 0 0 0 1px rgba(252,250,247,0.18);}
footer .foot-desc{font-size:14px; margin-top:16px; max-width:32ch; color:rgba(252,250,247,0.65);}
footer li{margin-bottom:10px; font-size:14.5px;}
footer li a:hover{color:var(--ivory);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:24px; font-size:12.5px; color:rgba(252,250,247,0.5); flex-wrap:wrap; gap:12px;}
.socials{display:flex; gap:16px;}
.socials a{font-size:13px; letter-spacing:0.05em; text-transform:uppercase; color:rgba(252,250,247,0.7);}
.socials a:hover{color:var(--gold);}

/* ---------- Reveal on scroll ---------- */
.reveal-ready .reveal {
  opacity: 0;
  transform: translate3d(0, 72px, 0) scale(.94);
  filter: blur(10px);
  transition:
    opacity .9s cubic-bezier(.22,1,.36,1),
    transform .9s cubic-bezier(.22,1,.36,1),
    filter .9s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}
.reveal-ready .reveal.in {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: none;
}

@keyframes reveal-pop {
  0% { opacity: 0; transform: translate3d(0, 72px, 0) scale(.94); filter: blur(10px); }
  68% { opacity: 1; transform: translate3d(0, -5px, 0) scale(1.01); filter: blur(0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: none; }
}

.reveal-ready .reveal.in {
  animation: reveal-pop .9s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms) both;
}

@media (prefers-reduced-motion: reduce) {
  .reveal-ready .reveal {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
    animation: none;
  }
}

/* ---------- Badges (HIA / ACFA) ---------- */
.badges{display:flex; gap:28px; align-items:center; margin-top:28px; flex-wrap:wrap;}
.badges img{height:52px; width:auto; opacity:0.9;}
