
  :root{
    --ink:#15150F;
    --ink-2:#1D1D14;
    --parchment:#F1EAD9;
    --bone:#FBF8F1;
    --brass:#A9803C;
    --brass-light:#C7A05F;
    --brush:#333B27;
    --clay:#8A4A33;
    --line-dark: rgba(251,248,241,0.14);
    --line-light: rgba(21,21,15,0.14);
    --ff-display:'Fraunces', serif;
    --ff-body:'Inter', sans-serif;
    --ff-mono:'IBM Plex Mono', monospace;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bone);
    color:var(--ink);
    font-family:var(--ff-body);
    font-weight:400;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .eyebrow{
    font-family:var(--ff-mono);
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--brass);
  }
  .eyebrow.on-dark{color:var(--brass-light);}
  h1,h2,h3{
    font-family:var(--ff-display);
    font-weight:500;
    line-height:1.05;
    margin:0;
    letter-spacing:-0.01em;
  }
  .wrap{max-width:1280px;margin:0 auto;padding:0 48px;}
  @media(max-width:720px){.wrap{padding:0 22px;}}

  /* focus visibility */
  a:focus-visible, button:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}

  /* ===== NAV ===== */
  .site-header{
    position:absolute; top:0; left:0; right:0; z-index:40;
    padding:26px 0;
  }
  .site-header .wrap{display:flex;align-items:center;justify-content:space-between;}
  .site-header-actions{display:flex;align-items:center;gap:32px;position:relative;}
  .brandmark{display:flex;align-items:center;gap:12px;}
  .brandmark svg{width:34px;height:34px;flex-shrink:0;}
  .custom-logo-link{display:flex;align-items:center;}
  .custom-logo-link img{
    height:58px; width:auto; max-width:220px; display:block; object-fit:contain;
  }
  @media(max-width:900px){
    .custom-logo-link img{height:46px;}
  }
  .brandmark-text{font-family:var(--ff-display);color:var(--bone);font-size:17px;letter-spacing:.04em;}
  .primary-nav{display:flex;align-items:center;}
  .primary-nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;align-items:center;}
  .primary-nav li{list-style:none;position:relative;}

  /* Dropdown submenu — matches WordPress's own nav walker output
     (menu-item-has-children / sub-menu classes), so this works identically
     whether it's the fallback nav or a real menu built in Appearance > Menus. */
  .primary-nav .menu-item-has-children > a{display:inline-flex;align-items:center;}
  .primary-nav .menu-item-has-children > a::after{
    content:'▾'; position:static; display:inline-block; margin-left:6px; font-size:9px;
    opacity:.7; background:none; height:auto; width:auto; transition:none;
  }
  .primary-nav .sub-menu{
    list-style:none; margin:0; padding:8px 0; position:absolute; top:100%; left:-16px;
    min-width:210px; background:var(--ink); border:1px solid var(--line-dark);
    display:none; flex-direction:column; gap:0; z-index:60; box-shadow:0 18px 40px rgba(0,0,0,.35);
  }
  .primary-nav li:hover > .sub-menu,
  .primary-nav li:focus-within > .sub-menu{display:flex;}
  .primary-nav .sub-menu li{width:100%;}
  .primary-nav .sub-menu a{
    display:block; padding:11px 20px; font-size:12px; letter-spacing:.04em; text-transform:none;
    white-space:nowrap; color:rgba(251,248,241,.78);
  }
  .primary-nav .sub-menu a:hover{color:var(--brass-light); background:rgba(251,248,241,.04);}
  .primary-nav .sub-menu a::after{display:none;}
  .primary-nav a{
    font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
    color:rgba(251,248,241,.82); font-weight:500; position:relative; padding-bottom:4px;
  }
  .primary-nav a::after{
    content:''; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--brass-light);
    transition:right .35s ease;
  }
  .primary-nav a:hover::after{right:0;}
  .nav-cta{
    border:1px solid rgba(251,248,241,.55); color:var(--bone) !important;
    padding:10px 20px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
    transition:background .3s ease, color .3s ease, border-color .3s ease;
  }
  .nav-cta:hover{background:var(--brass); border-color:var(--brass); color:var(--ink) !important;}
  .nav-cta::after{display:none;}
  .menu-toggle{display:none;background:none;border:0;color:var(--bone);font-family:var(--ff-mono);font-size:12px;letter-spacing:.1em;cursor:pointer;}
  @media(max-width:900px){
    /* The mobile dropdown panel needs to be positioned against the
       full-width header, not `.site-header-actions` (which only contains
       the MENU button on mobile — nav and CTA are hidden — so it's a
       ~70px-wide box, not the full header). Dropping position:relative
       here lets the absolutely positioned panel below resolve against
       `.site-header` instead (already position:absolute, full-width),
       which is what actually makes it span the screen correctly. */
    .site-header-actions{position:static;}

    .primary-nav{display:none;}
    .primary-nav.is-open{
      display:block; position:absolute; top:100%; left:0; right:0;
      background:var(--ink); padding:20px 24px 28px; border-top:1px solid var(--line-dark);
    }
    .primary-nav.is-open ul{flex-direction:column; align-items:flex-start; gap:18px;}
    .menu-toggle{display:block; padding:12px 8px; margin:-12px -8px;}

    /* On touch, hover-triggered dropdowns don't work — show submenus
       expanded inline under their parent instead. */
    .primary-nav .sub-menu{
      display:block; position:static; background:transparent; border:0; box-shadow:none;
      padding:10px 0 2px 14px; margin-top:10px;
    }
    .primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu{display:block;}
    .primary-nav .sub-menu a{padding:8px 0; font-size:12.5px; color:rgba(251,248,241,.62);}
    .primary-nav .menu-item-has-children > a::after{display:none;}
  }

  /* ===== HERO ===== */
  .hero{
    position:relative; min-height:100svh; display:flex; align-items:flex-end;
    background:
      linear-gradient(180deg, rgba(15,15,10,.6) 0%, rgba(15,15,10,.25) 32%, rgba(15,15,10,.85) 100%),
      linear-gradient(140deg, rgba(42,44,30,.35) 0%, rgba(23,23,18,.55) 55%, rgba(16,15,11,.85) 100%),
      url('https://laperlaranch.s3.amazonaws.com/2021/12/155073941_871203947010524_6930725405128825796_n.jpg') center 30%/cover no-repeat;
    overflow:hidden;
  }
  .hero .contour{
    position:absolute; inset:0; width:100%; height:100%; opacity:.5; mix-blend-mode:screen;
  }
  .hero-inner{position:relative; z-index:5; width:100%; padding-bottom:9vw;}
  .hero .eyebrow{margin-bottom:22px;display:flex;align-items:center;gap:14px;}
  .hero .eyebrow .rule{width:44px;height:1px;background:var(--brass-light);display:inline-block;}
  .hero h1{
    color:var(--bone);
    font-size:clamp(52px, 8.4vw, 128px);
    max-width:14ch;
  }
  .hero h1 em{font-style:italic; color:var(--brass-light); font-weight:400;}
  .hero .sub{
    color:rgba(251,248,241,.78); font-size:clamp(15px,1.6vw,18px); max-width:46ch; margin-top:22px; font-weight:300; line-height:1.6;
  }
  .hero .actions{display:flex; gap:18px; margin-top:40px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 30px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
    border:1px solid transparent; transition:all .3s ease;
  }
  .btn-primary{background:var(--brass); color:var(--ink);}
  .btn-primary:hover{background:var(--brass-light);}
  .btn-ghost{border-color:rgba(251,248,241,.5); color:var(--bone);}
  .btn-ghost:hover{border-color:var(--bone); background:rgba(251,248,241,.08);}
  .scroll-cue{
    position:absolute; right:48px; bottom:34px; z-index:5; color:rgba(251,248,241,.6);
    font-family:var(--ff-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
    display:flex; align-items:center; gap:10px;
  }
  .scroll-cue .stem{width:1px;height:34px;background:rgba(251,248,241,.4);}
  @media(max-width:720px){.scroll-cue{display:none;}}

  /* ===== INTRO / LEGACY ===== */
  .intro{padding:min(14vw,150px) 0 100px; position:relative;}
  .intro-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:80px; align-items:start;}
  @media(max-width:900px){.intro-grid{grid-template-columns:1fr; gap:36px;}}
  .intro h2{font-size:clamp(30px,3.4vw,46px); max-width:11ch;}
  .intro-copy p{font-size:16.5px; line-height:1.85; color:#3B3A33; font-weight:300; margin:0 0 20px;}
  .intro-copy p:last-child{margin-bottom:0;}
  .intro-copy .lead{font-family:var(--ff-display); font-size:22px; font-style:italic; color:var(--brush); line-height:1.5; margin-bottom:26px;}

  .statline{
    margin-top:64px; padding-top:34px; border-top:1px solid var(--line-light);
    display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  }
  @media(max-width:720px){.statline{grid-template-columns:repeat(2,1fr);}}
  .statline div .n{font-family:var(--ff-display); font-size:34px; color:var(--ink);}
  .statline div .l{font-family:var(--ff-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:#8A8877; margin-top:6px;}

  /* ===== PURSUITS (replaces hexagon badge trio) ===== */
  .pursuits{background:var(--ink); padding:120px 0; position:relative; overflow:hidden;}
  .pursuits .head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:70px; gap:24px; flex-wrap:wrap;}
  .pursuits .head h2{color:var(--bone); font-size:clamp(30px,3.6vw,48px);}
  .pursuits .head p{color:rgba(251,248,241,.6); max-width:34ch; font-weight:300; font-size:15px; line-height:1.7;}
  .pursuit-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark);}
  @media(max-width:860px){.pursuit-grid{grid-template-columns:1fr;}}
  .pursuit{
    background:var(--ink); padding:52px 40px; min-height:420px; display:flex; flex-direction:column; justify-content:flex-end;
    position:relative; overflow:hidden;
  }
  .pursuit .bg{position:absolute; inset:0; opacity:.85; transition:opacity .5s ease, transform .7s ease;}
  .pursuit:hover .bg{opacity:1; transform:scale(1.04);}
  .pursuit .content{position:relative; z-index:2;}
  .pursuit .idx{font-family:var(--ff-mono); font-size:11px; color:var(--brass-light); letter-spacing:.14em; margin-bottom:18px; display:block;}
  .pursuit h3{color:var(--bone); font-size:30px; margin-bottom:10px;}
  .pursuit p{color:rgba(251,248,241,.68); font-size:14px; line-height:1.7; font-weight:300; margin:0 0 18px; max-width:32ch;}
  .pursuit .go{
    font-family:var(--ff-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--bone);
    display:inline-flex; align-items:center; gap:8px;
  }
  .pursuit .go svg{width:13px;height:13px;transition:transform .3s ease;}
  .pursuit:hover .go svg{transform:translateX(5px);}
  .bg-hunt{background:linear-gradient(180deg, rgba(15,15,10,.15) 0%, rgba(15,15,10,.92) 100%), url('https://laperlaranch.s3.amazonaws.com/2021/12/z7f7344_orig.jpg') center 35%/cover no-repeat;}
  .bg-water{background:linear-gradient(180deg, rgba(15,15,10,.15) 0%, rgba(15,15,10,.92) 100%), url('https://laperlaranch.s3.amazonaws.com/2021/12/z7f9802-1.jpg') center/cover no-repeat;}
  .bg-range{background:linear-gradient(180deg, rgba(15,15,10,.15) 0%, rgba(15,15,10,.92) 100%), url('https://laperlaranch.s3.amazonaws.com/2021/12/54a5648.jpg') center/cover no-repeat;}

  /* ===== THE LAND (map / signature section) ===== */
  .theland{padding:130px 0; background:var(--parchment); position:relative; overflow:hidden;}
  .theland-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
  @media(max-width:900px){.theland-grid{grid-template-columns:1fr;}}
  .theland .map-frame{
    border:1px solid var(--line-light); padding:26px; background:rgba(251,248,241,.5); position:relative;
  }
  .theland .map-frame svg{width:100%; height:auto; display:block;}
  .theland .map-caption{
    display:flex; justify-content:space-between; margin-top:16px; font-family:var(--ff-mono);
    font-size:10.5px; letter-spacing:.08em; color:#7C7A67; text-transform:uppercase;
  }
  .theland h2{font-size:clamp(28px,3.2vw,42px); margin-bottom:24px; max-width:12ch;}
  .theland p{font-size:16px; line-height:1.85; color:#3B3A33; font-weight:300; margin:0 0 18px;}
  .theland ul{list-style:none; margin:28px 0 0; padding:0; display:grid; gap:12px;}
  .theland li{
    font-size:14px; color:var(--brush); font-weight:500; display:flex; gap:12px; align-items:baseline;
    border-top:1px solid var(--line-light); padding-top:12px;
  }
  .theland li .m{font-family:var(--ff-mono); font-size:10.5px; color:var(--brass); min-width:26px;}

  /* ===== SHOOTING SPORTS ===== */
  .shootingsports{background:var(--brush); color:var(--bone); padding:130px 0; position:relative; overflow:hidden;}
  .shootingsports::before{
    content:''; position:absolute; inset:0;
    background:radial-gradient(90% 70% at 100% 0%, rgba(169,128,60,.18), transparent 60%);
    pointer-events:none;
  }
  .ss-grid{display:grid; grid-template-columns:.95fr 1.05fr; gap:70px; align-items:center; position:relative; z-index:2;}
  @media(max-width:900px){.ss-grid{grid-template-columns:1fr; gap:44px;}}
  .shootingsports h2{color:var(--bone); font-size:clamp(30px,3.6vw,46px); max-width:12ch; margin-bottom:22px;}
  .shootingsports p{font-size:15.5px; line-height:1.85; color:rgba(251,248,241,.78); font-weight:300; margin:0 0 18px;}
  .ss-facts{display:flex; gap:30px; margin:30px 0 34px; flex-wrap:wrap;}
  .ss-facts div .n{font-family:var(--ff-display); font-size:28px; color:var(--brass-light);}
  .ss-facts div .l{font-family:var(--ff-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:rgba(251,248,241,.6); margin-top:4px;}
  .ss-actions{display:flex; gap:16px; flex-wrap:wrap;}
  .btn-yt{
    display:inline-flex; align-items:center; gap:10px; padding:15px 26px; font-size:12px;
    letter-spacing:.12em; text-transform:uppercase; font-weight:500; border:1px solid rgba(251,248,241,.5); color:var(--bone);
    transition:all .3s ease;
  }
  .btn-yt:hover{border-color:var(--bone); background:rgba(251,248,241,.08);}
  .btn-yt svg{width:16px;height:16px;}
  .video-frame{
    border:1px solid rgba(251,248,241,.22); padding:14px; background:rgba(0,0,0,.15);
  }
  .video-frame .ratio{position:relative; width:100%; padding-top:56.25%; background:#0c0e08;}
  .video-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
  .video-caption{
    display:flex; justify-content:space-between; margin-top:12px; font-family:var(--ff-mono);
    font-size:10px; letter-spacing:.08em; color:rgba(251,248,241,.5); text-transform:uppercase;
  }

  /* ===== QUOTE / DISCRETION STRIP ===== */
  .discretion{padding:100px 0; text-align:center; background:var(--bone); position:relative;}
  .discretion::before{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(251,248,241,.94), rgba(251,248,241,.94)), url('https://laperlaranch.s3.amazonaws.com/2021/12/942260312.jpg') center/cover no-repeat;
    opacity:.5;
  }
  .discretion .wrap{position:relative; z-index:2;}
  .discretion blockquote{
    font-family:var(--ff-display); font-style:italic; font-weight:400;
    font-size:clamp(22px,2.6vw,34px); max-width:22ch; margin:0 auto; line-height:1.5; color:var(--ink);
  }
  .discretion .attrib{margin-top:26px; font-family:var(--ff-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#8A8877;}

  /* ===== VISIT / CONTACT ===== */
  .visit{background:
      linear-gradient(180deg, rgba(21,21,15,.88) 0%, rgba(21,21,15,.97) 55%, var(--ink) 100%),
      url('https://laperlaranch.s3.amazonaws.com/2021/12/2021-01-25-16.31.17-scaled.jpg') center/cover no-repeat;
    color:var(--bone); padding:130px 0 90px; position:relative;}
  .visit .head{margin-bottom:70px;}
  .visit .head h2{color:var(--bone); font-size:clamp(32px,4vw,56px); max-width:16ch;}
  .visit-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:80px;}
  @media(max-width:900px){.visit-grid{grid-template-columns:1fr; gap:50px;}}
  .visit-col .label{font-family:var(--ff-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-light); margin-bottom:14px;}
  .visit-col .big{font-family:var(--ff-display); font-size:24px; font-weight:400; margin-bottom:34px; line-height:1.5;}
  .visit-col .big a:hover{color:var(--brass-light);}
  .contact-block{margin-bottom:36px;}
  .contact-block:last-child{margin-bottom:0;}
  .contact-block p{margin:0; font-size:15px; line-height:1.7; color:rgba(251,248,241,.75); font-weight:300;}
  .contact-block a{border-bottom:1px solid rgba(251,248,241,.3);}
  .contact-block a:hover{border-color:var(--brass-light); color:var(--brass-light);}

  /* ===== FOOTER ===== */
  .site-footer{background:var(--ink); border-top:1px solid var(--line-dark); padding:34px 0;}
  .site-footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
  .site-footer .footer-links{display:flex; gap:26px; flex-wrap:wrap;}
  .site-footer .footer-links ul{display:flex; gap:26px; flex-wrap:wrap; list-style:none; margin:0; padding:0;}
  .site-footer .footer-links li{list-style:none;}
  .site-footer a{font-size:11.5px; letter-spacing:.06em; color:rgba(251,248,241,.55);}
  .site-footer a:hover{color:var(--brass-light);}
  .site-footer .legal{font-size:11px; color:rgba(251,248,241,.35); font-family:var(--ff-mono); max-width:60ch; line-height:1.6;}
  .footer-legal-links{display:flex; gap:18px;}
  .footer-legal-links a{font-size:11px; color:rgba(251,248,241,.45); text-decoration:underline; text-underline-offset:2px;}
  .footer-legal-links a:hover{color:var(--brass-light);}
  .footer-legal{display:flex; flex-direction:column; gap:8px; align-items:flex-end;}
  @media(max-width:720px){.footer-legal{align-items:flex-start;}}
  .credit{color:rgba(251,248,241,.35);}

  /* reveal-on-scroll (respecting reduced motion) */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    html{scroll-behavior:auto;}
  }

  .note-banner{
    background:#F6F1E5; border-bottom:1px solid var(--line-light); color:#5B5946; font-family:var(--ff-mono);
    font-size:11.5px; text-align:center; padding:10px 16px; letter-spacing:.03em;
  }

  @media(max-width:900px){
    .nav-cta{display:none;}
  }

  /* ===== ACCESSIBILITY UTILITIES ===== */
  .screen-reader-text{
    position:absolute !important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden;
    word-wrap:normal !important;
  }
  .skip-link{
    left:-9999px; top:0; z-index:999; position:fixed; background:var(--brass); color:var(--ink);
    padding:12px 20px; font-family:var(--ff-mono); font-size:12px; letter-spacing:.06em;
  }
  .skip-link:focus{left:12px; top:12px; width:auto; height:auto; clip:auto; position:fixed;}

  /* ===== INNER PAGE HEADER ===== */
  .page-header{
    position:relative; padding:min(16vw,190px) 0 min(7vw,90px); background-color:var(--ink);
    background-size:cover; background-position:center;
  }
  .page-header h1{color:var(--bone); font-size:clamp(40px,6.4vw,84px); max-width:16ch;}
  .page-header .page-header-sub{
    color:rgba(251,248,241,.72); font-size:16px; font-weight:300; max-width:52ch; margin-top:18px; line-height:1.7;
  }

  .page-content-wrap{padding:90px 0;}
  .prose{max-width:760px; margin:0 auto; font-size:16.5px; line-height:1.85; color:#3B3A33; font-weight:300;}
  .prose h2{font-size:30px; margin:48px 0 18px; color:var(--ink);}
  .prose h2:first-child{margin-top:0;}
  .prose p{margin:0 0 20px;}
  .prose ul{padding-left:22px; margin:0 0 20px;}
  .prose a{color:var(--clay); border-bottom:1px solid rgba(138,74,51,.35);}

  /* ===== GALLERY ===== */
  .gallery-section{padding:80px 0 130px;}
  .gallery-filters{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:44px;}
  .gallery-filter{
    font-family:var(--ff-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    padding:10px 18px; border:1px solid var(--line-light); background:transparent; color:#5B5946; cursor:pointer;
    transition:all .25s ease;
  }
  .gallery-filter:hover{border-color:var(--brass);}
  .gallery-filter.is-active{background:var(--ink); color:var(--bone); border-color:var(--ink);}
  .gallery-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:6px;
  }
  @media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
  .gallery-item{
    display:block; position:relative; overflow:hidden; aspect-ratio:1/1; background:#eee;
  }
  .gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
  .gallery-item:hover img{transform:scale(1.06);}
  .gallery-item.is-hidden{display:none;}
  .gallery-empty{color:#8A8877; font-size:15px;}

  .lightbox{
    position:fixed; inset:0; background:rgba(15,15,10,.95); z-index:200;
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox[hidden]{display:none;}
  .lightbox-image{max-width:88vw; max-height:86vh; object-fit:contain;}
  .lightbox-close, .lightbox-prev, .lightbox-next{
    position:absolute; background:none; border:0; color:var(--bone); font-size:34px; cursor:pointer;
    padding:10px 16px; line-height:1;
  }
  .lightbox-close{top:18px; right:24px; font-size:28px;}
  .lightbox-prev{left:12px; top:50%; transform:translateY(-50%);}
  .lightbox-next{right:12px; top:50%; transform:translateY(-50%);}

  /* ===== BOOKING FORM ===== */
  .booking-form{display:flex; flex-direction:column; gap:18px;}
  .hp-field{position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden;}
  .field-row{display:flex; flex-direction:column; gap:8px;}
  .field-row--split{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  @media(max-width:480px){.field-row--split{grid-template-columns:1fr;}}
  .booking-form label{
    font-family:var(--ff-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(251,248,241,.6);
  }
  .booking-form input, .booking-form select, .booking-form textarea{
    background:rgba(251,248,241,.06); border:1px solid rgba(251,248,241,.22); color:var(--bone);
    padding:12px 14px; font-family:var(--ff-body); font-size:14.5px; font-weight:300;
  }
  .booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus{
    outline:2px solid var(--brass-light); outline-offset:1px; border-color:var(--brass-light);
  }
  .booking-form select{appearance:auto;}
  /* Native <option> popups don't inherit sensible contrast from a dark
     <select> — most browsers render the dropdown list on a white system
     background while still inheriting the select's white text color,
     making every option unreadable except the one under the cursor.
     Force explicit light-background/dark-text on the options themselves. */
  .booking-form select option{
    color:var(--ink); background:var(--bone);
  }
  .booking-form .btn{align-self:flex-start; border:0; cursor:pointer; font-family:var(--ff-body);}
  .season-note{font-size:12px; color:rgba(251,248,241,.55); font-style:italic; margin:-6px 0 0;}
  .form-notice{padding:14px 16px; font-size:14px; margin-bottom:20px; border:1px solid;}
  .form-notice--success{border-color:var(--brass-light); color:var(--brass-light);}
  .form-notice--error{border-color:#C0685A; color:#E7A79B;}
  .form-notice ul{margin:0; padding-left:18px;}

  /* ===== WOOCOMMERCE ===== */
  .woocommerce-wrap{padding:80px 0 130px;}
  ul.products{
    display:grid !important; grid-template-columns:repeat(4,1fr); gap:36px 28px; list-style:none; margin:0; padding:0;
  }
  @media(max-width:900px){ul.products{grid-template-columns:repeat(2,1fr);}}
  .product-card{list-style:none;}
  .product-card-link{display:block;}
  .product-card-media{aspect-ratio:1/1; overflow:hidden; background:#F1EAD9; position:relative;}
  .product-card-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
  .product-card:hover .product-card-media img{transform:scale(1.05);}
  .product-badge{
    position:absolute; top:12px; left:12px; background:var(--clay); color:var(--bone);
    font-family:var(--ff-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; padding:5px 10px;
  }
  .product-card-body{padding-top:16px;}
  .product-card-title{font-family:var(--ff-display); font-weight:500; font-size:17px; margin:0 0 6px; color:var(--ink);}
  .product-card-price{font-family:var(--ff-mono); font-size:13px; color:var(--brass);}
  .product-card-price del{opacity:.5; margin-right:6px;}
  .product-card-cta{margin-top:14px;}
  .product-card-cta .button{
    display:inline-block; padding:11px 22px; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    background:var(--ink); color:var(--bone); border:1px solid var(--ink); font-family:var(--ff-mono); text-decoration:none;
    transition:all .25s ease;
  }
  .product-card-cta .button:hover{background:transparent; color:var(--ink);}

  .cart-link{position:relative; display:inline-flex; align-items:center; color:var(--bone); margin-left:8px;}
  .cart-link .cart-count{
    position:absolute; top:-8px; right:-10px; background:var(--brass); color:var(--ink);
    font-family:var(--ff-mono); font-size:10px; width:16px; height:16px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
  }

  /* Woo core form controls (checkout/account) inherit the brand look rather
     than the plugin's defaults, since inc/woocommerce-setup.php dequeues
     woocommerce-general/-layout entirely. */
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row select,
  .woocommerce-checkout textarea,
  .woocommerce table.shop_table{
    font-family:var(--ff-body); border:1px solid var(--line-light); padding:11px 13px;
  }
  .woocommerce #payment #place_order,
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
    background:var(--ink); color:var(--bone); border:1px solid var(--ink); border-radius:0;
    font-family:var(--ff-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; padding:13px 26px;
  }
  .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover{
    background:transparent; color:var(--ink);
  }

  /* ===== FOOTER SOCIAL LINKS ===== */
  .footer-social{display:flex; gap:20px;}
  .footer-social a{font-size:11.5px; letter-spacing:.06em; color:rgba(251,248,241,.55);}
  .footer-social a:hover{color:var(--brass-light);}

  /* ===== HUNT PACKAGE CARDS ===== */
  .package-section{padding:90px 0 40px;}
  .package-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
  @media(max-width:900px){.package-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:600px){.package-grid{grid-template-columns:1fr;}}
  .package-card{border:1px solid var(--line-light); display:flex; flex-direction:column;}
  .package-card-media{aspect-ratio:4/3; overflow:hidden;}
  .package-card-media img{width:100%; height:100%; object-fit:cover;}
  .package-card-body{padding:26px;}
  .package-card-body h3{font-size:22px; margin:6px 0 12px;}
  .package-card-excerpt{font-size:14px; line-height:1.7; color:#5B5946; font-weight:300; margin-bottom:16px;}
  .package-price{margin:0 0 8px;}
  .package-price .n{font-family:var(--ff-display); font-size:24px; color:var(--ink);}
  .package-price .note{display:block; font-size:12px; color:#8A8877; margin-top:2px;}
  .package-season, .package-deposit{font-family:var(--ff-mono); font-size:11px; color:#8A8877; margin:0 0 6px;}
  .btn-small{padding:11px 20px; font-size:11px; margin-top:14px; display:inline-block;}
  .package-empty{text-align:center; padding:60px 0; color:#5B5946;}
  .package-empty .big{font-family:var(--ff-display); font-size:26px; margin-top:10px;}

  /* ===== MINI GALLERY (hunt-type / lodging pages) ===== */
  .mini-gallery{padding:20px 0 90px;}
  .mini-gallery .eyebrow{margin-bottom:20px;}
  .gallery-grid--mini{grid-template-columns:repeat(4,1fr);}
  @media(max-width:720px){.gallery-grid--mini{grid-template-columns:repeat(2,1fr);}}

  /* ===== PACKAGE FINE PRINT + SINGLE-CARD LAYOUT ===== */
  .package-fine-print{max-width:820px; margin:70px auto 0; padding-top:50px; border-top:1px solid var(--line-light);}
  .package-fine-print h2{font-size:22px; margin:36px 0 14px;}
  .package-fine-print h2:first-child{margin-top:0;}
  .package-grid--single{grid-template-columns:minmax(0,420px); justify-content:center;}

  /* ===== TESTIMONIAL ===== */
  .testimonial{
    max-width:640px; margin:70px auto 0; text-align:center; padding-top:44px; border-top:1px solid var(--line-light);
  }
  .testimonial-quote{
    font-family:var(--ff-display); font-style:italic; font-size:24px; line-height:1.5; color:var(--ink); margin:0 0 14px;
  }
  .testimonial-attrib{font-family:var(--ff-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A8877;}

  /* ===== FISHING RATE TABLE ===== */
  .rate-table{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light);
    margin:60px 0; border:1px solid var(--line-light);
  }
  @media(max-width:720px){.rate-table{grid-template-columns:1fr;}}
  .rate-card{background:var(--bone); padding:30px 26px;}
  .rate-sub{font-size:12px; color:#8A8877; margin:4px 0 20px;}
  .rate-card ul{list-style:none; margin:0; padding:0;}
  .rate-card li{
    display:flex; justify-content:space-between; align-items:baseline; gap:10px;
    padding:10px 0; border-top:1px solid var(--line-light); font-size:14px;
  }
  .rate-card li:first-child{border-top:0;}
  .rate-card li span:first-child{color:#5B5946;}
  .rate-card li span:last-child{font-family:var(--ff-mono); color:var(--ink); font-weight:500;}

  /* Tighter top padding variant for pages where the section directly follows
     a page-header with no lead-in copy (avoids an oversized visual gap). */
  .page-content-wrap--tight{padding-top:0;}

  /* ===== CROSS-LINK NOTE (Fishing <-> Waterfowl) ===== */
  .cross-link-note{
    max-width:820px; margin:0 auto 40px; padding:16px 20px; background:var(--parchment);
    border-left:2px solid var(--brass);
  }
  .cross-link-note p{margin:0; font-size:13.5px; color:#5B5946;}
  .cross-link-note a{color:var(--clay); text-decoration:underline; text-underline-offset:2px;}

  /* ===== MAP EMBED (Contact page) ===== */
  .map-section{width:100%; line-height:0;}
  .map-iframe{width:100%; height:480px; border:0; display:block; filter:grayscale(.15) contrast(1.05);}
  @media(max-width:720px){.map-iframe{height:340px;}}

  /* ===== CONTACT CALLOUT (replaces public pricing where the client wants
     rates handled by inquiry instead, e.g. Fishing) ===== */
  .contact-callout{
    max-width:640px; margin:0 auto 60px; text-align:center; padding:36px 24px;
    background:var(--parchment); border:1px solid var(--line-light);
  }
  .contact-callout p{
    font-family:var(--ff-display); font-size:20px; font-style:italic; color:var(--brush); margin:0 0 20px;
  }

  /* ===== GALLERY VIDEOS SECTION ===== */
  .gallery-videos{padding:20px 0 110px; background:var(--parchment);}
  .gallery-videos .eyebrow{margin-top:70px;}
  .gallery-videos h2{font-size:clamp(26px,3vw,36px); margin:8px 0 30px; color:var(--ink);}
  .video-frame--wide{max-width:900px; border-color:var(--line-light); background:rgba(21,21,15,.03);}
  .video-frame--wide .video-caption{color:#8A8877;}
  .video-frame--wide .video-caption a{color:var(--clay);}

  /* ===== STAR LIST (Group Retreats "tailor a package for" checklist) ===== */
  .star-list{
    list-style:none; margin:22px 0; padding:0; display:grid; grid-template-columns:1fr 1fr;
    gap:10px 24px;
  }
  @media(max-width:600px){.star-list{grid-template-columns:1fr;}}
  .star-list li{
    font-size:14.5px; color:#3B3A33; padding-left:22px; position:relative;
  }
  .star-list li::before{
    content:'★'; position:absolute; left:0; top:1px; color:var(--brass); font-size:12px;
  }
  .star-list a{color:var(--clay); text-decoration:underline; text-underline-offset:2px;}
  .fine-note{font-size:13px; color:#8A8877; font-style:italic;}

  /* ===== BIRDWATCHING SPECIES LIST ===== */
  .bird-list-section{padding:0 0 110px;}
  .bird-list-columns{
    columns:3; column-gap:48px;
  }
  @media(max-width:900px){.bird-list-columns{columns:2;}}
  @media(max-width:600px){.bird-list-columns{columns:1;}}
  .bird-category{
    break-inside:avoid; -webkit-column-break-inside:avoid; margin-bottom:30px; display:inline-block; width:100%;
  }
  .bird-category h3{
    font-family:var(--ff-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--brass); margin:0 0 10px; padding-bottom:8px; border-bottom:1px solid var(--line-light);
  }
  .bird-category ul{list-style:none; margin:0; padding:0;}
  .bird-category li{margin-bottom:6px;}
  .bird-category a{
    font-size:14px; color:#3B3A33; text-decoration:none; border-bottom:1px solid transparent;
    transition:color .2s ease, border-color .2s ease;
  }
  .bird-category a:hover{color:var(--clay); border-color:var(--clay);}
