/* ==========================================================================
   Beaver Dam Auto Sales — base layer
   Reset · typography · links · focus · containers · sections · utilities
   Depends on tokens.css. Plain CSS, no !important (except editor override).
   ========================================================================== */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--bda-header-h) + 1rem)}
body{margin:0;min-height:100vh;font-family:var(--bda-font-body);font-size:var(--bda-fs-body);line-height:var(--bda-lh-body);color:var(--bda-text);background:var(--bda-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul[class],ol[class]{list-style:none;padding:0}
img,picture,svg,video,canvas,iframe{display:block;max-width:100%}
img{height:auto}

button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:var(--bda-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em;transition:color var(--bda-dur) var(--bda-ease)}
a:hover{color:var(--bda-blue-600)}
table{border-collapse:collapse;width:100%}
hr{border:0;border-top:1px solid var(--bda-line);margin:2rem 0}
address{font-style:normal}
[id]{scroll-margin-top:calc(var(--bda-header-h) + 1rem)}
strong,b{font-weight:700}
small{font-size:var(--bda-fs-small)}
::selection{background:var(--bda-gold-400);color:var(--bda-blue-950)}

/* ---------- Typography ---------- */
h1,h2,h3,h4,.bda-h1,.bda-h2,.bda-h3,.bda-h4,.bda-hero__title{font-family:var(--bda-font-display);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:var(--bda-lh-tight);color:inherit;text-wrap:balance}
h1,.bda-h1{font-size:var(--bda-fs-h1)}
h2,.bda-h2{font-size:var(--bda-fs-h2)}
h3,.bda-h3{font-size:var(--bda-fs-h3);line-height:1.1;font-weight:700}
h4,.bda-h4{font-size:var(--bda-fs-h4);line-height:var(--bda-lh-snug);font-weight:700;letter-spacing:.04em}
.bda-hero__title{font-size:var(--bda-fs-hero)}
.bda-hero__title em,.bda-h1 em,.bda-h2 em{font-style:normal;color:var(--bda-gold-500)}
.bda-eyebrow{display:inline-flex;align-items:center;gap:.65rem;font-family:var(--bda-font-body);font-weight:700;font-size:var(--bda-fs-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--bda-blue-700);margin:0 0 .85rem}
.bda-eyebrow::before{content:"";flex:none;width:28px;height:3px;border-radius:2px;background:var(--bda-gold-500)}
.bda-lede{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.55;color:var(--bda-text-2);max-width:62ch;text-wrap:pretty}
.bda-prose>*+*{margin-top:1em}
.bda-prose h2,.bda-prose h3{margin-top:1.6em}
.bda-prose ul,.bda-prose ol{padding-left:1.25em}
.bda-text-muted{color:var(--bda-text-muted)}
.bda-text-center{text-align:center}

/* ---------- Focus ---------- */
:focus{outline:none}
:focus-visible{outline:3px solid var(--bda-focus);outline-offset:3px;border-radius:var(--bda-radius-sm)}
.bda-section--dark :focus-visible,.bda-section--brown :focus-visible,.bda-header :focus-visible,.bda-footer :focus-visible,.bda-hero :focus-visible,.bda-cta :focus-visible,.bda-stats :focus-visible{outline-color:rgba(239,198,80,.75)}

/* ---------- Skip link ---------- */
.bda-skip{position:absolute;left:1rem;top:-100px;z-index:1000;padding:.75rem 1.1rem;background:var(--bda-gold-500);color:var(--bda-blue-950);font-weight:700;text-decoration:none;border-radius:var(--bda-radius-sm);box-shadow:var(--bda-shadow);transition:top var(--bda-dur) var(--bda-ease)}
.bda-skip:focus{top:1rem;outline:3px solid var(--bda-blue-950)}

/* ---------- Containers ---------- */
.bda-container{width:100%;max-width:var(--bda-container);margin-inline:auto;padding-inline:var(--bda-gutter)}
.bda-container--wide{max-width:var(--bda-container-wide)}
.bda-container--narrow{max-width:var(--bda-container-narrow)}

/* ---------- Sections ---------- */
.bda-section{position:relative;padding-block:var(--bda-section-y)}
.bda-section--white{background:var(--bda-surface)}
.bda-section--soft{background:var(--bda-surface-2)}
.bda-section--dark,.bda-section--brown{color:var(--bda-on-dark)}
.bda-section--dark{background:var(--bda-glow),var(--bda-dark)}
.bda-section--brown{background:radial-gradient(60% 70% at 0% 0%,rgba(154,97,40,.35),transparent 70%),var(--bda-brown-800)}
.bda-section--dark::before,.bda-section--brown::before,.bda-dam-stripe::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--bda-dam-stripe);opacity:.9;pointer-events:none;z-index:1}
.bda-section--dark .bda-eyebrow,.bda-section--brown .bda-eyebrow{color:var(--bda-gold-500)}
.bda-section--dark .bda-lede,.bda-section--brown .bda-lede{color:var(--bda-on-dark-muted)}
.bda-section--dark a:not([class]),.bda-section--brown a:not([class]){color:var(--bda-gold-400)}
.bda-section--dark a:not([class]):hover,.bda-section--brown a:not([class]):hover{color:var(--bda-gold-100)}
.bda-section--dark .bda-text-muted,.bda-section--brown .bda-text-muted{color:var(--bda-on-dark-muted)}
.bda-section--tight{padding-block:calc(var(--bda-section-y) * .6)}

.bda-section__head{margin-bottom:clamp(2rem,4vw,3.25rem);max-width:760px}
.bda-section__head .bda-lede{margin-top:.9rem}
.bda-section__head--center{margin-inline:auto;text-align:center}
.bda-section__head--center .bda-lede{margin-inline:auto}
.bda-section__head--split{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem 2.5rem;flex-wrap:wrap}
.bda-section__head--split>div{max-width:760px}
.bda-section__actions{flex:none;padding-bottom:.35rem}
.bda-section__foot{margin-top:clamp(2rem,4vw,3rem);display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}

/* wood-grain wave divider between light sections */
.bda-wave{display:block;width:100%;height:36px;color:var(--bda-paper-300);overflow:hidden;line-height:0}
.bda-wave svg{width:100%;height:100%;display:block}

/* ---------- Utilities ---------- */
.bda-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bda-grid-2,.bda-grid-3,.bda-grid-4{display:grid;gap:1.5rem;grid-template-columns:1fr}
.bda-flex{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.bda-stack>*+*{margin-top:1rem}
.bda-mt-0{margin-top:0}
.bda-hide-mobile{display:none}
@media (min-width:600px){
  .bda-grid-2,.bda-grid-3,.bda-grid-4{grid-template-columns:repeat(2,1fr)}
  .bda-hide-mobile{display:revert}
}
@media (min-width:900px){
  .bda-grid-3{grid-template-columns:repeat(3,1fr)}
  .bda-grid-4{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:899.98px){
  .bda-hide-tablet{display:none}
}

/* ---------- Scroll reveal (FAIL OPEN, SPEC §7) ---------- */
.bda-reveal{opacity:1;transform:none}
html.js .bda-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--bda-ease),transform .7s var(--bda-ease);transition-delay:var(--d,0s)}
html.js .bda-reveal.is-in{opacity:1;transform:none}
/* Editor / builder override: always visible inside Elementor's editor & preview. The one sanctioned !important. */
html.js .elementor-editor-active .bda-reveal,html.js .elementor-editor-preview .bda-reveal,html.js body.elementor-editor-active .bda-reveal{opacity:1 !important;transform:none !important}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}
  html.js .bda-reveal{opacity:1;transform:none}
}

/* ---------- Print ---------- */
@media print{
  .bda-header,.bda-topbar,.bda-footer,.bda-skip,.bda-cta,.bda-nav-toggle{display:none}
  body{background:#fff;color:#000}
  a{color:inherit}
}
