/* The Industrial Swan — shared design system
   This file loads after each page's local styles and is the final authority
   for brand tokens and shared components. */

:root{
  /* Color */
  --color-paper:#f8f5ef;
  --color-ink:#0f0f0f;
  --color-tobacco:#5c3006;
  --color-text-muted:rgba(15,15,15,.62);
  --color-text-soft:rgba(15,15,15,.48);
  --color-on-dark:#f8f5ef;
  --color-on-dark-muted:rgba(248,245,239,.62);

  /* Typography */
  --font-display:"Domaine Display",Georgia,serif;
  --font-interface:"Founders Grotesk","Helvetica Neue",Arial,sans-serif;
  --type-display:clamp(1.75rem,2.9vw,2.5rem);
  --type-heading:clamp(1.3125rem,1.95vw,1.625rem);
  --type-subheading:clamp(1.0625rem,1.45vw,1.3125rem);
  --type-lead:clamp(.9375rem,1.25vw,1.125rem);
  --type-body:.9375rem;
  --type-small:.8125rem;
  --type-label:.6875rem;
  --leading-tight:1.1;
  --leading-heading:1.2;
  --leading-body:1.52;
  --tracking-label:.18em;

  /* Spacing */
  --space-1:.5rem;
  --space-2:1rem;
  --space-3:1.5rem;
  --space-4:2rem;
  --space-5:3rem;
  --space-6:4.5rem;
  --space-7:6rem;
  --space-section:clamp(5rem,10vw,9rem);
  --layout-gutter:clamp(1.5rem,8vw,7.5rem);
  --content-wide:80rem;
  --content-reading:42rem;

  /* Motion */
  --motion-fast:180ms;
  --motion-standard:280ms;
  --ease-standard:cubic-bezier(.22,1,.36,1);

  /* Compatibility aliases used by the existing pages */
  --cream:var(--color-paper);
  --offwhite:var(--color-paper);
  --ink:var(--color-ink);
  --tobacco:var(--color-tobacco);
  --serif:var(--font-display);
  --grot:var(--font-interface);
  --mx:var(--layout-gutter);
  --pad:var(--space-section);
  --fs-display:var(--type-display);
  --fs-h2:var(--type-heading);
  --fs-h3:var(--type-subheading);
  --fs-lead:var(--type-lead);
  --fs-body:var(--type-body);
  --fs-small:var(--type-small);
  --fs-label:var(--type-label);
  --fs-micro:var(--type-label);
  --ls-label:var(--tracking-label);
}

html{scroll-behavior:smooth;}
body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-display);font-size:var(--type-body);line-height:var(--leading-body);}

.section,.site-header,.site-footer{padding-left:var(--layout-gutter);padding-right:var(--layout-gutter);}
.inner{width:100%;max-width:var(--content-wide);margin-left:auto;margin-right:auto;}
.s-pad{padding-top:var(--space-section);padding-bottom:var(--space-section);}

.s-head,.contact h2,.hero h1{font-family:var(--font-display);font-size:var(--type-display);font-weight:400;line-height:var(--leading-tight);letter-spacing:-.015em;}
.offer h3,.client .name{font-family:var(--font-display);font-size:var(--type-subheading);line-height:var(--leading-heading);}
.offer p,.client .cat,.client-note,.contact .sub{font-family:var(--font-display);font-size:var(--type-body);line-height:var(--leading-body);}
.client-note{max-width:var(--content-reading);margin-top:var(--space-5);color:var(--color-text-muted);}

.site-header{min-height:6.5rem;padding-top:2rem;padding-bottom:2rem;}
.site-header .swan{width:1.875rem;height:1.875rem;}
.nav{gap:clamp(2rem,4vw,4.5rem);}
.nav a,.btn,.linkcta,.label,.site-footer span{font-family:var(--font-interface);font-size:var(--type-label);font-weight:400;letter-spacing:var(--tracking-label);text-transform:uppercase;}

.btn{min-height:3rem;padding:.9rem 1.6rem;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard);}
.linkcta{display:inline-block;padding-bottom:.25rem;transition:opacity var(--motion-fast) var(--ease-standard);}
.btn:focus-visible,.linkcta:focus-visible,.nav a:focus-visible,.menu-toggle:focus-visible,.menu-close:focus-visible{outline:1px solid currentColor;outline-offset:.35rem;}

.offers-list{gap:var(--space-6);}
.s-head + .offers-list,.offers-list--home{margin-top:var(--space-6);}
.offer-section{padding-bottom:var(--space-section);}
.offer p{margin-top:var(--space-2);max-width:62ch;}
.offer .offer-buy{margin-top:var(--space-3);}

.client-list{margin-top:var(--space-5);gap:var(--space-4);}
.clients .cta-row{margin-top:var(--space-4);}

.recognition-label{
  font-family:var(--font-interface);
  font-size:var(--type-label);
  font-weight:400;
  line-height:1.4;
  letter-spacing:var(--tracking-label);
  text-transform:uppercase;
  color:var(--color-on-dark-muted);
}
.recognition-link{font-family:var(--font-display);font-size:var(--type-body);line-height:1.4;}

.site-footer{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:1rem;
  min-height:0;
  padding-top:1.5rem;
  padding-bottom:1.75rem;
}
.site-footer .footer-identity{
  width:100%;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.site-footer .footer-nav{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:1.75rem;
  flex-wrap:nowrap;
}
.site-footer span,
.site-footer .footer-nav a,
.site-footer .footer-nav button{
  font-size:10px;
  line-height:1.2;
  letter-spacing:.14em;
  white-space:nowrap;
}

.cookie-consent{
  position:fixed;
  z-index:100;
  right:1.5rem;
  bottom:1.5rem;
  width:min(calc(100% - 3rem),25rem);
  padding:1.5rem;
  background:var(--color-paper);
  color:var(--color-ink);
  border:1px solid rgba(15,15,15,.16);
  box-shadow:0 1rem 3rem rgba(15,15,15,.12);
}
.cookie-consent[hidden]{display:none;}
.cookie-consent p{max-width:34ch;font-family:var(--font-display);font-size:var(--type-small);line-height:1.5;}
.cookie-actions{display:flex;justify-content:flex-end;gap:1.25rem;margin-top:1.25rem;}
.cookie-actions button{font-family:var(--font-interface);font-size:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;background:none;border:0;border-bottom:1px solid currentColor;padding:.35rem 0;cursor:pointer;}
.cookie-actions button:focus-visible{outline:1px solid currentColor;outline-offset:.3rem;}

@media (max-width:860px){
  .menu-overlay .links{
    margin-top:3.25rem;
    gap:.9rem;
  }
  .menu-overlay .links a{
    font-size:clamp(1.65rem,6.5vw,2rem);
    line-height:1.12;
  }
  .hero--home h1.hero-mark{
    width:auto;
    max-width:100%;
    font-size:clamp(10px,2.25vw,14px)!important;
    letter-spacing:.1em!important;
    white-space:nowrap;
  }
  .hero--home h1.hero-mark .wordmark-name{
    display:block;
    max-width:100%;
    white-space:nowrap;
  }
}

@media (max-width:700px){
  :root{
    --type-display:clamp(1.75rem,8vw,2.25rem);
    --type-heading:clamp(1.3125rem,6vw,1.625rem);
    --type-subheading:clamp(1.0625rem,5vw,1.3125rem);
    --type-lead:clamp(.9375rem,4.2vw,1.125rem);
    --type-body:.9375rem;
    --type-small:.8125rem;
    --type-label:.6875rem;
    --space-section:clamp(4.5rem,18vw,6rem);
    --layout-gutter:1.5rem;
  }

  .site-header{min-height:5rem;padding-top:1.5rem;padding-bottom:1.5rem;}
  .site-header .swan{width:1.75rem;height:1.75rem;}
  .offers-list,.offers-list--home{gap:var(--space-5);}
  .s-head + .offers-list,.offers-list--home{margin-top:var(--space-5);}
  .client-list{margin-top:var(--space-4);gap:var(--space-2);}
  .client{padding:var(--space-2) 0;gap:.4rem;}
  .client-note{margin-top:var(--space-4);}
  .btn{width:auto;max-width:100%;min-height:3rem;padding:.9rem 1.35rem;}
  .site-footer .footer-nav{
    justify-content:space-between;
    gap:.75rem;
  }
  .site-footer span,
  .site-footer .footer-nav a,
  .site-footer .footer-nav button{
    font-size:9px;
    line-height:1.2;
    letter-spacing:.14em;
    white-space:nowrap;
  }
  .cookie-consent{right:1rem;bottom:1rem;width:calc(100% - 2rem);padding:1.25rem;}
}

@media (max-width:380px){
  .site-footer span,
  .site-footer .footer-nav a,
  .site-footer .footer-nav button{font-size:8px;letter-spacing:.11em;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}
