:root{
  --bg:#fff; --ink:#0d0d0d; --muted:#666; --line:#e6e4de;
  --text-hero: clamp(2.6rem, 2.1rem + 5.5vw, 6rem);
  --text-lg: clamp(2rem, 1.7rem + 3vw, 3.4rem);
  --text-xl: clamp(1.7rem, 1.4rem + 1.8vw, 2.6rem);
  --space-section: clamp(3.5rem, 3rem + 4vw, 7rem);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg);color:var(--ink);font-family:'Inter',sans-serif;}
h1,h2,h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;letter-spacing:-0.02em;line-height:1.02;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(1.25rem,1rem + 2vw,3rem);}
.eyebrow{font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:600;}

/* Header / Nav */
header{position:sticky;top:0;background:var(--bg);z-index:50;border-bottom:1px solid var(--line);}
nav{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 0;position:relative;}
.logo img{height:72px;}
.nav-actions{display:flex;align-items:center;gap:1rem;}
.nav-links{display:flex;gap:2.2rem;font-size:0.88rem;font-weight:600;}
.nav-links a{position:relative;}
.nav-links a.active::after, .nav-links a:hover::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--ink);}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:0.4rem;z-index:60;}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;transition:transform .25s,opacity .25s;}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.btn{display:inline-flex;align-items:center;gap:0.5rem;background:var(--ink);color:#fff;font-weight:600;font-size:0.85rem;padding:0.85rem 1.6rem;border-radius:100px;transition:transform .3s cubic-bezier(.16,1,.3,1);}
.btn:hover{transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--ink);border-radius:100px;padding:0.78rem 1.55rem;}
.btn-outline:hover{background:var(--ink);color:#fff;}
.btn-light{background:#fff;color:var(--ink);}
.btn-outline-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.55);border-radius:100px;padding:0.78rem 1.55rem;}
.btn-outline-light:hover{border-color:#fff;}

/* Home hero - full bleed photo, grayscale-duotone, stands in for future video */
.hero{position:relative;height:92vh;min-height:620px;overflow:hidden;}
.hero-media{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.15);}
.hero-media video{width:100%;height:100%;object-fit:cover;}
.hero-media::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.5) 65%, rgba(0,0,0,0.92) 100%);}
.hero-media::after{content:'';position:absolute;inset:0;opacity:0.3;background-image:repeating-linear-gradient(100deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 8px);}
.hero-content{position:absolute;left:0;right:0;bottom:0;z-index:10;padding-bottom:clamp(2.5rem,3vw,4.5rem);color:#fff;}
.hero h1{font-size:var(--text-hero);}
.type-cursor{display:inline-block;width:0.06em;height:0.85em;background:currentColor;margin-left:0.05em;vertical-align:-0.08em;animation:type-blink 0.85s step-end infinite;}
@keyframes type-blink{50%{opacity:0;}}
.hero-sub{margin:1.2rem 0 1.8rem;color:#d8d8d8;font-size:1.05rem;max-width:46ch;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}

/* Clipper icon motif - drawn from the brand's clipper mark */
.clipper-icon{display:inline-block;flex-shrink:0;}
.clipper-watermark{position:absolute;pointer-events:none;opacity:0.08;z-index:2;}
.clipper-watermark.on-dark{color:#fff;}
.clipper-watermark.on-light{color:var(--ink);}
.clipper-watermark svg{width:100%;height:100%;}

/* Inner page banner (smaller hero for sub-pages) */
.page-banner{position:relative;height:44vh;min-height:340px;overflow:hidden;}
.page-banner .hero-media{position:absolute;inset:0;}
.page-banner-content{position:absolute;left:0;right:0;bottom:0;z-index:10;padding-bottom:clamp(2rem,3vw,3rem);color:#fff;}
.page-banner h1{font-size:var(--text-lg);}
.page-banner .crumbs{font-size:0.8rem;color:#ccc;margin-bottom:0.8rem;text-transform:uppercase;letter-spacing:0.08em;}
.page-banner .crumbs a:hover{color:#fff;}

section{padding:var(--space-section) 0;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2.5rem;flex-wrap:wrap;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:1.2rem;}
.section-head h2{font-size:var(--text-xl);}

/* Services */
.service-list{border-top:1px solid var(--line);}
.service-row{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 0;border-bottom:1px solid var(--line);transition:background .2s;}
.service-row:hover{background:#faf9f6;}
.service-row .num{font-family:'Bricolage Grotesque';font-weight:700;color:#bbb;font-size:0.9rem;min-width:2rem;}
.service-row .name{flex:1;}
.service-row h3{font-family:'Bricolage Grotesque';font-weight:600;font-size:1.15rem;}
.service-row .desc{font-size:0.85rem;color:var(--muted);display:block;margin-top:0.2rem;}
.service-row .price{font-family:'Bricolage Grotesque';font-weight:700;font-size:1.3rem;white-space:nowrap;}
.service-group-label{font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:700;color:var(--muted);padding:1.5rem 0 0.5rem;}
.service-group-label:first-child{padding-top:1.2rem;}

.reveal > *{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);}
.reveal.in-view > *{opacity:1;transform:translateY(0);}
.reveal.in-view > *:nth-child(1){transition-delay:0.03s}
.reveal.in-view > *:nth-child(2){transition-delay:0.09s}
.reveal.in-view > *:nth-child(3){transition-delay:0.15s}
.reveal.in-view > *:nth-child(4){transition-delay:0.21s}
.reveal.in-view > *:nth-child(5){transition-delay:0.27s}
.reveal.in-view > *:nth-child(6){transition-delay:0.33s}
.reveal.in-view > *:nth-child(7){transition-delay:0.39s}
.reveal.in-view > *:nth-child(8){transition-delay:0.45s}
.reveal.in-view > *:nth-child(9){transition-delay:0.51s}
.reveal.in-view > *:nth-child(10){transition-delay:0.57s}

/* Payment marquee */
.payments{padding:2.5rem 0 3rem;border-top:1px solid var(--line);margin-top:1rem;}
.payment-marquee{display:flex;overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.payment-track{display:flex;flex-shrink:0;align-items:center;gap:2.5rem;padding-right:2.5rem;animation:payment-scroll 16s linear infinite;}
.payment-badge{display:inline-flex;align-items:center;gap:0.55rem;font-family:'Bricolage Grotesque';font-weight:600;font-size:1rem;color:var(--muted);white-space:nowrap;}
.payment-badge svg{width:26px;height:26px;flex-shrink:0;}
@keyframes payment-scroll{from{transform:translateX(0);}to{transform:translateX(-100%);}}
@media(prefers-reduced-motion:reduce){.payment-track{animation:none;}}

/* About */
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:3.5rem;align-items:center;}
.about-photo{height:420px;filter:grayscale(1) contrast(1.1);position:relative;overflow:hidden;}
.slideshow .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease;}
.slideshow .slide.active{opacity:1;}
.about-photo .slide{background-position:center 20%;}
.about-copy p{color:#444;line-height:1.75;margin-bottom:1.2rem;font-size:1.02rem;}
.stat-row{display:flex;gap:1.5rem;margin-top:2rem;border-top:1px solid var(--line);padding-top:1.6rem;}
.stat{flex:1;}
.stat b{font-family:'Bricolage Grotesque';font-size:1.3rem;font-weight:600;color:var(--muted);display:block;}
.stat span{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}
.gallery-tile{aspect-ratio:3/4;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.1);position:relative;overflow:hidden;transition:transform .3s;}
.gallery-tile:hover{transform:translateY(-6px);}
.gallery-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,0.75) 100%);}
.gallery-tile span{position:absolute;bottom:1rem;left:1.2rem;color:#fff;font-family:'Bricolage Grotesque';font-weight:600;font-size:0.85rem;filter:none;z-index:2;}
.gallery-foot{text-align:center;margin-top:2.2rem;}

/* CTA */
.cta{text-align:center;background:#0d0d0d;color:#fff;}
.cta h2{font-size:var(--text-xl);margin-bottom:1.6rem;}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start;}
.contact-card{border:1px solid var(--line);padding:2rem;margin-bottom:1.2rem;}
.contact-card h3{font-size:1.1rem;margin-bottom:0.6rem;}
.contact-card p, .contact-card a{color:var(--muted);font-size:0.95rem;display:block;margin-bottom:0.3rem;}
.contact-card a:hover{color:var(--ink);}
.map-frame{border:1px solid var(--line);height:440px;overflow:hidden;}
.map-frame iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05);}
.social-row{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap;}

footer{padding:3.5rem 0 2rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;border-bottom:1px solid var(--line);padding-bottom:2.5rem;margin-bottom:1.5rem;}
footer h4{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:1rem;}
footer p, footer a{font-size:0.92rem;color:var(--muted);display:block;margin-bottom:0.5rem;}
footer a:hover{color:var(--ink);}
.foot-bottom{display:flex;justify-content:space-between;font-size:0.78rem;color:#999;flex-wrap:wrap;gap:1rem;}

@media(max-width:900px){
  .logo img{height:54px;}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(0,0,0,0.06);}
  .nav-links.open{display:flex;}
  .nav-links a{padding:1rem clamp(1.25rem,1rem + 2vw,3rem);border-bottom:1px solid var(--line);}
  .nav-links a.active::after, .nav-links a:hover::after{display:none;}
  .nav-toggle{display:block;}
  .about-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .service-row .desc{display:none;}
}

@media(max-width:520px){
  .nav-actions .btn{padding:0.7rem 1.1rem;font-size:0.78rem;}
  .hero{height:100vh;min-height:560px;}
  .hero-actions{flex-direction:column;align-items:stretch;}
  .hero-actions .btn, .hero-actions .btn-outline-light{justify-content:center;}
  .stat-row{gap:0.9rem;}
  .footer-grid{grid-template-columns:1fr;gap:1.75rem;}
  .contact-card{padding:1.5rem;}
  .full-gallery-grid{grid-template-columns:1fr!important;}
  .full-gallery-grid .gallery-tile{margin-top:0!important;}
}
