/* =========================
   css/site.css  (full file)
   ========================= */

:root {
    /* Modern Ranch Minimal palette */
    --offwhite: #FEFAF6;
    /* page background */
    --driftwood: #6E6259;
    /* body text / borders */
    --ink: #2E2A27;
    /* headings */
    --copper: #B86B42;
    /* primary */
    --copper-ink: #442A1E;
    /* button text contrast */
    --prairie: #D4A94A;
    /* highlights */
    --evergreen: #4A5D42;
    /* secondary */

    --card: #ffffff;
    /* cards on light bg */
    --line: rgba(46, 42, 39, .12);
    --muted: rgba(46, 42, 39, .68);

    --radius-xl: 1.25rem;
    --radius-lg: .875rem;
    --shadow-soft: 0 14px 40px rgba(0, 0, 0, .08);
    --maxw: 1160px;
    --nav-h: 68px;
}

/* Base */
*,
*::before,
*::after {
    box-sizing: border-box
}

html,
body {
    margin: 0
}

img {
    max-width: 100%;
    height: auto;
    display: block
}

a {
    color: var(--evergreen);
    text-underline-offset: 3px
}

a:hover {
    text-decoration: underline
}

html {
    scroll-behavior: smooth
}

/* NEW: smooth scroll */
section[id] {
    scroll-margin-top: calc(var(--nav-h) + 10px)
}

/* NEW: sticky header offset */

body {
    background: var(--offwhite);
    color: var(--driftwood);
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.container {
    max-width: var(--maxw);
    margin: 0 auto;
    padding: 0 20px
}

/* Header */
header {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(255, 255, 255, .8);
    backdrop-filter: saturate(140%) blur(8px);
    border-bottom: 1px solid var(--line)
}

.nav {
    height: var(--nav-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: relative
}

.brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    letter-spacing: .3px;
    color: var(--ink)
}

/* Support both the old .logo box and the new <img class="brand-logo"> */
.logo {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: conic-gradient(from 140deg at 50% 50%, var(--copper), var(--prairie), var(--copper));
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .06) inset
}

.brand-link {
    display: flex;
    align-items: center
}

.brand-logo {
    width: 32px;
    height: 32px;
    object-fit: contain;
    display: block
}

.brand-link+span {
    margin-left: 10px
}

.links a {
    display: inline-block;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 14px;
    color: var(--ink);
    background: #fff
}

.links a.cta {
    background: var(--copper);
    color: var(--copper-ink);
    font-weight: 800;
    border-color: transparent
}

/* Mobile menu */
.menu-toggle {
    display: none
}

@media (max-width:860px) {
    .links {
        display: none;
        width: 100%
    }

    .menu-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 10px 12px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: #fff;
        color: var(--ink);
        position: absolute;
        right: 16px;
        top: 50%;
        transform: translateY(-50%);
        margin: 0;
        z-index: 50;
    }

    .open .links {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 10px
    }

    .nav {
        height: auto;
        flex-direction: column;
        align-items: flex-start;
        padding: 12px 0;
        position: relative;
    }
}

/* HERO full screen */
.hero {
    position: relative;
    /* z-index: 1 */
    overflow: hidden
}

.hero-bg {
    width: 100%;
    height: auto;
    display: block;
}

.bqa-logo {
    position: absolute;
    bottom: 20px;
    /* adjust spacing from bottom */
    right: 20px;
    /* adjust spacing from right */
    width: 250px;
    /* scale logo as needed */
    height: auto;
    opacity: 0.9;
    /* optional: slight transparency so it blends nicely */
}

.hero-image {
    width: 100%;
    min-height: 64vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
    background-image: var(--hero-url);
    background-size: cover;
    background-position: center center
}

.hero-image.centered {
    align-items: center;
    justify-content: center
}

.hero .wrap {
    padding: 48px 20px 32px
}

.hero-image.centered .wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 24px 20px 32px;
    position: relative
}

.hero-full {
    min-height: calc(100vh - var(--nav-h))
}

@supports(height:100svh) {
    .hero-full {
        min-height: calc(100svh - var(--nav-h))
    }
}

/* CTA pocket */
.cta-pocket {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: clamp(20px, 4vh, 36px);
    background: var(--prairie);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 10px 14px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
    z-index: 10
}

.cta-pocket .btn {
    margin: 0
}

/* Script display title + logo */
.brand-title {
    font-family: 'Great Vibes', 'Segoe Script', 'Lucida Handwriting', cursive;
    font-size: clamp(40px, 9vw, 96px);
    line-height: .92;
    color: var(--offwhite);
    margin: 0 auto 6px;
    text-shadow: 0 3px 14px rgba(0, 0, 0, .55), 0 1px 2px rgba(0, 0, 0, .35)
}

.hero-logo {
    width: clamp(240px, 40vw, 480px);
    height: auto;
    margin: 0 auto 14px;
    filter: drop-shadow(0 24px 40px rgba(0, 0, 0, .45)) drop-shadow(0 6px 18px rgba(0, 0, 0, .35)) drop-shadow(0 1px 2px rgba(0, 0, 0, .25))
}

/* Mobile: shrink hero logo so it doesn't cover faces */
@media (max-width: 640px){
  .hero-logo{
    width: clamp(90px, 24vw, 168px);  /* smaller than desktop */
    margin: 0 auto 10px;
    filter: drop-shadow(0 16px 28px rgba(0,0,0,.35))
            drop-shadow(0 4px 12px rgba(0,0,0,.28))
            drop-shadow(0 1px 2px rgba(0,0,0,.2));
  }
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 12px 18px;
    border-radius: 14px;
    border: 1px solid var(--line);
    background: var(--copper);
    color: var(--copper-ink);
    font-weight: 900;
    box-shadow: var(--shadow-soft);
    text-decoration: none
}

.btn-leather {
    position: relative;
    isolation: isolate;
    color: #2b1a12;
    background: radial-gradient(120% 180% at 30% 20%, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 35%), radial-gradient(120% 180% at 80% 120%, rgba(0, 0, 0, .35), rgba(0, 0, 0, 0) 50%), linear-gradient(180deg, #a8673d, #8f4f2a 60%, #7b3f22);
    border: 1px solid #6e4a33;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -1px 0 rgba(0, 0, 0, .25), 0 8px 22px rgba(0, 0, 0, .18)
}

.btn-leather::after {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 12px;
    border: 2px dashed rgba(255, 255, 255, .35);
    opacity: .7;
    pointer-events: none;
    mix-blend-mode: soft-light
}

.btn-leather:hover {
    transform: translateY(-1px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 -1px 0 rgba(0, 0, 0, .25), 0 10px 26px rgba(0, 0, 0, .22)
}

.btn-leather:active {
    transform: translateY(0);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .25), 0 6px 14px rgba(0, 0, 0, .18)
}

/* Sections */
.section {
    padding: 56px 0
}

h2 {
    font-size: clamp(24px, 3.6vw, 36px);
    margin: 0 0 12px;
    color: var(--ink)
}

h3 {
    margin: 0 0 8px;
    font-size: 18px;
    color: var(--ink)
}

p {
    margin: 0 0 10px
}

.grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(12, 1fr)
}

.col-12 {
    grid-column: span 12
}

.col-6 {
    grid-column: span 12
}

.col-4 {
    grid-column: span 12
}

.col-8 {
    grid-column: span 12
}

@media(min-width:860px) {
    .col-6 {
        grid-column: span 6
    }

    .col-4 {
        grid-column: span 4
    }

    .col-8 {
        grid-column: span 8
    }
}

.card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px;
    box-shadow: var(--shadow-soft)
}

/* Tables */
table {
    width: 100%;
    border-collapse: collapse
}

th,
td {
    padding: 12px 10px;
    border-bottom: 1px dashed var(--line);
    text-align: left
}

th {
    color: var(--ink)
}

.muted {
    color: var(--muted)
}

.notice {
    background: rgba(212, 169, 74, .12);
    border: 1px solid rgba(212, 169, 74, .4);
    color: #5b4a1a;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 14px
}

/* Timeline */
.steps {
    display: grid;
    gap: 14px
}

.step {
    display: flex;
    gap: 12px
}

.step .dot {
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: var(--prairie);
    box-shadow: 0 0 0 3px rgba(74, 93, 66, .2)
}

/* Background sections */
.has-bg {
    position: relative;
    isolation: isolate;
    z-index: 0
}

.has-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--bg-url) center/cover no-repeat;
}

/* Full parallax (opt-in) */
.has-bg.parallax-fixed::before {
    background-attachment: fixed
}

/* Mobile / reduced-motion fallback */
@media (max-width:860px),
(prefers-reduced-motion:reduce) {
    .has-bg.parallax-fixed::before {
        background-attachment: scroll
    }
}

/* Muted black & white variant (no white overlay band) */
.has-bg.bw-muted::before {
    background: var(--bg-url) center/cover no-repeat;
    filter: grayscale(100%) brightness(.5) contrast(.5);
}

/* OUR BEEF — tall, glass cards, offwhite heading, centered BQA */
#ourbeef {
    position: relative;
    z-index: 0;
    min-height: 90vh;
    padding-top: 96px;
    padding-bottom: 90px;
}

/* #ourbeef h2 {
    color: var(--offwhite);
    font-size: clamp(32px, 5.6vw, 64px);
    letter-spacing: .5px;
    text-shadow: 0 3px 12px rgba(0, 0, 0, .35);
    background: var(--copper)
} */

#ourbeef h2 {
    display: inline-block;
    /* shrink to text */
    padding: .35em .7em;
    border-radius: 12px;
    background: rgba(0, 0, 0, .25);
    /* subtle dark glass */
    color: var(--offwhite);
    /* keep readable */
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    /* Safari */
    box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
}

#ourbeef .card-glass {
    background: rgba(255, 255, 255, .68);
    backdrop-filter: saturate(120%) blur(2px);
    border-color: rgba(46, 42, 39, .18)
}

#ourbeef .bqa-badge {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: clamp(16px, 4vh, 36px);
    width: clamp(90px, 14vw, 160px);
    opacity: .95;
    filter: drop-shadow(0 6px 16px rgba(0, 0, 0, .25));
    pointer-events: none;
}

/* Gallery */
.gallery {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(6, 1fr)
}

.gallery img {
    border-radius: 12px;
    border: 1px solid var(--line);
    background: #fff
}

@media(max-width:860px) {
    .gallery {
        grid-template-columns: repeat(3, 1fr)
    }
}

/* Footer */
footer {
    border-top: 1px solid var(--line);
    padding: 40px 20px;
    color: var(--muted);
    text-align: center;
    background: #fff
}

/* HOW: soft white overlay on top of the B/W image */
#how.has-bg.bw-muted::after {
    content: "";
    position: absolute;
    inset: 0;
    /* subtle top→bottom tint; raise/lower the alpha to taste */
    background: linear-gradient(to bottom,
            rgba(255, 255, 255, .10),
            rgba(255, 255, 255, .22));
    z-index: -1;
    /* above ::before bg, below content */
    pointer-events: none;
}

/* === Readability on photo sections === */
/* Shared light-on-dark tokens for text laid over images */
#ourbeef,
#how {
    --on-text: #FEFCF7;
    /* warm off-white for body text */
    --on-muted: rgba(254, 252, 247, .82);
    /* softer for muted notes */
    --on-link: #E9C779;
    /* prairie-tinted link */
    --on-line: rgba(255, 255, 255, .22);
}

/* OUR BEEF: darker “glass” card + light text inside */
#ourbeef .card-glass {
    background: rgba(20, 20, 20, .45);
    /* darken the glass */
    border-color: rgba(255, 255, 255, .18);
    color: var(--on-text);
}

#ourbeef .card-glass h3 {
    color: #fff;
}

#ourbeef .card-glass p,
#ourbeef .card-glass li {
    color: var(--on-text);
}

#ourbeef .card-glass .muted {
    color: var(--on-muted);
}

/* Evergreen bullets still visible on darker glass */
#ourbeef .card-glass li::before {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .75);
}

/* OUR BEEF: light text for any copy placed directly on the image */
#ourbeef p:not(.card *),
#ourbeef li:not(.card *),
#ourbeef .muted:not(.card *) {
    color: var(--on-text);
}

/* HOW IT WORKS: left column (text over photo) uses light text */
#how .col-12:first-child,
#how .col-12:first-child p,
#how .col-12:first-child li,
#how .col-12:first-child .muted {
    color: var(--on-text);
}

#how .col-6:first-child a {
    color: var(--on-link);
    text-decoration-color: rgba(233, 199, 121, .55);
}

/* HOW IT WORKS: right column card stays light-on-white (default) */
#how .card {
    color: var(--driftwood);
}

#how .card h3 {
    color: var(--ink);
}

#how .card p,
#how .card li,
#how .card .muted {
    color: var(--driftwood);
}

#how h2 {
    display: inline-block;
    /* shrink to text */
    padding: .35em .7em;
    border-radius: 12px;
    background: rgba(254, 250, 246, .45);
    /* subtle dark glass */
    color: var(--offwhite);
    /* keep readable */
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    /* Safari */
    box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
}

/* ===== Simple Ranch Carousel ===== */
.ranch-carousel{
  position: relative;
  border: 2px solid var(--prairie);
  border-radius: 22px;
  padding: 10px 48px;                    /* room for arrows */
  background: radial-gradient(120% 180% at 8% 0%, rgba(0,0,0,.18), rgba(0,0,0,0));
  box-shadow: 0 20px 60px rgba(0,0,0,.12);
}
.rc-viewport{
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  aspect-ratio: 4 / 3;                   /* default; JS will sync to data-ratio */
  background:#000;
}
.rc-track{
  list-style:none; margin:0; padding:0;
  display:flex; transition:transform 420ms ease; will-change:transform;
}
.rc-slide{ flex:0 0 100%; position:relative; }
.rc-slide img{
  width:100%; height:100%;
  display:block; border-radius:18px;
  object-fit:cover;                      /* fills the frame */
  object-position:center center;         /* centers subject */
  filter:saturate(1.02) contrast(1.02);
}

/* Controls */
.rc-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:42px; height:42px; border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,0,0,.38); color:#fff;
  font-size:28px; line-height:1;
  display:grid; place-items:center; cursor:pointer;
  transition:transform .2s ease, background .2s ease; z-index:2;
}
.rc-arrow:hover{ transform:translateY(-50%) scale(1.05); background:rgba(0,0,0,.52); }
.rc-arrow:active{ transform:translateY(-50%) scale(.98); }
.rc-prev{ left:16px; } .rc-next{ right:16px; }

/* Dots */
.rc-dots{ display:flex; gap:10px; justify-content:center; padding:14px 0 4px; }
.rc-dots button{
  width:26px; height:6px; border-radius:999px;
  border:1px solid var(--line); background:rgba(255,255,255,.25);
  cursor:pointer; transition:background .2s ease, width .2s ease;
}
.rc-dots button[aria-selected="true"]{ background:var(--prairie); border-color:var(--prairie); width:40px; }

/* Responsive */
@media (max-width:860px){
  .ranch-carousel{ padding:8px 44px; }
  .rc-arrow{ width:38px; height:38px; font-size:24px; }
  .rc-viewport{ aspect-ratio: 4 / 3; }
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .rc-track{ transition:none; }
  .rc-arrow, .rc-dots button{ transition:none; }
}

/* No-crop variant with blurred backdrop */
.rc-slide.nocrop{ position:relative; overflow:hidden; }
.rc-slide.nocrop::before{
  content:""; position:absolute; inset:0;
  background: var(--bg) center/cover no-repeat;
  filter: blur(22px) brightness(.75) saturate(.95);
  transform: scale(1.06);
  border-radius: 18px; z-index:0;
}
.rc-slide.nocrop img{
  position:relative; z-index:1;
  object-fit: contain;                 /* show full image */
  object-position: center center;
}

/* Mobile adjustments */
@media (max-width: 640px){
  .hero .bqa-logo{
    width: clamp(56px, 22vw, 96px);
    right: clamp(8px, 4vw, 16px);
    bottom: calc(clamp(8px, 4vw, 16px) + env(safe-area-inset-bottom));
  }
}

/* Mobile: hero shows full image (letterboxes if needed) */
@media (max-width: 640px){
  .hero-image{
    background-size: contain;          /* show entire image */
    background-repeat: no-repeat;
    background-position: center top;   /* or center center */
    min-height: auto;                  /* let ratio control height */
    aspect-ratio: var(--hero-ratio, 16 / 9);
    background-color: #000;            /* bars color; change if you want */
  }
  .hero-full{ min-height: auto; }
}

/* Mobile: scale the hero CTA down */
@media (max-width: 640px){
  .cta-pocket{
    padding: 6px 8px;                 /* shrink the pocket itself */
    border-radius: 999px;
    bottom: clamp(12px, 4vh, 20px);   /* a touch higher off the bottom */
  }

  .cta-pocket .btn{
    font-size: 14px;                  /* was ~16px */
    padding: 8px 12px;                /* was 12px 18px */
    border-radius: 10px;              /* was 14px */
  }

  .cta-pocket .btn-leather::after{
    inset: 3px;                       /* tighten inner dashed stitch */
    border-radius: 8px;
  }
}