/* ─────────────────────────────────────────────
   HERO
   ───────────────────────────────────────────── */
.hero{
  height:min(100svh,900px);
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  background:var(--green-950);
}
.hero-bg{
  position:absolute;inset:0;
}
.hero-video,
.hero-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:65% 55%;filter:brightness(1.08);
  z-index:0;pointer-events:none;
}
.hero-bg::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(to bottom,rgba(22,32,13,0.55) 0%,rgba(22,32,13,0) 22%),
    linear-gradient(100deg,rgba(22,32,13,0.82) 0%,rgba(22,32,13,0.62) 42%,rgba(22,32,13,0.12) 78%);
}
.hero-content{
  flex:1;display:flex;flex-direction:column;
  align-items:flex-start;justify-content:center;text-align:left;
  width:100%;max-width:var(--content-max);margin:0 auto;
  padding:120px var(--gutter) 64px;position:relative;z-index:2;
}
/* Desktop: drop the centered content cap so the hero text starts at the same
   outer gutter as the nav logo (they only diverge above --content-max). */
@media(min-width:1025px){
  .hero-content{max-width:none}
}
.hero h1{
  font-family:'Playfair Display',serif;
  font-size:var(--fs-h1);font-weight:700;line-height:1.1;
  color:var(--gold-200);max-width:640px;
  animation:fadeUp 0.9s 0.2s both;
}
.hero-sub{
  font-size:1.125rem;color:var(--text-on-dark);line-height:var(--lh-body);
  max-width:560px;margin:20px 0 36px;
  animation:fadeUp 0.9s 0.38s both;
}
.hero-btns{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-start;
  animation:fadeUp 0.9s 0.52s both;
}

/* trust strip */
.hero-trust{
  position:relative;z-index:2;
  background:var(--brown-950);
  border-top:2px solid var(--gold-500);
  padding:36px var(--gutter);
  display:flex;justify-content:center;align-items:stretch;
  gap:0;flex-wrap:wrap;
  width:100%;
}
.trust-item{
  flex:1;min-width:200px;max-width:340px;
  text-align:center;padding:8px 32px;
  border-right:1px solid var(--border-on-dark-strong);
}
.trust-item:last-child{border-right:none}
.trust-label{
  font-family:'Playfair Display',serif;
  font-size:1.25rem;font-weight:700;color:var(--gold-400);line-height:1.25;
}
.trust-sub{
  font-size:0.75rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;
  color:rgba(237,230,208,0.78);margin-top:8px;
}

/* ─────────────────────────────────────────────
   SERVICES  (alternating full-bleed rows)
   ───────────────────────────────────────────── */
.svc-row{
  display:grid;grid-template-columns:1fr 1fr;
  min-height:560px;
}
.svc-row-body{
  padding:clamp(48px,6vw,80px) clamp(32px,5vw,72px);
  display:grid;grid-template-columns:1fr;
  gap:28px;align-content:center;justify-items:start;
}

/* surfaces */
.svc-row--light{background:var(--surface-page)}
.svc-row--cream{background:var(--surface-cream)}
.svc-row--dark{background:var(--green-900)}

.svc-body-col{display:flex;flex-direction:column;justify-content:flex-start;max-width:62ch}

.svc-list-label{
  font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:var(--track-eyebrow);
  text-transform:uppercase;margin-bottom:18px;
}

.svc-row-img{
  overflow:hidden;position:relative;
}
.svc-row-img img{
  width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;
  transition:transform 0.6s ease;
}
.svc-row:hover .svc-row-img img{transform:scale(1.03)}

/* per-image crop + restrained normalization (warmth/brightness vary between photos) */
#services .svc-row-img img{object-position:42% 45%}
#services-millwork .svc-row-img img{object-position:50% 40%;filter:brightness(1.02) saturate(0.82) contrast(1.02)}
#services-renovations .svc-row-img img{object-position:60% 50%;filter:brightness(0.97) contrast(1.05) saturate(1.05)}
#services-kitchen-bath .svc-row-img img{object-position:62% 55%;filter:saturate(0.94)}

.svc-title{
  font-family:'Playfair Display',serif;
  font-size:var(--fs-h3);font-weight:700;line-height:var(--lh-heading);
  margin-bottom:16px;
}
.svc-title::before{
  content:'';display:block;width:40px;height:3px;border-radius:2px;
  background:var(--gold-500);margin-bottom:18px;
}
.svc-desc{
  font-size:var(--fs-body);line-height:var(--lh-body);
}
.svc-row-body .svc-list{
  list-style:none;display:flex;flex-direction:column;gap:12px;
}
.svc-row-body .svc-list li{
  font-size:var(--fs-body);font-weight:400;
  padding-left:18px;position:relative;line-height:1.5;
}
.svc-row-body .svc-list li::before{
  content:'';position:absolute;left:0;top:0.55em;
  width:5px;height:5px;border-radius:50%;
}

/* Millwork long list → two columns */
@media(min-width:400px){
  .svc-row--cream .svc-row-body .svc-list{
    display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;
  }
}
/* Desktop: use balanced multi-column flow so items pack evenly
   instead of row-coupling (which left a ragged gap after short items). */
@media(min-width:769px){
  .svc-row--cream .svc-row-body .svc-list{
    display:block;column-count:2;column-gap:clamp(28px,3vw,48px);
  }
  .svc-row--cream .svc-row-body .svc-list li{
    break-inside:avoid;margin-bottom:14px;
  }
  .svc-row--cream .svc-row-body .svc-list li:last-child{margin-bottom:0}
}

/* CTA — aligned to the button system */
.svc-row-cta{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;margin-top:32px;align-self:flex-start;
  font-size:0.8125rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  text-decoration:none;padding:0 28px;border-radius:var(--btn-radius);
  transition:background var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.svc-row-cta:hover{transform:translateY(-1px)}

/* light + cream surface text colors */
.svc-row--light .svc-title,
.svc-row--cream .svc-title{color:var(--text-on-light)}
.svc-row--light .svc-desc,
.svc-row--cream .svc-desc{color:var(--text-on-light-soft)}
.svc-row--light .svc-list-label,
.svc-row--cream .svc-list-label{color:var(--green-700)}
.svc-row--light .svc-row-body .svc-list li,
.svc-row--cream .svc-row-body .svc-list li{color:var(--text-on-light-soft)}
.svc-row--light .svc-row-body .svc-list li::before,
.svc-row--cream .svc-row-body .svc-list li::before{background:var(--green-700)}
.svc-row--light .svc-row-cta,
.svc-row--cream .svc-row-cta{background:var(--green-800);color:var(--gold-200)}
.svc-row--light .svc-row-cta:hover,
.svc-row--cream .svc-row-cta:hover{background:var(--green-900)}
.svc-row--light .svc-row-cta:focus-visible,
.svc-row--cream .svc-row-cta:focus-visible{outline:2px solid var(--green-700);outline-offset:3px}

/* dark feature surface (Home Renovations) */
.svc-row--dark .svc-title{color:var(--gold-200)}
.svc-row--dark .svc-desc{color:var(--text-on-dark-soft)}
.svc-row--dark .svc-list-label{color:var(--gold-400)}
.svc-row--dark .svc-row-body .svc-list li{color:var(--text-on-dark-soft)}
.svc-row--dark .svc-row-body .svc-list li::before{background:var(--gold-500)}
.svc-row--dark .svc-row-cta{background:var(--brown-950);color:var(--gold-200)}
.svc-row--dark .svc-row-cta:hover{background:var(--brown-800)}
.svc-row--dark .svc-row-cta:focus-visible{outline:2px solid var(--gold-400);outline-offset:3px}

.services-cta{display:none}

/* Desktop: the per-section CTA is redundant with the nav, hero, and contact
   CTAs, so hide it on wide screens (kept on tablet/mobile). */
@media(min-width:1025px){
  .svc-row-cta{display:none}
}

/* ─────────────────────────────────────────────
   OUR WORK  (before / after sliders)
   ───────────────────────────────────────────── */
.work{padding:var(--section-y) var(--gutter);background:var(--surface-stone)}
.work-inner{max-width:var(--content-max);margin:0 auto}
.work-header{text-align:left;margin-bottom:40px}
.work-eyebrow{
  font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:var(--track-eyebrow);
  text-transform:uppercase;color:#6d5416;margin-bottom:12px;
}
.work-title{
  font-family:'Playfair Display',serif;
  font-size:var(--fs-h2);font-weight:700;color:var(--green-900);line-height:var(--lh-heading);
}
.work-note{
  font-size:var(--fs-body);color:var(--text-on-light-soft);max-width:62ch;
  margin:16px 0 0;line-height:var(--lh-body);
}
.work-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
}

/* card */
.ba-card{
  background:#ffffff;border:1px solid var(--border-on-light);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.ba-label{
  font-size:0.8125rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--text-on-light-soft);padding:14px 18px;
}

/* slider wrapper */
.ba-slider{
  position:relative;width:100%;aspect-ratio:4/3;
  cursor:grab;user-select:none;overflow:hidden;touch-action:none;
}
.ba-slider.is-dragging{cursor:grabbing}
.ba-slider:focus-visible{outline:3px solid var(--green-700);outline-offset:-3px}
.ba-slider img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
}

/* after (full width, bottom layer) */
.ba-after{
  position:absolute;inset:0;background:var(--surface-stone);
}
.ba-after img{width:100%;height:100%;object-fit:cover}

/* before (clipped on top) */
.ba-before{
  position:absolute;inset:0;
  clip-path:inset(0 50% 0 0);
  transition:clip-path 0s;
  background:var(--surface-stone);
}
.ba-before img{width:100%;height:100%;object-fit:cover}

/* per-image framing */
.ba-card:first-child .ba-before img{object-position:50% 40%}
.ba-card:first-child .ba-after img{object-position:50% 42%}
.ba-card:last-child .ba-before img,
.ba-card:last-child .ba-after img{object-position:50% 50%}

/* drag handle */
.ba-handle{
  position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);
  width:44px;display:flex;flex-direction:column;align-items:center;
  pointer-events:none;z-index:10;
}
.ba-handle-line{flex:1;width:2px;background:rgba(255,255,255,0.85)}
.ba-handle-btn{
  width:44px;height:44px;border-radius:50%;
  background:var(--gold-200);border:2px solid #ffffff;
  display:flex;align-items:center;justify-content:center;gap:0;
  box-shadow:0 4px 16px rgba(0,0,0,0.35);flex-shrink:0;
  color:#26200f;
}

/* before / after tags */
.ba-tag{
  position:absolute;bottom:14px;
  font-size:0.6875rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  padding:5px 10px;border-radius:4px;z-index:5;pointer-events:none;
}
.ba-tag--before{
  left:14px;background:rgba(0,0,0,0.75);color:#ffffff;
}
.ba-tag--after{
  right:14px;background:rgba(43,19,3,0.85);color:var(--gold-200);
}

/* ─────────────────────────────────────────────
   ABOUT
   ───────────────────────────────────────────── */
.about{padding:var(--section-y) var(--gutter);background:var(--surface-page)}
.about-inner{
  max-width:var(--content-max);margin:0 auto;
  display:flex;flex-direction:column;
}
.about-title{
  font-family:'Playfair Display',serif;
  font-size:var(--fs-h2);font-weight:700;color:var(--green-900);line-height:var(--lh-heading);
}
.about-title::after{
  content:'';display:block;width:40px;height:3px;border-radius:2px;
  background:var(--gold-500);margin-top:18px;
}
.about-body{
  display:grid;grid-template-columns:45fr 55fr;gap:clamp(40px,5vw,72px);align-items:center;
  font-size:var(--fs-body);color:var(--text-on-light-soft);line-height:var(--lh-body);
}
.about-text{max-width:58ch}
.about-text .about-title{margin-bottom:28px}
.about-text p{margin-bottom:16px}
.about-text p:last-child{margin-bottom:0}
.about-photo{
  border-radius:var(--radius-md);overflow:hidden;
  aspect-ratio:3/2;
  border:1px solid var(--border-on-light);
  box-shadow:var(--shadow-md);
  background:var(--surface-stone);
}
.about-photo img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%;
}

/* ─────────────────────────────────────────────
   TESTIMONIALS
   ───────────────────────────────────────────── */
.testimonials{padding:var(--section-y) var(--gutter);background:var(--brown-950)}
.testimonials-inner{max-width:var(--content-max);margin:0 auto}
.testi-header{text-align:left;margin-bottom:40px}
.testi-title{
  font-family:'Playfair Display',serif;
  font-size:var(--fs-h2);font-weight:700;color:var(--gold-400);line-height:var(--lh-heading);
}
.testi-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.testi-card{
  background:var(--green-800);
  border:1px solid rgba(240,224,176,0.12);
  border-radius:var(--radius-lg);padding:32px;
  box-shadow:inset 0 1px 0 rgba(240,224,176,0.10);
  position:relative;overflow:hidden;
  transition:border-color var(--dur) var(--ease);
}
.testi-card:hover{border-color:rgba(240,224,176,0.30)}
.testi-stars{color:var(--gold-500);font-size:0.8rem;letter-spacing:2px;margin-bottom:16px}
.testi-q{
  font-family:'Playfair Display',serif;font-size:1.0625rem;font-style:normal;
  color:var(--text-on-dark);line-height:1.75;margin-bottom:22px;
}
.testi-name{font-size:0.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--gold-400)}
.testi-role{font-size:0.8125rem;color:#a3b391;margin-top:4px}

/* scroll dots — real buttons, 6px visual dot, ≥24px hit area */
.scroll-dots{display:none;justify-content:center;gap:4px;margin-top:16px}
.scroll-dot{
  appearance:none;-webkit-appearance:none;
  width:28px;height:28px;padding:0;margin:0;
  background:transparent;border:none;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
/* neutralize global.css .scroll-dot.active styles on the button itself */
.scroll-dot.active{background:transparent;width:28px;height:28px;border-radius:50%}
.scroll-dot::before{
  content:'';display:block;width:6px;height:6px;border-radius:3px;
  background:rgba(240,234,216,0.55);
  transition:background var(--dur) var(--ease),width var(--dur) var(--ease);
}
.scroll-dot.active::before{background:var(--gold-400);width:18px}
.scroll-dot:focus-visible{outline:2px solid var(--gold-400);outline-offset:2px}

/* ─────────────────────────────────────────────
   CONTACT
   ───────────────────────────────────────────── */
.contact{
  padding:var(--section-y) var(--gutter);background:var(--surface-cream);
  position:relative;overflow:hidden;
}
.contact-inner{
  position:relative;z-index:2;
  max-width:var(--content-max);margin:0 auto;
  display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:start;
}
.contact-title{
  font-family:'Playfair Display',serif;
  font-size:var(--fs-h2);font-weight:700;color:var(--green-900);line-height:var(--lh-heading);
}
.contact-sub{font-size:var(--fs-body);color:var(--text-on-light-soft);line-height:var(--lh-body);margin-top:16px;max-width:52ch}
.contact-detail{margin-top:36px;display:flex;flex-direction:column;gap:0}
.cd{display:flex;gap:16px;padding:16px 0}
.cd-icon{
  width:44px;height:44px;flex-shrink:0;margin-top:2px;
  background:rgba(46,60,29,0.08);border:1px solid rgba(46,60,29,0.25);
  border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;
  color:var(--green-800);
}
.cd-label{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.08em;color:#63724f;margin-bottom:3px;font-weight:700}
.cd-val{font-size:var(--fs-body);color:var(--text-on-light);font-weight:600}
.cd-val a{
  color:inherit;text-decoration:none;
  -webkit-text-fill-color:currentColor;
  display:inline-block;padding:6px 0;margin:-6px 0;
}
.cd-val a:hover{text-decoration:underline}
.cd-val a:focus-visible{outline:2px solid var(--green-700);outline-offset:3px;border-radius:2px}
.cd-note{font-size:0.8125rem;color:#63724f;margin-top:3px}

/* form */
.form-card{
  background:#ffffff;border:1px solid var(--border-on-light);
  border-radius:var(--radius-lg);padding:36px;
  box-shadow:var(--shadow-md);
}
.fg{margin-bottom:18px}
.fg label{
  display:block;font-size:0.8125rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.08em;color:var(--green-800);margin-bottom:8px;
}
.label-opt{font-weight:500;text-transform:none;letter-spacing:0;color:#63724f}
.fg input,.fg textarea{
  width:100%;background:#fdfcf8;border:1px solid var(--border-on-light);
  border-radius:8px;padding:14px 16px;color:var(--text-on-light);
  font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.fg input::placeholder,.fg textarea::placeholder{color:#6b7460;opacity:1}
.fg input:focus,.fg textarea:focus{
  outline:none;
  border-color:var(--green-700);box-shadow:0 0 0 3px rgba(58,78,36,0.18);
}
.fg input:focus-visible,.fg textarea:focus-visible{
  outline:2px solid var(--green-700);outline-offset:2px;
}
.fg textarea{min-height:140px;resize:vertical}
.form-btn{
  width:100%;background:var(--green-800);color:var(--gold-200);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:0.9375rem;font-weight:700;letter-spacing:0.02em;
  min-height:52px;padding:14px 32px;border:none;border-radius:var(--btn-radius);
  cursor:pointer;margin-top:8px;
  transition:background var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.form-btn:hover{background:var(--green-900);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.form-btn:focus-visible{outline:2px solid var(--green-700);outline-offset:3px}
.form-btn:disabled{opacity:0.6;cursor:default;transform:none;box-shadow:none}
.form-status{margin-top:12px;font-size:var(--fs-small);font-weight:500}
.form-status--success{color:#2f6b2f}
.form-status--error{color:#b3261e}

/* ─────────────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────────────── */

/* Short laptops */
@media(min-width:769px) and (max-height:820px){
  .hero-content{padding:100px var(--gutter) 48px}
  .svc-row{min-height:480px}
  .ba-slider{aspect-ratio:4/3}
}

/* Tablet 1024px */
@media(max-width:1024px){
  .hero-content{padding:110px var(--gutter) 56px}

  .svc-row{min-height:420px}
  .svc-row-body{grid-template-columns:1fr;gap:32px;align-content:center}

  .about-body{grid-template-columns:1fr;gap:36px}
  .about-photo{order:1}

  .testi-grid{grid-template-columns:repeat(2,1fr)}

  .contact-inner{grid-template-columns:1fr;gap:48px}
}

/* Mobile 768px */
@media(max-width:768px){
  .hero{height:auto}
  .hero-content{min-height:100svh;justify-content:center;padding:110px 20px 56px}
  .hero-sub{margin:16px 0 28px}
  .hero-btns{flex-direction:column;align-items:stretch;width:100%;max-width:400px;gap:12px}
  .hero-btns .btn-primary,.hero-btns .btn-outline{width:100%}

  .hero-trust{padding:12px 20px;flex-direction:column;flex-wrap:nowrap;align-items:stretch}
  .trust-item{
    flex:none;width:100%;max-width:none;
    border-right:none;border-bottom:1px solid var(--border-on-dark-strong);
    padding:16px 12px;
  }
  .trust-item:last-child{border-bottom:none}
  .trust-label{font-size:1.125rem}

  .svc-row{grid-template-columns:1fr;min-height:auto}
  .svc-row .svc-row-img{order:-1;aspect-ratio:16/10;height:auto}
  .svc-row-body{padding:40px 20px 48px;grid-template-columns:1fr;gap:28px}

  .work-grid{grid-template-columns:1fr}

  .testi-grid{
    display:flex;flex-direction:row;grid-template-columns:unset;
    gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;padding-bottom:12px;
    scrollbar-width:none;margin:0 -20px;padding-left:20px;padding-right:20px;
    scroll-padding-left:20px;
  }
  .testi-grid::-webkit-scrollbar{display:none}
  .testi-card{flex-shrink:0;width:80vw;scroll-snap-align:start}
  .scroll-dots{display:flex}

  .form-card{padding:28px 20px}
  .fg input,.fg textarea{font-size:16px;min-height:48px}
}

/* Small mobile 480px */
@media(max-width:480px){
  .hero-content{padding:104px 16px 48px}
  .testi-grid{margin:0 -16px;padding-left:16px;padding-right:16px;scroll-padding-left:16px}
  .testi-card{width:85vw}
}

/* Very small 360px */
@media(max-width:360px){
  .testi-grid{margin:0 -14px;padding-left:14px;padding-right:14px;scroll-padding-left:14px}
  .testi-card{width:90vw}
  .hero-trust{padding:8px 14px}
  .trust-item{width:100%;padding:14px 10px}
}

/* Landscape phones */
@media(orientation:landscape) and (max-width:1024px) and (max-height:600px){
  .hero{height:auto;min-height:100svh}
  .hero-content{padding:88px 28px 36px}
  .hero-btns{flex-direction:row;align-items:center;max-width:none}
  .hero-btns .btn-primary,.hero-btns .btn-outline{width:auto}
  .hero-trust{flex-direction:row;align-items:stretch;padding:16px 20px}
  .trust-item{
    width:auto;flex:1;max-width:280px;padding:8px 14px;
    border-bottom:none;border-right:1px solid var(--border-on-dark-strong);
  }
  .trust-item:last-child{border-right:none}
  .trust-label{font-size:1rem}
  .trust-sub{font-size:0.6875rem;letter-spacing:0.1em}
}

/* Landscape tiny (iPhone SE rotated) */
@media(orientation:landscape) and (max-width:1024px) and (max-height:400px){
  .hero-content{padding:64px 28px 24px}
  .hero-sub{margin:10px 0 18px;font-size:1rem}
  .hero-trust{padding:14px 20px;gap:0}
  .trust-item{min-width:100px;padding:6px 10px}
}

@media(prefers-reduced-motion:reduce){
  .hero h1,.hero-sub,.hero-btns{animation:none;opacity:1;transform:none}
  .svc-row:hover .svc-row-img img{transform:none}
  .svc-row-cta:hover,.form-btn:hover{transform:none}
}
