/* ==========================================================================
   AVERY HATS — Design Tokens
   ========================================================================== */
:root{
  --bg:            #0a0908;
  --bg-soft:       #100e0c;
  --bg-panel:      #151210;
  --bg-panel-2:    #1a1613;
  --ink:           #f3ede1;
  --ink-dim:       #b7ac97;
  --ink-faint:     #7d7365;
  --gold:          #c9a655;
  --gold-light:    #e6cf94;
  --gold-deep:     #8a6a2f;
  --wine:          #7a1f2b;
  --hairline:      rgba(201,166,85,0.18);
  --hairline-strong: rgba(201,166,85,0.35);

  --font-display: 'Playfair Display', Georgia, serif;
  --font-script:  'Cormorant Garamond', Georgia, serif;
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --container: 1180px;
  --gutter: clamp(24px, 5vw, 72px);
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ margin:0; font-family: var(--font-display); font-weight:600; }
p{ margin:0; }
ul{ list-style:none; margin:0; padding:0; }

::selection{ background: var(--gold); color:#141210; }

/* Scrollbar */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background: var(--bg); }
::-webkit-scrollbar-thumb{ background: var(--gold-deep); border-radius: 10px; }

/* Grain texture overlay for cinematic feel */
.grain{
  position: fixed; inset:0; z-index: 3; pointer-events:none;
  opacity: .045; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.progress-bar{
  position: fixed; top:0; left:0; height:2px; width:0%;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-light), var(--gold-deep));
  z-index: 60; transition: width .08s linear;
}

/* ==========================================================================
   Reveal animation utility
   ========================================================================== */
.reveal{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay: calc(var(--d, 0) * 90ms);
}
.reveal.is-visible{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ --d:1; }
.reveal[data-delay="2"]{ --d:2; }
.reveal[data-delay="3"]{ --d:3; }
.reveal[data-delay="4"]{ --d:4; }
.reveal[data-delay="5"]{ --d:5; }

@media (prefers-reduced-motion: reduce){
  .reveal{ transition:none; opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}

/* ==========================================================================
   Type helpers
   ========================================================================== */
.eyebrow{
  font-family: var(--font-body);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 18px;
}
.eyebrow--light{ color: var(--gold-light); }

.h2{
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.15;
  color: var(--ink);
  font-weight: 600;
  letter-spacing: -.01em;
}

.rule-short{
  width:64px; height:2px; margin: 22px 0 26px;
  background: linear-gradient(90deg, var(--gold), transparent);
  position: relative;
  transform-origin: left;
  animation: none;
}

.body-copy{
  font-size: 16px;
  color: var(--ink-dim);
  font-weight: 300;
  max-width: 46ch;
  margin-bottom: 16px;
}
.body-copy--wide{ max-width: 60ch; }

.italic-note{
  font-family: var(--font-script);
  font-style: italic;
  color: var(--gold-light);
  font-size: 20px;
  margin-top: 8px;
}
.italic-note--right{ text-align: right; }

.script-line{
  font-family: var(--font-script);
  font-style: italic;
  color: var(--gold);
  font-size: 22px;
  margin: 28px 0 0;
}
.script-line--small{ font-size: 26px; margin-bottom: 10px; }

.section-tagline{
  text-align:center;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-top: 72px;
  padding-top: 22px;
  border-top: 1px solid var(--hairline);
}
.section-tagline--left{ text-align:left; border-top:none; padding-top:0; margin-top:36px; }

.divider-rule{
  height:1px; max-width: var(--container); margin: 0 auto;
  background: linear-gradient(90deg, transparent, var(--hairline-strong), transparent);
}

/* ==========================================================================
   Nav
   ========================================================================== */
.site-nav{
  position: fixed; top:0; left:0; right:0; z-index: 50;
  padding: 22px var(--gutter);
  display:flex; align-items:center;
  transition: background .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom: 1px solid transparent;
}
.site-nav.scrolled{
  background: rgba(10,9,8,0.88);
  backdrop-filter: blur(10px);
  padding: 14px var(--gutter);
  border-color: var(--hairline);
}
.nav-inner{
  width:100%; max-width: 1400px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
}
.nav-logo img{ height: 46px; width:auto; transition: height .4s var(--ease); filter: drop-shadow(0 0 10px rgba(0,0,0,.4)); }
.site-nav.scrolled .nav-logo img{ height: 36px; }

.nav-links{ display:flex; align-items:center; gap: 40px; }
.nav-links a{
  font-size: 12px; letter-spacing:.18em; text-transform:uppercase;
  color: var(--ink-dim); position:relative; padding: 6px 0;
}
.nav-links a span{ position:relative; }
.nav-links a span::after{
  content:''; position:absolute; left:0; right:0; bottom:-6px; height:1px;
  background: var(--gold); transform: scaleX(0); transform-origin:left;
  transition: transform .35s var(--ease);
}
.nav-links a:hover{ color: var(--gold-light); }
.nav-links a:hover span::after{ transform: scaleX(1); }
.nav-cta{
  color: var(--gold) !important; border: 1px solid var(--hairline-strong);
  padding: 9px 20px !important; border-radius: 2px;
  transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.nav-cta:hover{ background: var(--gold); color: var(--bg) !important; border-color: var(--gold); }
.nav-cta span::after{ display:none; }

.nav-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px;
}
.nav-toggle span{ width: 22px; height:1.5px; background: var(--gold-light); transition: all .3s var(--ease); }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative; height: 100svh; min-height: 620px;
  display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end;
  padding: var(--gutter); padding-bottom: 100px;
  overflow:hidden;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-img{
  width:100%; height:100%; object-fit:cover; object-position: 60% 35%;
  will-change: transform;
}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(8,7,6,.35) 0%, rgba(8,7,6,.25) 35%, rgba(8,7,6,.75) 78%, rgba(8,7,6,.96) 100%),
    linear-gradient(90deg, rgba(8,7,6,.55) 0%, rgba(8,7,6,.05) 45%);
}
.hero-content{ position:relative; z-index:2; max-width: 780px; }
.hero-title{
  display:flex; flex-direction:column; gap:0; margin: 10px 0 6px;
  font-size: clamp(56px, 11vw, 128px);
  line-height: .92;
  letter-spacing: .01em;
  color: var(--ink);
  text-shadow: 0 10px 40px rgba(0,0,0,.5);
}
.hero-title-line--accent{ color: var(--gold-light); }
.hero-script{
  font-family: var(--font-script); font-style: italic; font-weight:500;
  font-size: clamp(24px, 3.4vw, 34px);
  color: var(--gold);
  margin: 4px 0 22px;
}
.hero-rule{ width: 90px; height:1px; background: var(--gold-deep); margin-bottom: 18px; }
.hero-tags{
  font-size: 12px; letter-spacing:.24em; text-transform:uppercase; color: var(--ink-dim);
}

.scroll-cue{
  position:absolute; right: var(--gutter); bottom: 40px; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color: var(--ink-faint); font-size:10px; letter-spacing:.2em; text-transform:uppercase;
}
.scroll-cue-line{
  width:1px; height: 46px; background: linear-gradient(180deg, var(--gold), transparent);
  position:relative; overflow:hidden;
}
.scroll-cue-line::after{
  content:''; position:absolute; top:-100%; left:0; width:100%; height:100%;
  background: var(--gold-light);
  animation: cueDrop 2.2s ease-in-out infinite;
}
@keyframes cueDrop{
  0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; }
}

/* ==========================================================================
   Sections / Layout
   ========================================================================== */
.section{ padding: 130px var(--gutter); position:relative; }
.section--dark{ background: var(--bg-soft); }
.section-inner{ max-width: var(--container); margin:0 auto; }

.grid-split{
  display:grid; grid-template-columns: .95fr 1.05fr; gap: clamp(40px, 6vw, 100px);
  align-items:center;
}
.grid-split--reverse{ grid-template-columns: 1.05fr .95fr; }
.grid-split--reverse .col-text{ order:1; }
.grid-split--reverse .col-media{ order:2; }
.grid-split--tight{ grid-template-columns: 1fr 1fr; }
.grid-split--sculpt{ grid-template-columns: .9fr 1.1fr; }

.media-frame{
  overflow:hidden; position:relative; border: 1px solid var(--hairline);
  background: var(--bg-panel);
}
.media-frame img{ width:100%; height:100%; object-fit:cover; transition: transform 1.1s var(--ease); }
.media-frame:hover img{ transform: scale(1.045); }
.media-frame--tall{ aspect-ratio: 3/4.1; }
.media-frame--full{ aspect-ratio: 3/4; }
.media-frame--dramatic{ aspect-ratio: 3/4.4; }
.media-frame--mono{ aspect-ratio: 3/4; filter: grayscale(1) contrast(1.05); }
.media-caption{
  margin-top: 14px; font-size: 12px; font-style:italic; font-family: var(--font-script);
  color: var(--ink-faint);
}

.stat-row{ display:flex; gap: 56px; margin-top: 36px; }
.stat-label{
  font-size: 11px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold);
  margin-bottom: 8px;
}
.stat-label--inline{ margin-bottom:0; border: 1px solid var(--hairline); padding: 10px 16px; }
.stat-value{ font-size: 30px; font-family: var(--font-display); color: var(--ink); }
.stat-value--serif{ font-size: 24px; }

/* Numbered list (capabilities) */
.numbered-list{ margin-top: 8px; }
.numbered-item{
  display:grid; grid-template-columns: 52px 1fr; gap: 18px;
  padding: 22px 0; border-top: 1px solid var(--hairline);
}
.numbered-item:last-child{ border-bottom: 1px solid var(--hairline); }
.num{
  font-family: var(--font-display); font-style:italic; color: var(--gold);
  font-size: 22px; line-height:1;
}
.num-title{ font-size: 16px; color: var(--ink); margin-bottom: 6px; font-weight:600; }
.num-copy{ font-size: 14.5px; color: var(--ink-dim); max-width: 42ch; }

/* Full-bleed image sections */
.section-full{ position:relative; padding: 90px var(--gutter) 0; }
.full-media{
  position:relative; max-width: var(--container); margin: 0 auto;
  aspect-ratio: 16/10; overflow:hidden; border: 1px solid var(--hairline);
}
.full-media img{ width:100%; height:100%; object-fit:cover; transition: transform 1.4s var(--ease); }
.full-media:hover img{ transform: scale(1.035); }
.full-caption{
  max-width: var(--container); margin: 0 auto; padding: 40px 4px 0;
}
.full-caption--band{ padding-top: 40px; }
.band-row{ display:flex; justify-content:space-between; align-items:flex-end; gap: 30px; flex-wrap:wrap; }
.section-full .section-tagline{ padding-bottom: 90px; }

/* Quote block */
.quote-mark{
  font-family: var(--font-display); font-size: 70px; color: var(--gold-deep);
  line-height:.4; display:block; margin-bottom: 14px;
}
.quote-copy{
  font-family: var(--font-script); font-style:italic; font-size: 21px; line-height:1.55;
  color: var(--ink); max-width: 44ch; margin-bottom: 16px;
}

/* Detail blocks (craft detail / sculptural) */
.detail-block{ margin-bottom: 22px; padding-left: 18px; border-left: 2px solid var(--gold-deep); }
.detail-label{ font-size: 11px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold); margin-bottom:8px; }
.detail-copy{ font-size: 14.5px; color: var(--ink-dim); max-width: 40ch; }
.feature-list{ margin-top: 20px; display:flex; flex-direction:column; gap:20px; }

/* Comparison grid */
.compare-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,4vw,50px); margin: 50px 0 40px; }
.compare-label{ margin-top:16px; font-size: 11px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold); }
.compare-copy{ margin-top: 8px; font-size: 17px; font-family: var(--font-display); color: var(--ink); }

/* Process grid */
.process-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 30px; margin: 50px 0 10px; }
.process-item{ padding-top: 22px; border-top: 1px solid var(--hairline); }
.process-item .num{ display:block; margin-bottom: 14px; font-size: 26px; }
.process-item .num-title{ font-size: 17px; margin-bottom:10px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{ background: var(--bg-soft); border-top: 1px solid var(--hairline); padding: 120px var(--gutter) 50px; }
.footer-inner{ max-width: 760px; margin:0 auto; text-align:center; }
.footer-logo{ width: 190px; margin: 0 auto 30px; }
.footer-services{
  font-size: clamp(20px, 2.6vw, 28px); font-weight: 500; color: var(--ink);
  margin-bottom: 20px; line-height:1.5;
}
.footer-rule{ width:80px; height:1px; background: var(--gold-deep); margin: 34px auto; }

.contact-grid{
  display:grid; grid-template-columns: repeat(2,1fr); gap: 1px;
  background: var(--hairline); border:1px solid var(--hairline); margin: 0 auto 60px;
}
.contact-item{
  background: var(--bg-soft); padding: 22px 20px; display:flex; flex-direction:column; gap:8px;
  transition: background .3s var(--ease);
}
.contact-item:hover{ background: var(--bg-panel-2); }
.contact-label{ font-size: 10.5px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold); }
.contact-value{ font-size: 14px; color: var(--ink); }

.footer-bottom{ padding-top: 30px; border-top: 1px solid var(--hairline); }
.footer-tags{ font-size: 11px; letter-spacing:.22em; text-transform:uppercase; color: var(--ink-faint); margin-bottom: 26px; }
.copyright{ font-size: 11.5px; color: var(--ink-faint); }

/* WhatsApp floating button */
.whatsapp-fab{
  position: fixed; bottom: 26px; right: 26px; z-index: 55;
  width: 54px; height:54px; border-radius: 50%;
  background: linear-gradient(145deg, var(--gold-light), var(--gold-deep));
  color: #10100e; display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 26px rgba(0,0,0,.5);
  animation: fabPulse 2.8s ease-in-out infinite;
  transition: transform .3s var(--ease);
}
.whatsapp-fab:hover{ transform: scale(1.08) rotate(6deg); }
@keyframes fabPulse{
  0%,100%{ box-shadow: 0 8px 26px rgba(0,0,0,.5), 0 0 0 0 rgba(201,166,85,.35); }
  50%{ box-shadow: 0 8px 26px rgba(0,0,0,.5), 0 0 0 10px rgba(201,166,85,0); }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 980px){
  .nav-links{
    position:fixed; inset: 0 0 0 auto; width: min(320px, 84vw); height:100svh;
    background: rgba(10,9,8,.98); backdrop-filter: blur(14px);
    flex-direction:column; align-items:flex-start; justify-content:center; gap: 26px;
    padding: 40px var(--gutter);
    transform: translateX(100%); transition: transform .45s var(--ease);
    border-left: 1px solid var(--hairline);
  }
  .nav-links.open{ transform: translateX(0); }
  .nav-toggle{ display:flex; }
  .nav-toggle.open span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }

  .grid-split, .grid-split--reverse, .grid-split--tight, .grid-split--sculpt{
    grid-template-columns: 1fr; gap: 40px;
  }
  .grid-split--reverse .col-text, .grid-split--reverse .col-media{ order:0; }
  .col-media{ order:-1 !important; }

  .process-grid{ grid-template-columns: 1fr 1fr; }
  .compare-grid{ grid-template-columns: 1fr; }
  .band-row{ flex-direction:column; align-items:flex-start; }
  .italic-note--right{ text-align:left; }
  .contact-grid{ grid-template-columns: 1fr; }
  .stat-row{ gap: 30px; flex-wrap:wrap; }
}

@media (max-width: 560px){
  .section{ padding: 90px var(--gutter); }
  .section-full{ padding-top: 70px; }
  .process-grid{ grid-template-columns: 1fr; }
  .hero{ padding-bottom: 80px; }
  .scroll-cue{ display:none; }
  .full-media{ aspect-ratio: 3/4; }
}
