:root{
  --font-display:'Playfair Display', serif;
  --font-body:'Open Sans', sans-serif;

  --text-xs:0.75rem;
  --text-sm:0.875rem;
  --text-base:1.0625rem;
  --text-lg:1.25rem;
  --text-xl:1.5rem;
  --text-2xl:2rem;
  --text-3xl:2.75rem;
  --text-hero:clamp(2.75rem, 6vw, 5rem);

  --gold-100:hsl(42,48%,90%);
  --gold-200:hsl(41,46%,80%);
  --gold-300:hsl(40,48%,68%);
  --gold-400:hsl(39,50%,57%);
  --gold-500:hsl(38,54%,48%);
  --gold-600:hsl(36,58%,40%);
  --gold-700:hsl(34,60%,32%);

  --cream:hsl(42,30%,95%);
  --cream-deep:hsl(40,26%,91%);
  --paper:hsl(44,40%,98%);

  --ink-900:hsl(28,14%,9%);
  --ink-800:hsl(28,12%,13%);
  --ink-700:hsl(28,10%,18%);
  --ink-600:hsl(28,9%,26%);

  --stone-400:hsl(34,8%,52%);

  --text-primary:hsl(28,16%,12%);
  --text-secondary:hsl(30,9%,34%);
  --text-tertiary:hsl(32,8%,50%);

  --on-dark-1:hsl(42,28%,94%);
  --on-dark-2:hsl(38,12%,72%);
  --on-dark-3:hsl(34,9%,52%);

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px;
  --sp-6:24px; --sp-8:32px; --sp-12:48px; --sp-16:64px;
  --sp-20:80px; --sp-24:96px; --sp-32:128px;

  --shadow-sm:0 4px 14px hsl(28 20% 20% / .08);
  --shadow-md:0 14px 40px hsl(28 20% 20% / .12);
  --shadow-lg:0 30px 70px hsl(28 25% 15% / .22);

  --radius:3px;
  --section-pad:var(--sp-32);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--font-body);background:var(--cream);color:var(--text-primary);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.12;letter-spacing:-0.01em;color:var(--text-primary)}

.wrap{max-width:1240px;margin:0 auto;padding:0 var(--sp-8)}
.section{padding:var(--section-pad) 0}
.section.alt{background:var(--cream-deep)}

.skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--ink-900);color:var(--gold-300);padding:12px 20px}
.skip:focus{left:12px;top:12px}

:focus-visible{outline:2px solid var(--gold-500);outline-offset:3px}

.eyebrow{font-weight:600;font-size:var(--text-xs);letter-spacing:0.32em;text-transform:uppercase;color:var(--gold-600);display:inline-flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.eyebrow::before{content:"";width:42px;height:1px;background:var(--gold-500)}
.eyebrow.center{justify-content:center}
.sec-num{font-family:var(--font-display);font-style:italic;font-size:var(--text-xl);color:var(--gold-500);display:block;margin-bottom:var(--sp-2)}
.sig{font-family:var(--font-display);font-style:italic;font-size:var(--text-xl);color:var(--gold-600);margin-top:var(--sp-6)}

/* Buttons */
.btn{font-weight:600;font-size:var(--text-xs);letter-spacing:0.2em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:0 34px;height:56px;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:transform .25s cubic-bezier(.2,.7,.3,1), background .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease}
.btn-primary{background:var(--ink-900);color:var(--gold-300);border-color:var(--ink-900)}
.btn-primary:hover{background:var(--gold-500);color:var(--ink-900);border-color:var(--gold-500);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.btn-primary:active{transform:translateY(0)}
.btn-gold{background:var(--gold-500);color:var(--ink-900);border-color:var(--gold-500)}
.btn-gold:hover{background:var(--gold-400);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.btn-gold:active{transform:translateY(0)}
.btn-outline{background:transparent;color:var(--on-dark-1);border-color:hsl(42 28% 94% / .4)}
.btn-outline:hover{border-color:var(--gold-400);color:var(--gold-300);transform:translateY(-3px)}
.btn-outline-dark{background:transparent;color:var(--ink-900);border-color:hsl(28 14% 9% / .3)}
.btn-outline-dark:hover{border-color:var(--gold-600);color:var(--gold-700);transform:translateY(-3px)}
.center-action{text-align:center;margin-top:var(--sp-16)}

/* Top bar */
.topbar{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px clamp(20px,4vw,52px);background:hsl(42 30% 95% / .84);backdrop-filter:blur(12px);border-bottom:1px solid hsl(28 14% 9% / .07);transition:padding .35s ease, background .35s ease, box-shadow .35s ease}
.topbar.scrolled{padding:9px clamp(20px,4vw,52px);background:hsl(42 32% 96% / .97);box-shadow:var(--shadow-sm)}
.brand{display:flex;align-items:center;gap:var(--sp-4)}
.brand img{height:50px;width:auto;transition:height .35s ease}
.topbar.scrolled .brand img{height:40px}
.brand-wordmark{display:flex;flex-direction:column;line-height:1}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl)}
.brand-tag{font-size:9px;letter-spacing:0.34em;text-transform:uppercase;color:var(--gold-600);font-weight:600;margin-top:5px}
.nav{display:flex;align-items:center;gap:var(--sp-12)}
.nav-links{display:flex;gap:var(--sp-8);list-style:none}
.nav-links a{font-weight:500;font-size:var(--text-sm);letter-spacing:0.1em;text-transform:uppercase;color:var(--text-secondary);position:relative;padding:6px 0;transition:color .25s ease}
.nav-links a::after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--gold-500);transition:width .3s ease}
.nav-links a:hover{color:var(--text-primary)}
.nav-links a:hover::after{width:100%}
.nav-links a.active{color:var(--text-primary)}
.nav-links a.active::after{width:100%}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:6px;padding:8px}
.menu-toggle span{width:26px;height:1.5px;background:var(--ink-900);transition:.3s}
.menu-toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* Home hero */
.hero{position:relative;min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;overflow:hidden}
.hero-left{display:flex;flex-direction:column;justify-content:center;padding:140px clamp(28px,5vw,88px) 90px;background:var(--cream);position:relative;z-index:2}
.hero-left::after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,hsl(28 14% 9% / .12),transparent)}
.hero-logo-plate{align-self:flex-start;background:var(--paper);padding:var(--sp-6) var(--sp-8);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid hsl(28 14% 9% / .05);margin-bottom:var(--sp-12)}
.hero-logo-plate img{height:120px;width:auto}
.hero h1{font-size:var(--text-hero);font-weight:700;margin-bottom:var(--sp-6);letter-spacing:-0.02em}
.hero h1 em{font-style:italic;font-weight:500;color:var(--gold-600)}
.hero-sub{font-size:var(--text-lg);color:var(--text-secondary);max-width:48ch;margin-bottom:var(--sp-12)}
.hero-cta{display:flex;gap:var(--sp-4);flex-wrap:wrap}
.hero-right{position:relative;overflow:hidden;z-index:1}
.hero-img{position:absolute;inset:-8% 0 0 0;background:url('img/exterior-build.jpg') center/cover no-repeat;will-change:transform}
.hero-quote{position:absolute;left:var(--sp-8);right:var(--sp-8);bottom:var(--sp-8);z-index:2;padding:var(--sp-6) var(--sp-8);background:linear-gradient(135deg, hsl(42 45% 96% / .18), hsl(40 30% 72% / .06));backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25);border:1px solid hsl(42 55% 92% / .32);border-radius:6px;box-shadow:inset 0 1px 0 hsl(42 55% 96% / .28), 0 10px 30px hsl(28 25% 8% / .35)}
.hero-quote p{font-family:var(--font-display);font-style:italic;font-size:var(--text-xl);color:var(--on-dark-1);line-height:1.4;max-width:32ch;text-shadow:0 1px 8px hsl(28 25% 8% / .4)}

/* Interior page hero */
.page-hero{position:relative;min-height:56vh;display:flex;align-items:flex-end;overflow:hidden;padding-top:120px}
.page-hero-img{position:absolute;inset:0;background-size:cover;background-position:center;will-change:transform}
.page-hero-veil{position:absolute;inset:0;background:linear-gradient(105deg, hsl(28 24% 6% / .88) 0%, hsl(28 22% 8% / .62) 55%, hsl(28 22% 8% / .38) 100%)}
.page-hero-inner{position:relative;z-index:2;padding-bottom:var(--sp-20);padding-top:var(--sp-16)}
.page-hero .sec-num{color:var(--gold-400);font-size:var(--text-lg)}
.page-hero .eyebrow{color:var(--gold-300)}
.page-hero .eyebrow::before{background:var(--gold-300)}
.page-hero h1{font-size:clamp(2.25rem,4.6vw,3.6rem);color:var(--on-dark-1);font-weight:700;max-width:20ch;margin-bottom:var(--sp-4);text-shadow:0 2px 18px hsl(28 25% 6% / .5)}
.page-hero p{color:var(--on-dark-2);max-width:52ch;font-size:var(--text-lg)}

/* Section heads */
.section-head{max-width:680px;margin-bottom:var(--sp-20)}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head h2{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--sp-6)}
.section-head p{color:var(--text-secondary);font-size:var(--text-lg)}

/* Intro grid */
.intro-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:var(--sp-24);align-items:center}
.intro h2{font-size:var(--text-3xl);margin-bottom:var(--sp-6);font-weight:700}
.intro p{color:var(--text-secondary);margin-bottom:var(--sp-4);max-width:58ch}
.intro .btn{margin-top:var(--sp-4)}

/* Video frames */
.video-frame{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg)}
.video-frame::after{content:"";position:absolute;inset:0;border:1px solid var(--gold-400);border-radius:var(--radius);pointer-events:none;z-index:3}
.video-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
.ratio-16-9{position:relative;padding-top:56.25%;height:0}
.ratio-4-3{position:relative;padding-top:75%;height:0}
.ratio-9-16{position:relative;padding-top:177.78%;height:0}
.ratio-9-16 iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

/* Pillars */
.services-preview{background:var(--cream-deep)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}
.pillar{background:var(--paper);padding:var(--sp-16) var(--sp-8);text-align:center;border:1px solid hsl(28 14% 9% / .06);display:block;transition:transform .35s ease, box-shadow .35s ease}
.pillar:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);z-index:2;position:relative}
.pillar-icon{width:72px;height:72px;margin:0 auto var(--sp-8);border:1px solid var(--gold-400);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold-600);transition:background .35s ease, color .35s ease, border-color .35s ease}
.pillar:hover .pillar-icon{background:var(--gold-500);color:var(--ink-900);border-color:var(--gold-500)}
.pillar-icon svg{width:34px;height:34px}
.pillar h3{font-size:var(--text-xl);margin-bottom:var(--sp-4)}
.pillar p{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.8;margin-bottom:var(--sp-6)}
.pillar-more{font-size:var(--text-xs);letter-spacing:0.2em;text-transform:uppercase;font-weight:600;color:var(--gold-600);border-bottom:1px solid var(--gold-400);padding-bottom:3px}

/* Sub services */
.subservices{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2)}
.subservice{background:var(--paper);border:1px solid hsl(28 14% 9% / .06);padding:var(--sp-8);transition:background .25s ease}
.subservice b{display:block;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;margin-bottom:var(--sp-3)}
.subservice span{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.7}
.subservice:hover{background:var(--ink-900)}
.subservice:hover b{color:var(--gold-300)}
.subservice:hover span{color:var(--on-dark-2)}

/* Feature blocks */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-24);align-items:center}
.feature.reverse .feature-media{order:2}
.feature-media{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);position:relative}
.feature-media::after{content:"";position:absolute;inset:0;border:1px solid var(--gold-400);pointer-events:none;z-index:3}
.feature-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.feature h2{font-size:var(--text-3xl);margin-bottom:var(--sp-6);font-weight:700}
.feature p{color:var(--text-secondary);margin-bottom:var(--sp-8);max-width:54ch}
.feature-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-4)}
.feature-list li{display:flex;align-items:flex-start;gap:var(--sp-4);color:var(--text-primary)}
.feature-list .ln{font-family:var(--font-display);font-style:italic;color:var(--gold-500);font-size:var(--text-lg);flex-shrink:0;width:28px}

/* Glass parallax band */
.craft-band{position:relative;min-height:80vh;display:flex;align-items:center;overflow:hidden}
.craft-bg{position:absolute;inset:0;background:url('img/block-wall.jpg') center 35%/cover no-repeat;background-attachment:fixed}
.craft-overlay{position:absolute;inset:0;background:linear-gradient(115deg, hsl(28 30% 5% / .74) 0%, hsl(28 24% 8% / .42) 55%, hsl(28 24% 8% / .25) 100%)}
.craft-inner{position:relative;z-index:2;width:100%}
.glass-card{max-width:580px;background:linear-gradient(135deg, hsl(42 45% 96% / .16), hsl(40 30% 78% / .06));backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3);border:1px solid hsl(42 55% 90% / .32);border-radius:10px;padding:var(--sp-16) var(--sp-12);box-shadow:var(--shadow-lg), inset 0 1px 0 hsl(42 55% 96% / .28)}
.glass-card .eyebrow{color:var(--gold-300)}
.glass-card .eyebrow::before{background:var(--gold-300)}
.glass-card h2{color:var(--on-dark-1);font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--sp-4);text-shadow:0 1px 10px hsl(28 25% 6% / .4)}
.glass-card p{color:var(--on-dark-2);margin-bottom:var(--sp-8);max-width:46ch}
.glass-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);border-top:1px solid hsl(42 55% 90% / .25);padding-top:var(--sp-8)}
.glass-stats b{font-family:var(--font-display);font-size:var(--text-xl);color:var(--gold-300);display:block;font-weight:600;margin-bottom:var(--sp-1)}
.glass-stats span{font-size:var(--text-xs);color:var(--on-dark-2);line-height:1.5}

/* Galleries */
.roofing-gallery{background:var(--ink-900)}
.roofing-gallery .section-head h2{color:var(--on-dark-1)}
.roofing-gallery .section-head p{color:var(--on-dark-2)}
.roofing-gallery .sec-num,.roofing-gallery .eyebrow{color:var(--gold-400)}
.roofing-gallery .eyebrow::before{background:var(--gold-400)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:var(--sp-3)}
.gallery figure{position:relative;overflow:hidden;border-radius:var(--radius)}
.gallery figure img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.gallery figure:hover img{transform:scale(1.06)}
.gallery figcaption{position:absolute;left:0;bottom:0;width:100%;padding:32px 16px 8px;font-family:var(--font-display);font-style:italic;font-size:var(--text-base);color:var(--on-dark-1);background:linear-gradient(0deg, hsl(28 18% 5% / .85), transparent)}
.g-wide{grid-column:span 2}
.g-tall{grid-row:span 2}

.gallery-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.gallery-3 figure{position:relative;overflow:hidden;border-radius:var(--radius);height:320px;box-shadow:var(--shadow-md)}
.gallery-3 figure img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.gallery-3 figure:hover img{transform:scale(1.06)}
.gallery-3 figcaption{position:absolute;left:0;bottom:0;width:100%;padding:32px 16px 10px;font-family:var(--font-display);font-style:italic;color:var(--on-dark-1);background:linear-gradient(0deg, hsl(28 18% 5% / .85), transparent)}

/* Showcase */
.showcase{background:var(--cream-deep)}
.showcase-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-24);align-items:center}
.showcase h2{font-size:var(--text-3xl);margin-bottom:var(--sp-6);font-weight:700}
.showcase p{color:var(--text-secondary);max-width:50ch}
.portrait-frame{max-width:360px;margin:0 auto;position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg)}
.portrait-frame::after{content:"";position:absolute;inset:0;border:1px solid var(--gold-400);pointer-events:none;z-index:3;border-radius:var(--radius)}

/* Why */
.why{background:var(--ink-900)}
.why .section-head h2{color:var(--on-dark-1)}
.why .section-head p{color:var(--on-dark-2)}
.why .eyebrow{color:var(--gold-400)}
.why .eyebrow::before{background:var(--gold-400)}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-8)}
.why-card{padding-top:var(--sp-6);border-top:1px solid hsl(42 28% 94% / .18)}
.why-card .wn{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);color:var(--gold-400);display:block;margin-bottom:var(--sp-4)}
.why-card b{font-family:var(--font-display);display:block;font-size:var(--text-xl);margin-bottom:var(--sp-3);font-weight:600;color:var(--on-dark-1)}
.why-card span{color:var(--on-dark-2);font-size:var(--text-sm);line-height:1.8}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-8)}
.step{padding-top:var(--sp-6);border-top:1px solid hsl(28 14% 9% / .15)}
.step .wn{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);color:var(--gold-600);display:block;margin-bottom:var(--sp-4)}
.step b{font-family:var(--font-display);display:block;font-size:var(--text-xl);margin-bottom:var(--sp-3);font-weight:600}
.step span{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.8}

/* Contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--sp-24)}
.contact h2{font-size:var(--text-3xl);margin-bottom:var(--sp-6);font-weight:700}
.contact-lead{color:var(--text-secondary);margin-bottom:var(--sp-12);max-width:46ch}
.contact-item{display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-6) 0;border-bottom:1px solid hsl(28 14% 9% / .1)}
.contact-item:first-of-type{border-top:1px solid hsl(28 14% 9% / .1)}
.ci-icon{width:46px;height:46px;flex-shrink:0;border:1px solid var(--gold-400);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold-600)}
.ci-icon svg{width:20px;height:20px}
.contact-item small{display:block;font-size:var(--text-xs);letter-spacing:0.2em;text-transform:uppercase;color:var(--text-tertiary);font-weight:600;margin-bottom:3px}
.contact-item a,.contact-item div>span{font-family:var(--font-display);font-weight:500;font-size:var(--text-xl)}
.contact-item a{word-break:break-word}
.contact-item a:hover{color:var(--gold-700)}

.cta-card{background:var(--paper);border:1px solid hsl(28 14% 9% / .07);border-radius:var(--radius);padding:var(--sp-16);box-shadow:var(--shadow-md);text-align:center;display:flex;flex-direction:column;align-items:center}
.cta-wa-icon{width:68px;height:68px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-8);box-shadow:0 10px 26px hsl(145 60% 30% / .3)}
.cta-wa-icon svg{width:36px;height:36px}
.cta-card h3{font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--sp-4)}
.cta-card p{color:var(--text-secondary);max-width:42ch;margin-bottom:var(--sp-8)}
.cta-card .btn{width:100%;max-width:340px;margin-bottom:var(--sp-4)}
.cta-note{font-size:var(--text-xs)!important;color:var(--text-tertiary)!important;margin-bottom:0!important;margin-top:var(--sp-2)}

/* CTA band */
.cta-band{background:var(--ink-900);padding:var(--sp-24) 0}
.cta-band-inner{display:grid;grid-template-columns:1.3fr .7fr;gap:var(--sp-16);align-items:center}
.cta-band .eyebrow{color:var(--gold-400)}
.cta-band .eyebrow::before{background:var(--gold-400)}
.cta-band h2{color:var(--on-dark-1);font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--sp-4)}
.cta-band p{color:var(--on-dark-2);max-width:52ch}
.cta-band-actions{display:flex;flex-direction:column;gap:var(--sp-4)}
.cta-band-actions .btn{width:100%}

/* Footer */
.footer{background:var(--ink-800);color:var(--on-dark-2);padding:var(--sp-24) 0 var(--sp-12)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--sp-12);margin-bottom:var(--sp-16)}
.footer-logo-plate{display:inline-block;background:var(--paper);padding:var(--sp-4) var(--sp-6);border-radius:var(--radius);margin-bottom:var(--sp-6)}
.footer-logo-plate img{height:72px;width:auto}
.footer p{color:var(--on-dark-3);font-size:var(--text-sm);max-width:36ch}
.footer h4{font-family:var(--font-display);font-size:var(--text-lg);color:var(--on-dark-1);margin-bottom:var(--sp-6);font-weight:600}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}
.footer ul a{color:var(--on-dark-2);font-size:var(--text-sm);transition:color .25s ease}
.footer ul a:hover{color:var(--gold-400)}
.footer-bottom{border-top:1px solid hsl(42 28% 94% / .12);padding-top:var(--sp-8);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap}
.footer-bottom small{color:var(--on-dark-3);font-size:var(--text-xs)}
.powered{font-size:var(--text-xs);color:var(--on-dark-3)}
.powered a{color:var(--gold-400);font-weight:600}

/* WhatsApp float */
.wa-float{position:fixed;right:24px;bottom:24px;z-index:200;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px hsl(145 60% 20% / .4);transition:transform .25s ease, box-shadow .25s ease}
.wa-float:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 14px 34px hsl(145 60% 20% / .5)}
.wa-float svg{width:32px;height:32px;fill:#fff}

/* 404 */
.notfound{padding-top:calc(var(--sp-32) + 60px)}
.notfound h1{font-size:var(--text-3xl);margin-bottom:var(--sp-6)}

/* Reveals */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s cubic-bezier(.2,.7,.3,1), transform .9s cubic-bezier(.2,.7,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-44px);transition:opacity .9s cubic-bezier(.2,.7,.3,1), transform .9s cubic-bezier(.2,.7,.3,1)}
.reveal-right{opacity:0;transform:translateX(44px);transition:opacity .9s cubic-bezier(.2,.7,.3,1), transform .9s cubic-bezier(.2,.7,.3,1)}
.reveal-left.visible,.reveal-right.visible{opacity:1;transform:translateX(0)}
.reveal-group .reveal:nth-child(1){transition-delay:0s}
.reveal-group .reveal:nth-child(2){transition-delay:.12s}
.reveal-group .reveal:nth-child(3){transition-delay:.24s}
.reveal-group .reveal:nth-child(4){transition-delay:.36s}

/* Responsive */
@media(max-width:980px){
  :root{--section-pad:var(--sp-20)}
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-left{padding:130px var(--sp-8) var(--sp-20)}
  .hero-left::after{display:none}
  .hero-right{min-height:60vh}
  .hero-img{inset:0}
  .intro-grid,.feature,.feature.reverse .feature-media,.showcase-grid,.contact-grid,.cta-band-inner{grid-template-columns:1fr;gap:var(--sp-16)}
  .feature.reverse .feature-media{order:0}
  .pillars{grid-template-columns:1fr}
  .subservices{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}
  .gallery-3{grid-template-columns:1fr}
  .why-grid,.steps{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .craft-bg{background-attachment:scroll}
  .craft-band{min-height:auto;padding:var(--sp-24) 0}
  .glass-card{max-width:none;padding:var(--sp-12) var(--sp-8)}
  .page-hero{min-height:44vh}
}
@media(max-width:680px){
  .nav-links{position:fixed;top:0;right:-100%;height:100vh;width:78%;max-width:330px;flex-direction:column;justify-content:center;gap:var(--sp-8);background:var(--cream);padding:var(--sp-16);box-shadow:var(--shadow-lg);transition:right .4s ease;z-index:90}
  .nav-links.open{right:0}
  .nav-links a{font-size:var(--text-lg)}
  .menu-toggle{display:flex;z-index:95}
  .nav-cta{display:none}
  .nav{gap:var(--sp-4)}
  .subservices,.why-grid,.steps{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr;grid-auto-rows:220px}
  .g-wide,.g-tall{grid-column:auto;grid-row:auto}
  .glass-stats{grid-template-columns:1fr;gap:var(--sp-4)}
  .footer-grid{grid-template-columns:1fr}
  .cta-card{padding:var(--sp-8)}
  .hero-logo-plate img{height:96px}
  .brand-tag{display:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto}
  .hero-img,.page-hero-img{transform:none!important}
}
