/* Davey & Gilbert: shared styles on top of Tailwind Play CDN */
:root {
  --ink: #324749;
  --ink-800: #2a4043;
  --ink-950: #1b292b;
  --red: #ac002a;
  --red-700: #9c0021;
  --mist: #cccccc;
  --hi: #fed424;
}
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { font-family: "Figtree", system-ui, sans-serif; color: #292828; -webkit-font-smoothing: antialiased; }
.font-display { font-family: "Archivo", "Figtree", sans-serif; font-variation-settings: "wdth" 112; }

/* Fluid type scale */
.t-hero  { font-size: clamp(2.6rem, 1.4rem + 5.6vw, 6.4rem); line-height: .94; letter-spacing: -0.035em; }
.t-h1    { font-size: clamp(2.3rem, 1.4rem + 4vw, 4.8rem); line-height: .98; letter-spacing: -0.03em; }
.t-h2    { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem); line-height: 1.02; letter-spacing: -0.025em; }
.t-h3    { font-size: clamp(1.3rem, 1.05rem + .9vw, 1.75rem); line-height: 1.15; letter-spacing: -0.015em; }
.t-lead  { font-size: clamp(1.08rem, 1rem + .4vw, 1.3rem); line-height: 1.7; }
.t-kicker { font-size: .78rem; letter-spacing: .28em; text-transform: uppercase; font-weight: 700; }
.prose-dg p { line-height: 1.8; margin-bottom: 1.1em; }

/* Header */
.site-header { transition: box-shadow .3s ease, background-color .3s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(27, 41, 43, .45); background-color: rgba(255, 255, 255, .9); }
.nav-drop { opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.nav-item:hover .nav-drop, .nav-item:focus-within .nav-drop { opacity: 1; visibility: visible; transform: translateY(0); }

/* Decorative */
.grain { background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size: 4px 4px; }
.grid-lines { background-image: linear-gradient(rgba(50,71,73,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(50,71,73,.07) 1px, transparent 1px); background-size: 56px 56px; }
.clip-slant { clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); }
.tile-hover img { transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.tile-hover:hover img, .tile-hover:focus-visible img { transform: scale(1.06); }
.btn { transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease, color .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn .arr { transition: transform .2s ease; }
.btn:hover .arr { transform: translateX(4px); }
.card-lift { transition: transform .35s ease, box-shadow .35s ease; }
.card-lift:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -28px rgba(27,41,43,.5); }

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: .1s; } .reveal-d2 { transition-delay: .2s; } .reveal-d3 { transition-delay: .3s; }

/* Carousel */
.snap-track { scroll-snap-type: x mandatory; scrollbar-width: none; }
.snap-track::-webkit-scrollbar { display: none; }
.snap-track > * { scroll-snap-align: start; }

/* Lightbox */
.lightbox { position: fixed; inset: 0; z-index: 80; display: none; align-items: center; justify-content: center; background: rgba(15, 24, 25, .94); padding: 4rem 1rem; }
.lightbox.is-open { display: flex; }
.lightbox img { max-height: 82vh; max-width: min(92vw, 1100px); border-radius: .75rem; box-shadow: 0 30px 80px rgba(0,0,0,.5); }

/* Accordion */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] .acc-icon { transform: rotate(45deg); }
.acc-icon { transition: transform .25s ease; }

/* Forms */
.field { width: 100%; border-radius: .75rem; border: 1px solid #d5dcdc; background: #fff; padding: .85rem 1rem; font-size: 1rem; color: #1b292b; transition: border-color .2s, box-shadow .2s; }
.field:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 4px rgba(50, 71, 73, .14); }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.grecaptcha-badge { visibility: hidden; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .tile-hover img, .btn, .card-lift, .btn .arr, .nav-drop { transition: none; }
  .btn:hover, .card-lift:hover { transform: none; }
}
