/* ==========================================================================
   HOMEY HOMES — Premium Interior Solutions
   Design tokens: ivory field, deep brown + copper, single gold signature
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;1,500&family=Poppins:wght@300;400;500;600;700&display=swap');

:root{
  --ivory:#FAF6EE;
  --cream:#F3E9D8;
  --beige:#E5D3B3;
  --white:#FFFFFF;
  --brown-950:#211109;
  --brown-900:#2E1710;
  --brown-800:#43241A;
  --brown-700:#5C3323;
  --copper:#B5622E;
  --copper-light:#CE7C46;
  --gold:#C6A15B;
  --gold-light:#E4C77E;
  --ink:#2A1D16;
  --ink-soft:#6B5A4C;

  --font-head:'Playfair Display', serif;
  --font-body:'Poppins', sans-serif;

  --container:1240px;
  --radius-sm:6px;
  --radius-md:14px;
  --radius-lg:28px;

  --shadow-soft:0 10px 40px -12px rgba(46,23,16,.18);
  --shadow-lift:0 24px 60px -18px rgba(46,23,16,.32);

  --ease:cubic-bezier(.22,.9,.32,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--ivory);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,textarea{font-family:inherit;}

.container{max-width:var(--container);margin:0 auto;padding:0 28px;}

h1,h2,h3,h4{
  font-family:var(--font-head);
  color:var(--brown-900);
  font-weight:600;
  letter-spacing:.2px;
  line-height:1.15;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-body);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--copper);
  margin-bottom:16px;
}
.eyebrow::before{
  content:'';
  width:28px;height:1px;
  background:var(--gold);
}

.section{padding:110px 0;position:relative;}
.section--tight{padding:80px 0;}
.section--cream{background:var(--cream);}
.section--dark{background:var(--brown-900);color:var(--cream);}
.section--dark h2, .section--dark h3{color:var(--ivory);}

.section-head{max-width:680px;margin:0 auto 60px;text-align:center;}
.section-head h2{font-size:clamp(2rem,3.6vw,2.9rem);}
.section-head p{color:var(--ink-soft);margin-top:16px;font-size:1.05rem;}
.section-head.align-left{margin:0 0 56px;text-align:left;}

/* ============ Arch motif — signature shape, echoes the crest ============ */
.arch{
  position:relative;
}
.arch::after{
  content:'';
  position:absolute;
  inset:0;
}
.arch-divider{
  width:56px;height:56px;
  margin:0 auto 22px;
  position:relative;
}
.arch-divider svg{width:100%;height:100%;}

/* ============================= Buttons ================================= */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 34px;
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:2px;
  position:relative;
  overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .3s ease,color .3s ease;
  white-space:nowrap;
}
.btn span{position:relative;z-index:2;}
.btn-primary{
  background:linear-gradient(135deg,var(--copper),var(--brown-800));
  color:var(--white);
  box-shadow:var(--shadow-soft);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);}
.btn-outline{
  border:1px solid rgba(255,255,255,.55);
  color:var(--white);
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(6px);
}
.btn-outline:hover{background:rgba(255,255,255,.16);transform:translateY(-3px);}
.btn-outline-dark{
  border:1px solid var(--brown-800);
  color:var(--brown-800);
}
.btn-outline-dark:hover{background:var(--brown-900);color:var(--ivory);transform:translateY(-3px);}
.btn-gold{
  background:linear-gradient(135deg,var(--gold-light),var(--gold));
  color:var(--brown-950);
  box-shadow:0 14px 34px -10px rgba(198,161,91,.55);
}
.btn-gold:hover{transform:translateY(-3px);}
.btn-ripple::after{
  content:'';
  position:absolute;
  top:50%;left:50%;
  width:6px;height:6px;
  background:rgba(255,255,255,.55);
  border-radius:50%;
  transform:translate(-50%,-50%) scale(0);
  opacity:0;
}
.btn-ripple.rippling::after{
  animation:ripple .6s var(--ease);
}
@keyframes ripple{
  0%{transform:translate(-50%,-50%) scale(0);opacity:.6;}
  100%{transform:translate(-50%,-50%) scale(40);opacity:0;}
}

/* ============================ Scroll Progress =========================== */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;
  background:linear-gradient(90deg,var(--copper),var(--gold));
  width:0%;
  z-index:9999;
  transition:width .1s linear;
}

/* =============================== Header ================================= */
.site-header{
  position:fixed;top:0;left:0;right:0;
  z-index:1000;
  padding:20px 0;
  background:var(--cream);
  box-shadow:0 8px 30px -12px rgba(46,23,16,.18);
  transition:padding .4s var(--ease),box-shadow .4s var(--ease);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;}
.site-header.scrolled{
  padding:12px 0;
  box-shadow:0 10px 34px -12px rgba(46,23,16,.24);
}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{height:42px;width:auto;}
.nav-links{display:flex;align-items:center;gap:38px;}
.nav-links a{
  font-size:.82rem;
  font-weight:500;
  letter-spacing:.05em;
  text-transform:uppercase;
  position:relative;
  padding:6px 0;
  color:var(--brown-900);
  transition:color .3s ease;
}
.nav-links a::after{
  content:'';
  position:absolute;left:0;bottom:0;
  width:0;height:1px;
  background:var(--gold);
  transition:width .35s var(--ease);
}
.nav-links a:hover::after,
.nav-links a.active::after{width:100%;}
.nav-links a.active{color:var(--copper);}
.nav-cta{display:flex;align-items:center;gap:18px;}
.nav-cta .btn{padding:12px 24px;font-size:.74rem;}
.nav-toggle{
  display:none;
  width:30px;height:22px;
  position:relative;
  flex-direction:column;
  justify-content:space-between;
  z-index:1100;
}
.nav-toggle span{
  display:block;height:2px;width:100%;
  background:var(--brown-900);
  transition:all .35s var(--ease);
}
.nav-toggle.open span:nth-child(1){transform:translateY(10px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-10px) rotate(-45deg);}
.nav-toggle.open span{background:var(--brown-900) !important;}

/* =============================== Hero ==================================== */
.hero{
  position:relative;
  height:100vh;
  min-height:640px;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:var(--white);
}
.hero-bg{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.12);
  animation:heroZoom 22s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes heroZoom{
  0%{transform:scale(1.12) translate(0,0);}
  100%{transform:scale(1.02) translate(-1%,-1%);}
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,10,6,.55) 0%,rgba(20,10,6,.42) 40%,rgba(18,9,5,.82) 100%);
}
.hero-float{
  position:absolute;
  border:1px solid rgba(230,196,130,.35);
  border-radius:50%;
  pointer-events:none;
}
.hero-float.f1{width:220px;height:220px;top:14%;left:6%;animation:floaty 9s ease-in-out infinite;}
.hero-float.f2{width:120px;height:120px;bottom:18%;right:10%;animation:floaty 7s ease-in-out infinite reverse;}
.hero-float.f3{width:70px;height:70px;top:38%;right:22%;animation:floaty 11s ease-in-out infinite;}
@keyframes floaty{
  0%,100%{transform:translateY(0) translateX(0);}
  50%{transform:translateY(-22px) translateX(10px);}
}
.hero-content{position:relative;z-index:3;max-width:760px;}
.hero-content .eyebrow{color:var(--gold-light);}
.hero-content .eyebrow::before{background:var(--gold-light);}
.hero-content h1{
  font-size:clamp(2.6rem,6vw,4.6rem);
  color:var(--white);
  margin-bottom:22px;
  opacity:0;
  transform:translateY(24px);
  animation:heroUp 1s var(--ease) .2s forwards;
}
.hero-content h1 em{
  font-style:italic;
  color:var(--gold-light);
}
.hero-content p{
  font-size:1.12rem;
  color:rgba(255,255,255,.86);
  max-width:560px;
  margin-bottom:38px;
  opacity:0;
  transform:translateY(24px);
  animation:heroUp 1s var(--ease) .4s forwards;
}
.hero-btns{
  display:flex;gap:18px;flex-wrap:wrap;
  opacity:0;
  transform:translateY(24px);
  animation:heroUp 1s var(--ease) .6s forwards;
}
@keyframes heroUp{to{opacity:1;transform:translateY(0);}}
.scroll-indicator{
  position:absolute;bottom:38px;left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  color:rgba(255,255,255,.75);
  font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;
}
.scroll-indicator .line{
  width:1px;height:44px;
  background:linear-gradient(180deg,rgba(255,255,255,.8),transparent);
  position:relative;
  overflow:hidden;
}
.scroll-indicator .line::after{
  content:'';
  position:absolute;top:-100%;left:0;
  width:100%;height:100%;
  background:var(--gold-light);
  animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{top:-100%;}
  60%{top:100%;}
  100%{top:100%;}
}

/* small page hero (non-home) */
.page-hero{
  position:relative;
  height:56vh;
  min-height:420px;
  display:flex;
  align-items:center;
  color:var(--white);
  overflow:hidden;
}
.page-hero .hero-bg{animation:none;transform:scale(1.05);}
.page-hero-content{position:relative;z-index:3;}
.page-hero-content .eyebrow{color:var(--gold-light);}
.page-hero-content .eyebrow::before{background:var(--gold-light);}
.page-hero-content h1{color:var(--white);font-size:clamp(2.2rem,5vw,3.4rem);}
.breadcrumb{
  margin-top:18px;
  font-size:.82rem;
  color:rgba(255,255,255,.75);
  display:flex;gap:8px;align-items:center;
}

/* ========================== Why choose us cards =========================== */
.cards-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.glass-card{
  position:relative;
  padding:42px 32px;
  border-radius:var(--radius-md);
  background:rgba(255,255,255,.55);
  border:1px solid rgba(198,161,91,.28);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow-soft);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s ease;
  overflow:hidden;
}
.glass-card::before{
  content:'';
  position:absolute;inset:0;
  padding:1px;
  border-radius:var(--radius-md);
  background:linear-gradient(135deg,var(--gold),transparent 40%,transparent 60%,var(--copper));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:0;
  transition:opacity .5s ease;
}
.glass-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-lift);}
.glass-card:hover::before{opacity:1;}
.card-icon{
  width:58px;height:58px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--copper),var(--brown-800));
  color:var(--ivory);
  margin-bottom:22px;
}
.card-icon svg{width:26px;height:26px;}
.glass-card h3{font-size:1.24rem;margin-bottom:10px;}
.glass-card p{color:var(--ink-soft);font-size:.94rem;}

/* ============================= Product cards ============================= */
.products-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.product-card{
  position:relative;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  background:var(--white);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.product-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift);}
.product-media{
  position:relative;
  height:280px;
  overflow:hidden;
}
.product-media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease);
}
.product-card:hover .product-media img{transform:scale(1.1);}
.product-media::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(23,12,8,.72) 100%);
}
.product-tag{
  position:absolute;top:18px;left:18px;z-index:2;
  background:rgba(250,246,238,.92);
  color:var(--brown-900);
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 14px;border-radius:2px;font-weight:600;
}
.product-body{padding:26px 26px 30px;}
.product-body h3{font-size:1.26rem;margin-bottom:8px;}
.product-body p{color:var(--ink-soft);font-size:.92rem;margin-bottom:18px;}
.product-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--copper);
  position:relative;
}
.product-link svg{width:16px;height:16px;transition:transform .35s var(--ease);}
.product-card:hover .product-link svg{transform:translateX(6px);}

/* ============================= Services list ============================= */
.services-wrap{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
  background:var(--beige);
  border-radius:var(--radius-md);
  overflow:hidden;
}
.service-item{
  background:var(--ivory);
  padding:36px 30px;
  transition:background .4s ease;
}
.service-item:hover{background:var(--cream);}
.service-item .num{
  font-family:var(--font-head);
  font-size:.85rem;
  color:var(--gold);
  letter-spacing:.1em;
}
.service-item h4{margin-top:10px;margin-bottom:8px;font-size:1.08rem;}
.service-item p{color:var(--ink-soft);font-size:.88rem;}

/* =============================== Timeline ================================ */
.timeline{
  position:relative;
  max-width:900px;
  margin:0 auto;
}
.timeline::before{
  content:'';
  position:absolute;
  left:50%;top:0;bottom:0;
  width:1px;
  background:linear-gradient(180deg,transparent,var(--gold) 8%,var(--gold) 92%,transparent);
  transform:translateX(-50%);
}
.timeline-step{
  position:relative;
  display:grid;
  grid-template-columns:1fr 70px 1fr;
  align-items:center;
  margin-bottom:64px;
}
.timeline-step:last-child{margin-bottom:0;}
.timeline-dot{
  grid-column:2;
  width:16px;height:16px;
  background:var(--ivory);
  border:2px solid var(--copper);
  border-radius:50%;
  margin:0 auto;
  position:relative;
  z-index:2;
  transition:background .4s ease,transform .4s ease;
}
.timeline-step.in-view .timeline-dot{background:var(--gold);transform:scale(1.3);}
.timeline-card{
  background:var(--white);
  border-radius:var(--radius-md);
  padding:30px 32px;
  box-shadow:var(--shadow-soft);
}
.timeline-step:nth-child(odd) .timeline-card{grid-column:1;text-align:right;}
.timeline-step:nth-child(even) .timeline-card{grid-column:3;text-align:left;}
.timeline-step:nth-child(odd){grid-template-columns:1fr 70px 1fr;}
.timeline-num{
  font-family:var(--font-head);
  font-size:.78rem;
  letter-spacing:.16em;
  color:var(--copper);
  text-transform:uppercase;
}
.timeline-card h3{font-size:1.3rem;margin:8px 0 8px;}
.timeline-card p{color:var(--ink-soft);font-size:.92rem;}

/* =============================== Gallery ================================== */
.gallery-filters{
  display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:48px;
}
.filter-btn{
  padding:11px 24px;
  border:1px solid var(--beige);
  border-radius:2px;
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--ink-soft);
  transition:all .35s var(--ease);
}
.filter-btn:hover{border-color:var(--copper);color:var(--copper);}
.filter-btn.active{
  background:var(--brown-900);
  border-color:var(--brown-900);
  color:var(--ivory);
}
.masonry{
  columns:3 260px;
  column-gap:22px;
}
.masonry-item{
  break-inside:avoid;
  margin-bottom:22px;
  position:relative;
  border-radius:var(--radius-md);
  overflow:hidden;
  cursor:pointer;
  box-shadow:var(--shadow-soft);
  opacity:0;
  transform:translateY(30px) scale(.98);
  transition:opacity .3s ease, transform .3s ease;
}
.masonry-item.show{opacity:1;transform:translateY(0) scale(1);}
.masonry-item.hide{display:none;}
.masonry-item img{
  width:100%;display:block;
  transition:transform .8s var(--ease);
}
.masonry-item:hover img{transform:scale(1.08);}
.masonry-caption{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:24px;
  background:linear-gradient(180deg,transparent 45%,rgba(20,10,6,.85) 100%);
  opacity:0;
  transition:opacity .4s ease;
}
.masonry-item:hover .masonry-caption{opacity:1;}
.masonry-caption span{
  color:var(--gold-light);
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
}
.masonry-caption h4{color:var(--white);font-size:1.1rem;margin-top:4px;}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;z-index:2000;
  background:rgba(15,8,5,.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .4s ease;
}
.lightbox.open{opacity:1;pointer-events:all;}
.lightbox img{
  max-width:86vw;max-height:82vh;
  border-radius:8px;
  box-shadow:0 30px 90px rgba(0,0,0,.6);
  transform:scale(.92);
  transition:transform .4s var(--ease);
}
.lightbox.open img{transform:scale(1);}
.lightbox-close{
  position:absolute;top:32px;right:36px;
  color:var(--white);font-size:1.6rem;
  width:48px;height:48px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s ease,transform .3s ease;
}
.lightbox-close:hover{background:rgba(255,255,255,.12);transform:rotate(90deg);}

/* =============================== Stats ==================================== */
.stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:2px;background:rgba(230,196,130,.18);
  border-radius:var(--radius-md);overflow:hidden;
}
.stat-item{
  background:var(--brown-900);
  padding:48px 24px;
  text-align:center;
}
.stat-num{
  font-family:var(--font-head);
  font-size:clamp(2.4rem,4vw,3.4rem);
  color:var(--gold-light);
  font-weight:700;
}
.stat-label{
  margin-top:8px;
  font-size:.84rem;
  letter-spacing:.06em;
  color:rgba(250,246,238,.8);
}

/* ============================= Testimonials ================================ */
.testi-track{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.testi-card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(230,196,130,.22);
  border-radius:var(--radius-md);
  padding:38px 32px;
  backdrop-filter:blur(8px);
  transition:transform .5s var(--ease);
}
.testi-card:hover{transform:translateY(-8px);}
.stars{color:var(--gold-light);letter-spacing:2px;margin-bottom:18px;font-size:.95rem;}
.testi-card p{font-family:var(--font-head);font-style:italic;font-size:1.14rem;color:var(--ivory);margin-bottom:22px;}
.testi-name{font-size:.84rem;color:var(--gold-light);letter-spacing:.06em;}
.testi-role{font-size:.76rem;color:rgba(250,246,238,.6);}

/* =========================== CTA Full Width ================================ */
.cta-section{
  position:relative;
  padding:130px 0;
  text-align:center;
  color:var(--white);
  overflow:hidden;
}
.cta-section .hero-bg{transform:scale(1.05);}
.cta-section h2{color:var(--white);font-size:clamp(2.2rem,4.4vw,3.4rem);margin-bottom:18px;}
.cta-section p{color:rgba(255,255,255,.85);max-width:560px;margin:0 auto 40px;font-size:1.08rem;}
.cta-btns{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}

/* =========================== FAQ ================================ */
.faq-list{max-width:820px;margin:0 auto;}
.faq-item{
  border-bottom:1px solid var(--beige);
}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 4px;
  cursor:pointer;
  font-family:var(--font-head);
  font-size:1.12rem;
  color:var(--brown-900);
}
.faq-q .plus{
  width:26px;height:26px;
  border:1px solid var(--copper);
  border-radius:50%;
  position:relative;
  flex-shrink:0;
  margin-left:20px;
  transition:transform .4s var(--ease),background .4s ease;
}
.faq-q .plus::before,.faq-q .plus::after{
  content:'';position:absolute;background:var(--copper);
  top:50%;left:50%;transform:translate(-50%,-50%);
}
.faq-q .plus::before{width:10px;height:1px;}
.faq-q .plus::after{width:1px;height:10px;transition:opacity .3s ease;}
.faq-item.open .plus{transform:rotate(180deg);background:var(--copper);}
.faq-item.open .plus::before,.faq-item.open .plus::after{background:var(--ivory);}
.faq-item.open .plus::after{opacity:0;}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .5s var(--ease);
}
.faq-a p{padding:0 4px 26px;color:var(--ink-soft);max-width:680px;}

/* ============================ Newsletter =============================== */
.newsletter{
  background:var(--cream);
  border-radius:var(--radius-lg);
  padding:64px 60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  flex-wrap:wrap;
}
.newsletter h3{font-size:1.7rem;max-width:380px;}
.newsletter p{color:var(--ink-soft);margin-top:10px;}
.newsletter-form{display:flex;gap:0;min-width:360px;flex:1;max-width:440px;}
.newsletter-form input{
  flex:1;
  padding:16px 20px;
  border:1px solid var(--beige);
  border-right:none;
  background:var(--white);
  border-radius:2px 0 0 2px;
  font-size:.92rem;
}
.newsletter-form input:focus{outline:none;border-color:var(--copper);}
.newsletter-form button{
  padding:0 30px;
  background:var(--brown-900);
  color:var(--ivory);
  border-radius:0 2px 2px 0;
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;
  transition:background .3s ease;
}
.newsletter-form button:hover{background:var(--copper);}

/* ============================= Trusted / brands ============================ */
.brands-row{
  display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;
  gap:60px;
  opacity:.6;
}
.brands-row span{
  font-family:var(--font-head);
  font-style:italic;
  font-size:1.3rem;
  color:var(--brown-800);
  letter-spacing:.02em;
}

/* ============================= Before/After ============================== */
.ba-wrap{
  max-width:900px;margin:0 auto;
  position:relative;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  aspect-ratio:16/9;
  cursor:ew-resize;
}
.ba-wrap img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.ba-before{z-index:1;}
.ba-after{z-index:2;clip-path:inset(0 50% 0 0);}
.ba-handle{
  position:absolute;top:0;bottom:0;left:50%;
  width:2px;background:var(--gold-light);
  z-index:3;
  transform:translateX(-50%);
}
.ba-handle::after{
  content:'⟷';
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:52px;height:52px;
  background:var(--white);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--brown-900);
  box-shadow:var(--shadow-soft);
  font-size:1.2rem;
}
.ba-label{
  position:absolute;top:20px;
  padding:8px 16px;
  background:rgba(20,10,6,.6);
  color:var(--white);
  font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  border-radius:2px;
  z-index:4;
}
.ba-label.before{left:20px;}
.ba-label.after{right:20px;}

/* ============================== Footer ================================== */
.site-footer{
  background:var(--cream);
  color:var(--ink-soft);
  padding:90px 0 0;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1.2fr;
  gap:50px;
  padding-bottom:60px;
  border-bottom:1px solid rgba(74,44,31,.14);
}
.footer-brand img{height:44px;margin-bottom:18px;}
.footer-brand p{max-width:300px;font-size:.9rem;color:var(--ink-soft);margin-bottom:22px;}
.footer-social{display:flex;gap:12px;}
.footer-social a{
  width:38px;height:38px;
  border:1px solid rgba(74,44,31,.28);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--brown-800);
  transition:background .3s ease,border-color .3s ease,transform .3s ease,color .3s ease;
}
.footer-social a:hover{background:var(--copper);border-color:var(--copper);color:var(--white);transform:translateY(-4px);}
.footer-social svg{width:16px;height:16px;}
.footer-col h4{
  color:var(--copper);
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  font-family:var(--font-body);font-weight:600;
  margin-bottom:22px;
}
.footer-col ul li{margin-bottom:12px;}
.footer-col ul li a{font-size:.9rem;color:var(--brown-800);transition:color .3s ease,padding-left .3s ease;}
.footer-col ul li a:hover{color:var(--copper);padding-left:6px;}
.footer-col address{font-style:normal;font-size:.9rem;line-height:1.8;color:var(--brown-800);}
.footer-col address a{color:var(--brown-800);}
.footer-bottom{
  padding:26px 0;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  font-size:.8rem;color:var(--ink-soft);
}
.footer-bottom a{color:var(--ink-soft);}

/* ============================== Forms ==================================== */
.contact-layout{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:60px;
}
.contact-info-card{
  background:var(--brown-900);
  color:var(--ivory);
  border-radius:var(--radius-lg);
  padding:48px 40px;
}
.contact-info-card h3{color:var(--ivory);font-size:1.5rem;margin-bottom:26px;}
.info-row{display:flex;gap:16px;margin-bottom:26px;align-items:flex-start;}
.info-row .ic{
  width:42px;height:42px;flex-shrink:0;
  border-radius:50%;
  background:linear-gradient(135deg,var(--copper),var(--brown-700));
  display:flex;align-items:center;justify-content:center;
}
.info-row .ic svg{width:18px;height:18px;}
.info-row h5{font-size:.92rem;color:var(--gold-light);margin-bottom:4px;letter-spacing:.04em;}
.info-row p, .info-row a{font-size:.9rem;color:rgba(250,246,238,.82);}
.map-embed{
  margin-top:30px;border-radius:var(--radius-md);overflow:hidden;
  border:1px solid rgba(230,196,130,.25);
}
.map-embed iframe{width:100%;height:220px;border:0;display:block;filter:grayscale(.3) sepia(.15);}

.form-card{
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:48px 44px;
  box-shadow:var(--shadow-soft);
}
.field{margin-bottom:24px;position:relative;}
.field label{
  display:block;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:10px;font-weight:500;
}
.field input,.field textarea{
  width:100%;
  padding:15px 18px;
  border:1px solid var(--beige);
  border-radius:6px;
  background:var(--ivory);
  font-size:.95rem;
  color:var(--ink);
  transition:border-color .3s ease,box-shadow .3s ease;
}
.field input:focus,.field textarea:focus{
  outline:none;border-color:var(--copper);
  box-shadow:0 0 0 4px rgba(181,98,46,.12);
}
.field textarea{resize:vertical;min-height:140px;}
.form-submit{width:100%;padding:18px;font-size:.88rem;}
.form-note{margin-top:18px;font-size:.82rem;color:var(--ink-soft);text-align:center;}
.form-success{
  display:none;
  text-align:center;padding:40px 20px;
}
.form-success.show{display:block;}
.form-success .check{
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold-light),var(--gold));
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 20px;
}
.form-success h3{margin-bottom:10px;}
.form-success p{color:var(--ink-soft);}

/* ============================== AOS-style reveal =========================== */
[data-aos]{opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease);}
[data-aos="fade-up"]{transform:translateY(40px);}
[data-aos="fade-left"]{transform:translateX(-40px);}
[data-aos="fade-right"]{transform:translateX(40px);}
[data-aos="zoom-in"]{transform:scale(.9);}
[data-aos].aos-in{opacity:1;transform:translate(0,0) scale(1);}

.reveal-line{
  overflow:hidden;
}

/* ============================== Utility =================================== */
.text-center{text-align:center;}
.mt-40{margin-top:40px;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.rounded-img{border-radius:var(--radius-md);box-shadow:var(--shadow-soft);}
.img-frame{position:relative;}
.img-frame::before{
  content:'';
  position:absolute;
  top:-18px;left:-18px;
  width:120px;height:120px;
  border-top:2px solid var(--gold);
  border-left:2px solid var(--gold);
  z-index:0;
}
.img-frame img{position:relative;z-index:1;}
.tag-pill{
  display:inline-block;
  padding:8px 18px;
  background:var(--cream);
  color:var(--copper);
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  border-radius:20px;
  margin-bottom:8px;
}

/* ============================== Loader ===================================== */
.page-loader{
  position:fixed;inset:0;z-index:9998;
  background:var(--ivory);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .6s ease,visibility .6s ease;
}
.page-loader.hidden{opacity:0;visibility:hidden;}
.loader-mark{
  width:64px;height:64px;
  position:relative;
}
.loader-mark svg{width:100%;height:100%;}
.loader-mark circle{
  fill:none;stroke:var(--copper);stroke-width:2;
  stroke-dasharray:180;
  stroke-dashoffset:180;
  animation:loaderDraw 1.4s ease-in-out infinite;
}
@keyframes loaderDraw{
  0%{stroke-dashoffset:180;}
  50%{stroke-dashoffset:0;}
  100%{stroke-dashoffset:-180;}
}

/* ============================== Responsive ================================= */
@media(max-width:1080px){
  .cards-grid,.products-grid{grid-template-columns:repeat(2,1fr);}
  .services-wrap{grid-template-columns:repeat(2,1fr);}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .testi-track{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .two-col{grid-template-columns:1fr;gap:40px;}
  .contact-layout{grid-template-columns:1fr;}
}
@media(max-width:860px){
  .nav-links{
    position:fixed;top:0;right:0;
    height:100vh;width:min(78vw,340px);
    background:var(--ivory);
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding:0 44px;
    gap:30px;
    transform:translateX(100%);
    transition:transform .5s var(--ease);
    box-shadow:-20px 0 60px rgba(0,0,0,.15);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{color:var(--brown-900) !important;font-size:1rem;}
  .nav-cta{display:none;}
  .nav-toggle{display:flex;}
  .cards-grid,.products-grid,.stats-grid,.services-wrap{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:36px;}
  .masonry{columns:2 200px;}
  .timeline::before{left:20px;}
  .timeline-step,.timeline-step:nth-child(odd){grid-template-columns:0 40px 1fr;}
  .timeline-dot{grid-column:2;margin:0;}
  .timeline-step:nth-child(odd) .timeline-card,
  .timeline-step:nth-child(even) .timeline-card{grid-column:3;text-align:left;}
  .newsletter{flex-direction:column;align-items:flex-start;padding:44px 30px;}
  .newsletter-form{min-width:0;width:100%;}
}
@media(max-width:560px){
  .section{padding:74px 0;}
  .masonry{columns:1;}
  .hero-content p{font-size:1rem;}
  .contact-info-card,.form-card{padding:34px 26px;}
  .newsletter{border-radius:var(--radius-md);}
}
