:root{
    --espresso-950:#1B1512;
    --espresso-800:#2A211B;
    --espresso-700:#3B2E25;
    --copper-500:#C1712F;
    --copper-400:#DD8C46;
    --sage-700:#3E5A44;
    --sage-600:#4E7256;
    --brass-400:#CBA05C;
    --sand-50:#FAF7F1;
    --sand-100:#F1E7D6;
    --ink:#221A15;
    --muted:#665648;
    --line: rgba(42,33,27,0.13);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{font-family:'Manrope', sans-serif; background:var(--sand-50); color:var(--ink); line-height:1.65; overflow-x:hidden;}
  h1,h2,h3,h4,.font-display{font-family:'Fraunces', serif; color:var(--espresso-800); letter-spacing:-0.01em;}
  h2{font-size:clamp(1.9rem, 3.2vw, 2.7rem); font-weight:600;}
  h3{font-weight:600;}
  p{max-width:62ch;}
  a{text-decoration:none;}
  .container-xl-narrow{max-width:1200px; margin:0 auto; padding:0 1.25rem;}
  .full-bleed{width:100%;}
  section{padding:5.5rem 0;}
  @media (max-width:767px){ section{padding:3.5rem 0;} }

  .section-tag{color:var(--copper-500); font-weight:700; font-size:0.98rem; margin-bottom:0.4rem; display:block;}
  .section-head{max-width:640px; margin-bottom:2.75rem;}
  .section-head p{color:var(--muted);}
  .section-head.center{max-width:640px; margin-left:auto; margin-right:auto; text-align:center;}

  .btn-wood{background:var(--espresso-800); color:var(--sand-50); border:1px solid var(--espresso-800); padding:0.85rem 1.7rem; border-radius:3px; font-weight:700; transition:background .25s ease, transform .2s ease; display:inline-flex; align-items:center; gap:.55rem;}
  .btn-wood:hover{background:var(--espresso-700); color:var(--sand-50); transform:translateY(-2px);}
  .btn-line{background:transparent; color:var(--espresso-800); border:1.5px solid var(--espresso-800); padding:0.8rem 1.6rem; border-radius:3px; font-weight:700; transition:all .25s ease; display:inline-flex; align-items:center; gap:.55rem;}
  .btn-line:hover{background:var(--espresso-800); color:var(--sand-50);}
  .btn-line-light{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,0.6); padding:0.8rem 1.6rem; border-radius:3px; font-weight:700; transition:all .25s ease; display:inline-flex; align-items:center; gap:.55rem;}
  .btn-line-light:hover{background:#fff; color:var(--espresso-800);}
  .btn-copper{background:var(--copper-500); color:#fff; border:1px solid var(--copper-500); padding:0.9rem 1.9rem; border-radius:3px; font-weight:700; transition:background .25s ease, transform .2s ease; display:inline-flex; align-items:center; gap:.6rem;}
  .btn-copper:hover{background:var(--copper-400); color:#fff; transform:translateY(-2px);}

  /* HEADER */
  .site-header{position:sticky; top:0; z-index:1000; background:rgba(250,247,241,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
  .site-header .nav-inner{display:flex; align-items:center; justify-content:space-between;}
  .brand{display:flex; align-items:center; gap:0.65rem;}
  .brand-mark{width:42px; height:42px; border-radius:50%; background:var(--espresso-800); display:flex; align-items:center; justify-content:center; color:var(--brass-400); font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; flex-shrink:0;}
  .brand-text{line-height:1.15;}
  .brand-text .name{font-family:'Fraunces',serif; font-weight:600; font-size:1.08rem; color:var(--espresso-800); display:block;}
  .brand-text .sub{font-size:0.72rem; color:var(--copper-500); letter-spacing:0.02em;}
  .main-nav ul{list-style:none; display:flex; gap:2rem; margin:0; padding:0;}
  .main-nav a{color:var(--espresso-800); font-weight:600; font-size:0.95rem; position:relative; padding-bottom:4px;}
  .main-nav a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--copper-500); transition:width .25s ease;}
  .main-nav a:hover::after{width:100%;}
  .hamburger{display:none; background:none; border:none; font-size:1.6rem; color:var(--espresso-800); cursor:pointer;}
  @media (max-width:991px){ .main-nav, .header-cta{display:none;} .hamburger{display:block;} }

  .mobile-drawer{position:fixed; top:0; right:-320px; width:300px; max-width:82vw; height:100%; background:var(--espresso-800); color:var(--sand-100); z-index:1200; transition:right .35s cubic-bezier(.4,0,.2,1); padding:1.75rem 1.5rem; overflow-y:auto; box-shadow:-8px 0 30px rgba(0,0,0,0.25);}
  .mobile-drawer.open{right:0;}
  .drawer-overlay{position:fixed; inset:0; background:rgba(20,13,8,0.55); z-index:1150; opacity:0; pointer-events:none; transition:opacity .3s ease;}
  .drawer-overlay.open{opacity:1; pointer-events:auto;}
  .drawer-close{background:none; border:none; color:var(--sand-100); font-size:1.6rem;}
  .drawer-nav ul{list-style:none; padding:0; margin:2rem 0 0;}
  .drawer-nav li{border-bottom:1px solid rgba(250,247,241,0.14);}
  .drawer-nav a{display:block; padding:0.95rem 0.1rem; color:var(--sand-100); font-family:'Fraunces',serif; font-size:1.15rem;}
  .drawer-contact{margin-top:2rem; font-size:0.9rem; color:var(--brass-400);}
  .drawer-contact a{color:var(--brass-400); font-weight:600;}

  /* HERO - full width slider */
  .hero-full{position:relative; width:100%; height:82vh; min-height:600px; overflow:hidden;}
  .hero-full .carousel, .hero-full .carousel-inner, .hero-full .carousel-item{height:100%;}
  .hero-full .carousel-item img{width:100%; height:100%; object-fit:cover;}
  .hero-overlay{position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,15,11,0.82) 10%, rgba(20,15,11,0.5) 45%, rgba(20,15,11,0.25) 75%); z-index:2;}
  .hero-content{position:absolute; inset:0; z-index:3; display:flex; align-items:center;}
  .hero-content-inner{max-width:640px; padding:0 1.5rem; color:#fff;}
  @media (min-width:768px){ .hero-content-inner{padding:0 3.5rem;} }
  .hero-eyebrow{color:var(--brass-400); font-weight:700; margin-bottom:0.9rem; display:block; opacity:0; transform:translateY(14px); animation:riseIn .7s ease forwards; animation-delay:.05s;}
  .hero-content h1{color:#fff; font-size:clamp(2.1rem, 4.6vw, 3.6rem); font-weight:600; line-height:1.08; margin-bottom:1.25rem; opacity:0; transform:translateY(18px); animation:riseIn .8s ease forwards; animation-delay:.18s;}
  .hero-content p.lead-copy{font-size:1.08rem; color:#EFE7DA; margin-bottom:1.9rem; max-width:50ch; opacity:0; transform:translateY(18px); animation:riseIn .8s ease forwards; animation-delay:.32s;}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:2.4rem; opacity:0; transform:translateY(18px); animation:riseIn .8s ease forwards; animation-delay:.46s;}
  .hero-stats{display:flex; flex-wrap:wrap; gap:2.2rem; opacity:0; transform:translateY(18px); animation:riseIn .8s ease forwards; animation-delay:.6s;}
  .hero-stats .stat b{font-family:'Fraunces',serif; font-size:1.5rem; color:#fff; display:block;}
  .hero-stats .stat span{font-size:0.83rem; color:#D8CCBB;}
  @keyframes riseIn{ to{opacity:1; transform:translateY(0);} }
  .hero-full .carousel-indicators{z-index:4; margin-bottom:1.6rem;}
  .hero-full .carousel-indicators [data-bs-target]{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,0.5); opacity:1; margin:0 4px;}
  .hero-full .carousel-indicators .active{background:var(--copper-500);}

  /* trust strip */
  .trust-strip{background:var(--espresso-800); color:var(--brass-400); padding:1.6rem 0;}
  .trust-strip .row > div{border-right:1px solid rgba(250,247,241,0.16); text-align:center; padding:0.4rem 0.6rem;}
  .trust-strip .row > div:last-child{border-right:none;}
  .trust-strip b{font-family:'Fraunces',serif; color:#fff; font-size:1.35rem; display:block;}
  .trust-strip span{font-size:0.8rem;}
  @media (max-width:767px){ .trust-strip .row > div{border-right:none; border-bottom:1px solid rgba(250,247,241,0.16); margin-bottom:.6rem; padding-bottom:1rem;} }

  .reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ABOUT */
  .about-media{position:relative;}
  .about-media img{width:100%; border-radius:4px; display:block;}
  .about-media .badge-years{position:absolute; bottom:-22px; left:-22px; background:var(--sage-600); color:#fff; padding:1rem 1.2rem; border-radius:3px; text-align:center; box-shadow:0 14px 30px -12px rgba(27,21,18,0.5);}
  .about-media .badge-years b{display:block; font-family:'Fraunces',serif; font-size:1.6rem;}
  .about-media .badge-years span{font-size:0.75rem;}
  @media (max-width:767px){ .about-media .badge-years{left:12px; bottom:-16px; padding:.8rem 1rem;} }
  .about-list{list-style:none; padding:0; margin:1.5rem 0;}
  .about-list li{display:flex; gap:0.7rem; margin-bottom:0.75rem; align-items:flex-start;}
  .about-list i{color:var(--copper-500); margin-top:3px;}

  /* BG IMAGE SECTIONS */
  .bg-image-section{position:relative; background-size:cover; background-position:center; background-attachment:scroll; color:#fff;}
  .bg-image-section .bg-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(27,21,18,0.88), rgba(27,21,18,0.82));}
  .bg-image-section .container-xl-narrow{position:relative; z-index:2;}
  .bg-image-section .section-tag{color:var(--brass-400);}
  .bg-image-section h2{color:#fff;}
  .bg-image-section .section-head p{color:#D8CCBB;}

  .feature-item{display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.8rem;}
  .feature-item i{width:48px; height:48px; flex-shrink:0; border-radius:50%; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.25); display:flex; align-items:center; justify-content:center; font-size:1.15rem; color:var(--brass-400);}
  .feature-item h4{color:#fff; font-size:1.08rem; margin-bottom:0.3rem;}
  .feature-item p{color:#D8CCBB; font-size:0.93rem; margin-bottom:0;}

  /* PRODUCTS */
  .product-card{position:relative; background:var(--sand-100); border:1px solid var(--line); padding:2.1rem 1.7rem; height:100%;}
  .product-card .corner-tl, .product-card .corner-br{position:absolute; width:22px; height:22px;}
  .product-card .corner-tl{top:-1px; left:-1px; border-top:3px solid var(--copper-500); border-left:3px solid var(--copper-500);}
  .product-card .corner-br{bottom:-1px; right:-1px; border-bottom:3px solid var(--copper-500); border-right:3px solid var(--copper-500);}
  .product-icon{width:56px; height:56px; border-radius:50%; background:var(--espresso-800); color:var(--brass-400); display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:1.2rem;}
  .product-card h3{font-size:1.2rem; margin-bottom:0.6rem;}
  .product-card p{font-size:0.95rem; color:var(--muted); margin-bottom:0;}

  /* PROCESS STEPS */
  .process-step{position:relative; padding:0 0 0 0; text-align:left;}
  .process-num{font-family:'Fraunces',serif; font-size:2.4rem; color:var(--copper-500); font-weight:600; line-height:1; margin-bottom:0.8rem;}
  .process-step h4{font-size:1.1rem; margin-bottom:0.5rem;}
  .process-step p{font-size:0.93rem; color:var(--muted);}
  .process-line{display:none;}
  @media (min-width:992px){
    .process-col{position:relative;}
    .process-col:not(:last-child)::after{content:''; position:absolute; top:1.2rem; left:calc(100% - 1.2rem); width:calc(100% - 1rem); border-top:2px dashed var(--line); z-index:0;}
  }

  /* MATERIALS */
  .material-card{text-align:center;}
  .material-card img{width:100%; height:170px; object-fit:cover; border-radius:4px; margin-bottom:1rem;}
  .material-card h4{font-size:1.05rem; margin-bottom:0.4rem;}
  .material-card p{font-size:0.88rem; color:var(--muted); margin:0 auto;}

  /* MISSION / VISION */
  .mv-panel{background:var(--espresso-800); color:var(--sand-100);}
  .mv-col{padding:2.6rem 2.2rem; height:100%;}
  .mv-col + .mv-col{border-top:1px solid rgba(250,247,241,0.16);}
  @media (min-width:768px){ .mv-col + .mv-col{border-top:none; border-left:1px solid rgba(250,247,241,0.16);} }
  .mv-col i{font-size:1.7rem; color:var(--brass-400); margin-bottom:1rem; display:block;}
  .mv-col h3{color:#fff; font-size:1.4rem;}
  .mv-col p{color:var(--brass-400); max-width:46ch; opacity:.9;}

  /* CTA BAND with bg image */
  .cta-band{position:relative; background-size:cover; background-position:center; text-align:center; padding:4.5rem 0; color:#fff;}
  .cta-band .cta-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgb(62 90 68 / 34%), rgba(27, 21, 18, 0.88));}
  .cta-band .container-xl-narrow{position:relative; z-index:2;}
  .cta-band h2{color:#fff;}
  .cta-band p{color:#E4E9E4; max-width:52ch; margin:0 auto 1.8rem;}

  /* GALLERY */
  .gallery-grid{display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:1rem;}
  .gallery-item{position:relative; overflow:hidden; border:1px solid rgba(250,247,241,.2); border-radius:6px; aspect-ratio:1 / 1; background:var(--espresso-800); display:block; transition:transform .3s ease, border-color .3s ease;}
  .gallery-item img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease, filter .3s ease;}
  .gallery-item:hover, .gallery-item:focus-visible{transform:translateY(-4px); border-color:var(--copper-500);}
  .gallery-item:hover img, .gallery-item:focus-visible img{transform:scale(1.06); filter:brightness(.78);}
  .gallery-item:focus-visible{outline:3px solid var(--copper-500); outline-offset:3px;}
  .gallery-lightbox{position:fixed; inset:0; z-index:1300; display:flex; align-items:center; justify-content:center; padding:3rem 5rem; background:rgba(20,15,11,.94);}
  .gallery-lightbox[hidden]{display:none;}
  .lightbox-figure{margin:0; max-width:min(1100px, 88vw); max-height:90vh; text-align:center;}
  .lightbox-figure img{display:block; max-width:100%; max-height:78vh; object-fit:contain; margin:0 auto;}
  .lightbox-close, .lightbox-arrow{position:absolute; border:1px solid rgba(250,247,241,.35); background:rgba(250,247,241,.1); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s ease, color .2s ease;}
  .lightbox-close:hover, .lightbox-arrow:hover, .lightbox-close:focus-visible, .lightbox-arrow:focus-visible{background:var(--copper-500); border-color:var(--copper-500);}
  .lightbox-close{top:1.25rem; right:1.5rem; width:42px; height:42px; border-radius:50%; font-size:1.1rem;}
  .lightbox-arrow{top:50%; width:48px; height:48px; border-radius:50%; font-size:1.35rem;}
  .lightbox-prev{left:1.5rem;}
  .lightbox-next{right:1.5rem;}
  @media (max-width:991px){ .gallery-grid{grid-template-columns:repeat(4, minmax(0, 1fr));} }
  @media (max-width:767px){ .gallery-grid{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.75rem;} .gallery-lightbox{padding:3rem 1rem;} .lightbox-arrow{width:40px; height:40px;} .lightbox-prev{left:.75rem;} .lightbox-next{right:.75rem;} }
  @media (max-width:420px){ .gallery-grid{grid-template-columns:1fr;} }

  /* TESTIMONIALS */
  .testimonial-card{background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.18); border-radius:6px; padding:2rem; height:100%;}
  .testimonial-card i.quote-icon{color:var(--brass-400); font-size:1.6rem; margin-bottom:1rem; display:block;}
  .testimonial-card p{color:#EFE7DA; font-size:0.97rem;}
  .testimonial-name{font-family:'Fraunces',serif; color:#fff; font-weight:600; margin-top:1.2rem;}
  .testimonial-loc{color:var(--brass-400); font-size:0.82rem;}
  .stars{color:var(--copper-400); font-size:0.85rem; margin-bottom:0.6rem;}

  /* SERVICE AREAS */
  .area-chip{display:inline-flex; align-items:center; gap:0.5rem; background:var(--sand-100); border:1px solid var(--line); padding:0.55rem 1.1rem; border-radius:30px; font-size:0.9rem; font-weight:600; color:var(--espresso-800); margin:0 0.5rem 0.7rem 0;}
  .area-chip i{color:var(--copper-500);}

  /* FAQ */
  .accordion-item{background:transparent; border:none; border-bottom:1px solid var(--line);}
  .accordion-button{background:transparent; font-family:'Fraunces',serif; font-weight:600; color:var(--espresso-800); font-size:1.08rem; padding:1.3rem 0.2rem; box-shadow:none !important;}
  .accordion-button:not(.collapsed){color:var(--copper-500); background:transparent;}
  .accordion-button::after{filter:sepia(1) saturate(3) hue-rotate(-15deg);}
  .accordion-body{padding:0 0.2rem 1.4rem; color:var(--muted);}

  /* CONTACT */
  .contact-panel{background:var(--sand-100); padding:2.4rem; border-radius:4px; border:1px solid var(--line);}
  .form-control{border-radius:3px; border:1px solid var(--line); padding:0.75rem 0.9rem; background:#fff;}
  .form-control:focus{border-color:var(--copper-500); box-shadow:0 0 0 3px rgba(193,113,47,0.15);}
  label{font-weight:700; font-size:0.9rem; margin-bottom:0.35rem; color:var(--espresso-800);}
  .contact-info-item{display:flex; gap:1rem; margin-bottom:1.5rem; align-items:flex-start;}
  .contact-info-item i{width:42px; height:42px; flex-shrink:0; border-radius:50%; background:var(--espresso-800); color:var(--brass-400); display:flex; align-items:center; justify-content:center; font-size:1.1rem;}
  .contact-info-item b{display:block; color:var(--espresso-800); font-family:'Fraunces',serif;}

  /* FULL WIDTH MAP */
  .map-full{width:100%; height:420px; border:0; display:block;}
  .map-section-head{padding:3rem 0 1.5rem;}
  @media (max-width:767px){ .map-full{height:300px;} }

  /* FOOTER - compact */
  footer.site-footer{background:var(--espresso-950); color:var(--brass-400); padding:2.6rem 0 0;}
  footer.site-footer .footer-row{display:flex; flex-wrap:wrap; gap:1.5rem 2.5rem; align-items:flex-start; justify-content:space-between; padding-bottom:1.6rem;}
  footer.site-footer .f-brand{display:flex; align-items:center; gap:0.6rem;}
  footer.site-footer .f-links{display:flex; flex-wrap:wrap; gap:1.2rem; list-style:none; padding:0; margin:0;}
  footer.site-footer .f-links a{color:var(--brass-400); font-size:0.9rem; font-weight:600;}
  footer.site-footer .f-links a:hover{color:#fff;}
  footer.site-footer .f-contact{font-size:0.86rem; color:#C9B99E; display:flex; flex-wrap:wrap; gap:1.2rem;}
  footer.site-footer .f-contact a{color:#C9B99E;}
  .social-row a{width:34px; height:34px; border:1px solid rgba(250,247,241,0.25); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; margin-right:0.5rem; color:var(--brass-400);}
  .social-row a:hover{background:var(--brass-400); border-color:var(--brass-400); color:var(--espresso-950);}
  .footer-bottom{border-top:1px solid rgba(250,247,241,0.12); padding:1rem 0; font-size:0.82rem; text-align:center; color:#9C8B79; display:flex; flex-wrap:wrap; gap:0.4rem; justify-content:center;}
  .footer-bottom a{color:var(--brass-400); font-weight:700;}
  .footer-bottom a:hover{color:#fff;}

  /* WhatsApp floating button */
  .wa-float{position:fixed; bottom:22px; right:22px; z-index:900; width:58px; height:58px; border-radius:50%; background:var(--sage-600); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.7rem; box-shadow:0 12px 26px -8px rgba(27,21,18,0.55); animation:pulseWA 2.6s ease-in-out infinite;}
  @keyframes pulseWA{ 0%,100%{box-shadow:0 12px 26px -8px rgba(27,21,18,0.55);} 50%{box-shadow:0 12px 26px -8px rgba(78,114,86,0.75), 0 0 0 8px rgba(78,114,86,0.12);} }

  @media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} }
