:root {
  --green: #849e56;
  --green-dark: #6b8443;
  --ink: #1f1f1d;
  --charcoal: #2b2b28;
  --deep: #10100f;
  --text: #4a4a45;
  --muted: #7a7a72;
  --bg: #ffffff;
  --bg-alt: #f4f3ee;
  --line: #e3e1d8;
  --orange: #e8a33d;
  --radius: 4px;
  --wrap: 1200px;
  --head: 'Oswald', 'Arial Narrow', sans-serif;
  --body: 'Titillium Web', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { overflow-x: clip; margin: 0; font: 300 17px/1.75 var(--body); color: var(--text); background: var(--bg); }
img { max-width: 100%; height: auto; }
a { color: var(--green-dark); }
a:hover { color: var(--ink); }
h1, h2, h3, h4, h5, h6 { font-family: var(--head); color: var(--ink); line-height: 1.2; text-transform: uppercase; letter-spacing: .02em; margin: 1.6em 0 .6em; font-weight: 500; }
h1 { font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 700; }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
h3 { font-size: 1.35rem; }
h4 { font-size: 1.15rem; }
h5, h6 { font-size: 1rem; }
p, ul, ol { margin: 0 0 1.1em; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }
.sr, .hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--ink); color: #fff; padding: 8px 14px; z-index: 100; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }

/* buttons */
.btn { display: inline-block; background: var(--green); color: #fff; font: 500 15px/1 var(--head); text-transform: uppercase; letter-spacing: .08em; text-decoration: none; padding: 15px 28px; border: 0; border-radius: var(--radius); cursor: pointer; transition: background .2s; }
.btn:hover { background: var(--ink); color: #fff; }
.btn-lg { padding: 18px 36px; font-size: 16px; }
.btn-light { background: #fff; color: var(--ink); }
.btn-light:hover { background: var(--ink); color: #fff; }

/* top bar + header */
.topbar { background: var(--deep); color: #bdbdb3; font-size: 13px; }
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 40px; }
.topbar a { color: #e8e8e0; text-decoration: none; }
.topbar a:hover { color: var(--green); }
.topbar-right { display: flex; align-items: center; gap: 18px; }
.topbar-phone { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; }
.topbar-phone svg { width: 15px; fill: var(--green); }
.social { display: inline-flex; gap: 12px; align-items: center; }
.social svg { width: 16px; height: 16px; fill: currentColor; display: block; }
.social-lg svg { width: 22px; height: 22px; }

.site-header { background: var(--ink); position: sticky; top: 0; z-index: 50; box-shadow: 0 2px 12px rgba(0,0,0,.25); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 96px; gap: 24px; }
.logo { display: block; flex: none; color: #fff; font: 700 20px var(--head); text-decoration: none; text-transform: uppercase; }
.logo img { display: block; width: 76px; height: auto; }
.site-nav { display: flex; align-items: center; gap: 22px; }
.site-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; padding: 0; }
.site-nav a:not(.btn) { color: #fff; font: 500 15px var(--head); text-transform: uppercase; letter-spacing: .06em; text-decoration: none; padding: 6px 0; border-bottom: 2px solid transparent; }
.site-nav a:not(.btn):hover, .site-nav a[aria-current] { color: var(--green); border-color: var(--green); }
.btn-nav { padding: 12px 20px; font-size: 14px; }
.nav-toggle { display: none; background: none; border: 0; padding: 10px; cursor: pointer; }
.nav-toggle span:not(.sr) { display: block; width: 26px; height: 2px; background: #fff; margin: 5px 0; transition: transform .2s, opacity .2s; }

@media (max-width: 1080px) {
  .nav-toggle { display: block; }
  .site-nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--ink); flex-direction: column; align-items: stretch; gap: 0; padding: 8px 20px 20px; border-top: 1px solid #3a3a36; display: none; }
  .site-nav.open { display: flex; }
  .site-nav ul { flex-direction: column; gap: 0; }
  .site-nav a:not(.btn) { display: block; padding: 12px 0; border-bottom: 1px solid #3a3a36; }
  .btn-nav { margin-top: 16px; text-align: center; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .topbar-addr { display: none; }
  .topbar .wrap { justify-content: flex-end; }
}

/* hero */
.hero { position: relative; color: #fff; background: var(--charcoal) var(--hero, none) center / cover no-repeat; }
.hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,16,15,.82) 0%, rgba(16,16,15,.45) 60%, rgba(16,16,15,.25) 100%); }
.hero > .wrap { position: relative; }
.hero h1 { color: #fff; margin: 0 0 .3em; }
.hero-home { min-height: clamp(520px, 86vh, 820px); display: flex; align-items: center; overflow: hidden; background: var(--deep); }
.hero-text { padding-top: 60px; padding-bottom: 120px; max-width: var(--wrap); width: 100%; }
.hero-home h1 { max-width: 13em; font-size: clamp(2.2rem, 5.5vw, 4rem); }
.hero-kicker { font: 500 15px var(--head); letter-spacing: .25em; text-transform: uppercase; color: var(--green); margin-bottom: 14px; }
.hero-sub { font: 400 clamp(1.05rem, 2vw, 1.35rem) var(--head); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 30px; color: #e9e9e1; }
.hero-page { padding: 90px 0 70px; }
.hero-page h1 { font-size: clamp(1.9rem, 4vw, 3rem); }
.crumbs { margin: 0; font-size: 14px; color: #d4d4cb; }
.crumbs a { color: #fff; }

/* home feature strip overlapping the hero */
.feature-strip { position: relative; z-index: 2; margin-top: -80px; }
.card-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0; }
.feature { display: block; background: var(--ink); color: #c9c9c0; text-decoration: none; padding: 34px 30px; border-top: 4px solid var(--green); transition: background .2s; }
.feature:nth-child(even) { background: var(--charcoal); }
.feature:hover { background: var(--green-dark); color: #fff; }
.feature h2 { color: #fff; font-size: 1.35rem; margin: 0 0 12px; }
.feature p { font-size: 15px; margin-bottom: 18px; }
.more { font: 500 13px var(--head); text-transform: uppercase; letter-spacing: .12em; color: var(--green); }
.feature:hover .more { color: #fff; }

/* content */
.section { padding: 70px 0; }
.section-alt { background: var(--bg-alt); }
.section-title { text-align: center; margin-top: 0; }
.divider { width: 90px; height: 66px; margin: 0 auto 34px; background: url('/assets/shooter.png') center / contain no-repeat; }
.content { max-width: 900px; }
.content > :first-child { margin-top: 0; }
.content strong, .content b { font-weight: 600; color: var(--ink); }
.content > h2:first-child::after, .content > h1:first-child::after { content: ''; display: block; width: 90px; height: 66px; margin-top: 18px; background: url('/assets/shooter.png') left center / contain no-repeat; }
.content-home { max-width: 980px; text-align: center; margin: 0 auto; }
.content-home ul { display: inline-block; text-align: left; }
.content ul { padding-left: 1.2em; }
.content li::marker { color: var(--green); }
.content img { border-radius: var(--radius); margin: 8px 0 18px; display: block; }
.content img.alignleft, .content img[style*="float: left"] { float: left; margin: 6px 24px 14px 0; max-width: 45%; }
.content img.alignright, .content img[style*="float: right"] { float: right; margin: 6px 0 14px 24px; max-width: 45%; }
.content::after { content: ''; display: table; clear: both; }
.content table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; font-size: 15px; }
.content th, .content td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; }
.content th { background: var(--bg-alt); font-family: var(--head); text-transform: uppercase; font-weight: 500; letter-spacing: .04em; color: var(--ink); }
.content blockquote { margin: 1.5em 0; padding: 14px 22px; border-left: 4px solid var(--green); background: var(--bg-alt); }
.content .price { font: 700 2rem var(--head); color: var(--green-dark); }
.content .img-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; margin: 1.5em 0; }
.content .img-row img { margin: 0; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.content .img-row figure { margin: 0; }
.content .img-row figcaption { font: 500 14px var(--head); text-transform: uppercase; letter-spacing: .06em; color: var(--ink); padding-top: 6px; }
.content .packages { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; margin: 1.5em 0; }
.content .package { border: 1px solid var(--line); border-top: 4px solid var(--green); padding: 24px; border-radius: var(--radius); background: #fff; }
.content .package h3 { margin-top: 0; }
.content .package ul { padding-left: 1.1em; font-size: 15px; }

/* cards */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 28px; }
.card { display: flex; flex-direction: column; background: #fff; text-decoration: none; color: var(--text); border-radius: var(--radius); overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.06); transition: transform .2s, box-shadow .2s; }
.card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.12); color: var(--text); }
.card-img { display: block; aspect-ratio: 3 / 2; background: var(--charcoal) url('/assets/target.svg') center / 56px no-repeat; }
.card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card-body { padding: 22px 24px 26px; display: block; }
.card h3 { margin: 0 0 10px; font-size: 1.2rem; }
.card p { font-size: 15px; }

/* gallery */
.gallery { columns: 3 260px; column-gap: 14px; }
.gallery-item { display: block; margin-bottom: 14px; break-inside: avoid; border-radius: var(--radius); overflow: hidden; }
.gallery-item img { display: block; width: 100%; transition: transform .3s; }
.gallery-item:hover img { transform: scale(1.03); }
.lightbox { position: fixed; inset: 0; background: rgba(10,10,9,.92); display: flex; align-items: center; justify-content: center; z-index: 200; padding: 20px; }
.lightbox img { max-height: 90vh; max-width: 100%; box-shadow: 0 10px 40px rgba(0,0,0,.6); }
.lightbox button { position: absolute; background: none; border: 0; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; padding: 10px 16px; }
.lightbox .lb-close { top: 10px; right: 10px; }
.lightbox .lb-prev { left: 4px; top: 50%; transform: translateY(-50%); }
.lightbox .lb-next { right: 4px; top: 50%; transform: translateY(-50%); }

/* clients */
.clients { background: #fff; border-top: 1px solid var(--line); }
.logo-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 18px 30px; align-items: center; }
.logo-row img { width: 100%; max-width: 150px; margin: 0 auto; display: block; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.logo-row img:hover { filter: none; opacity: 1; }

/* call to action */
.cta-band { background: var(--green); color: #fff; padding: 46px 0; }
.cta-band .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.cta-band h2 { color: #fff; margin: 0; }

/* contact */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.contact-form-box { background: var(--bg-alt); padding: 34px; border-radius: var(--radius); }
.contact-form-box h2 { margin-top: 0; }
.contact-form-box .divider { margin-left: 0; }
.form label { display: block; font: 500 14px var(--head); text-transform: uppercase; letter-spacing: .05em; color: var(--ink); margin-bottom: 16px; }
.form input, .form textarea { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; font: 16px var(--body); border: 1px solid #cfcdc2; border-radius: var(--radius); background: #fff; color: var(--ink); }
.form input:focus, .form textarea:focus { border-color: var(--green); outline: 2px solid rgba(132,158,86,.35); }
.notice { padding: 14px 18px; border-radius: var(--radius); margin-bottom: 20px; }
.notice p { margin: 0; }
.notice.ok { background: #e6efd8; color: #33461c; }
.notice.err { background: #f8e1dd; color: #7a2418; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } }

/* footer */
.site-footer { background: var(--ink); color: #b5b5ab; font-size: 15px; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 40px; padding-top: 60px; padding-bottom: 40px; }
.site-footer h2 { color: #fff; font-size: 1.1rem; margin: 0 0 18px; }
.site-footer a { color: #e3e3da; text-decoration: none; }
.site-footer a:hover { color: var(--green); }
.footer-menu { list-style: none; padding: 0; columns: 2; }
.footer-menu li { margin-bottom: 6px; }
.footer-logo { display: block; width: 70px; margin-top: 20px; opacity: .9; }
.copyright { background: var(--deep); padding: 18px 0; font-size: 13px; color: #8e8e85; }
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr; gap: 28px; } }

@media (max-width: 600px) {
  .section { padding: 48px 0; }
  .header-inner { min-height: 76px; }
  .logo img { width: 58px; }
  .hero-text { padding-bottom: 100px; }
  .content img.alignleft, .content img.alignright, .content img[style*="float"] { float: none !important; max-width: 100% !important; margin: 8px 0 18px !important; }
}


/* ================================================================ home page */
.slides { position: absolute; inset: 0; }
.slide { position: absolute; inset: 0; background: center / cover no-repeat; opacity: 0; transition: opacity 1.6s ease; transform: scale(1.12); }
.slide.is-active { opacity: 1; animation: kenburns 14s ease-out forwards; }
@keyframes kenburns { from { transform: scale(1.12) translate(1%, 1%); } to { transform: scale(1) translate(0, 0); } }
.hero-home::before { z-index: 1; background: linear-gradient(90deg, rgba(16,16,15,.88) 0%, rgba(16,16,15,.55) 55%, rgba(16,16,15,.2) 100%); }
.hero-home::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 160px; z-index: 1; background: linear-gradient(transparent, rgba(16,16,15,.55)); }
.hero-home > .wrap, .hero-home .scroll-cue { z-index: 2; }
.hero-home h1 { text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.hero-kicker { display: inline-flex; align-items: center; gap: 12px; }
.hero-kicker::before { content: ''; width: 40px; height: 2px; background: var(--green); }
.slide-dots { position: absolute; left: 0; right: 0; bottom: 120px; z-index: 2; display: flex; gap: 10px; }
.slide-dots button { width: 34px; height: 4px; border: 0; padding: 0; background: rgba(255,255,255,.4); cursor: pointer; }
.slide-dots button[aria-current] { background: var(--green); }
.scroll-cue { position: absolute; left: 50%; bottom: 100px; width: 26px; height: 42px; margin-left: -13px; border: 2px solid rgba(255,255,255,.6); border-radius: 14px; }
.scroll-cue span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: cue 1.8s ease-in-out infinite; }
@keyframes cue { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
@media (max-width: 760px) { .scroll-cue, .slide-dots { display: none; } }

/* entrance animation for the hero text */
.js .anim { opacity: 0; transform: translateY(26px); animation: rise .9s cubic-bezier(.2,.7,.2,1) var(--d, 0s) forwards; }
@keyframes rise { to { opacity: 1; transform: none; } }

/* scroll reveal */
.js .reveal { opacity: 0; transform: translateY(34px); transition: opacity .8s ease var(--d, 0s), transform .8s cubic-bezier(.2,.7,.2,1) var(--d, 0s); }
.js .reveal.reveal-right { transform: translateX(40px); }
.js .reveal.in { opacity: 1; transform: none; }

.feature { position: relative; overflow: hidden; }
.feature-num { position: absolute; right: 18px; top: 10px; font: 700 54px/1 var(--head); color: rgba(255,255,255,.06); transition: color .3s; }
.feature:hover .feature-num { color: rgba(255,255,255,.16); }
.feature::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--green); transition: width .4s; }
.feature:hover::after { width: 100%; }
.feature:hover { background: var(--charcoal); color: #fff; }
.feature:nth-child(even):hover { background: var(--ink); }
.feature:hover .more { color: var(--green); }

.eyebrow { text-align: center; font: 500 13px var(--head); letter-spacing: .3em; text-transform: uppercase; color: var(--green); margin: 0 0 6px; }

.welcome { padding-top: 100px; padding-bottom: 100px; }
.welcome-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.welcome .content { max-width: none; font-size: 19px; color: var(--muted); }
.welcome .content h2:first-child { font-size: clamp(2rem, 4vw, 3.3rem); font-weight: 700; line-height: 1.1; }
.welcome .content ul { list-style: none; padding: 0; margin-top: 30px; }
.welcome .content li { position: relative; padding-left: 42px; margin-bottom: 22px; font: 500 17px var(--head); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.welcome .content li::before { content: ''; position: absolute; left: 0; top: 50%; width: 26px; height: 26px; margin-top: -13px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26' fill='none' stroke='%23849e56' stroke-width='1.4'%3E%3Ccircle cx='13' cy='13' r='11'/%3E%3Cpath d='M13 1v6M13 19v6M1 13h6M19 13h6'/%3E%3Ccircle cx='13' cy='13' r='2' fill='%23849e56'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .4s; }
.welcome .content li:hover::before { transform: rotate(90deg); }
.welcome .content li strong { font-weight: 500; color: inherit; }
.welcome .content h2:not(:first-child) { font-size: 1.3rem; color: var(--ink); text-transform: none; letter-spacing: 0; margin-top: 2em; }
.welcome-media { position: relative; align-self: stretch; min-height: 520px; }
.welcome-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-card { position: absolute; top: 46px; right: 26px; background: var(--green); color: #fff; padding: 44px 48px; max-width: 360px; box-shadow: 0 16px 36px rgba(0,0,0,.18); }
.map-card p { font: 600 21px/1.5 var(--body); margin: 0 0 30px; color: #fff; }
.btn-dark { background: var(--ink); padding: 22px 64px; }
.btn-dark:hover { background: #fff; color: var(--ink); }
@media (max-width: 900px) {
  .welcome-grid { grid-template-columns: 1fr; gap: 40px; }
  .welcome-media { min-height: 420px; }
  .map-card { right: 16px; left: 16px; top: 16px; padding: 26px 28px; max-width: none; }
  .btn-dark { padding: 16px 34px; }
}

.stats-band { position: relative; color: #fff; padding: 80px 0; background: var(--green-dark) var(--bg, none) center / cover fixed; }
.stats-band::before { content: ''; position: absolute; inset: 0; background: rgba(31,31,29,.78); }
.stats-grid { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 30px; text-align: center; }
.stat strong { display: block; font: 700 clamp(2.6rem, 5vw, 3.6rem)/1 var(--head); color: #fff; font-variant-numeric: tabular-nums; }
.stat span { display: block; margin-top: 10px; font: 500 14px var(--head); letter-spacing: .18em; text-transform: uppercase; color: var(--green); }
.stat + .stat { border-left: 1px solid rgba(255,255,255,.12); }
@media (max-width: 760px) { .stat + .stat { border-left: 0; } .stats-band { background-attachment: scroll; } }

.why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 26px; }
.why-item { padding: 30px 28px; border: 1px solid var(--line); border-radius: var(--radius); transition: border-color .3s, box-shadow .3s, transform .3s; background: #fff; }
.why-item:hover { border-color: var(--green); box-shadow: 0 12px 28px rgba(0,0,0,.08); transform: translateY(-4px); }
.why-icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--bg-alt); margin-bottom: 18px; transition: background .3s; }
.why-icon svg { width: 28px; height: 28px; fill: none; stroke: var(--green-dark); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s; }
.why-item:hover .why-icon { background: var(--green); }
.why-item:hover .why-icon svg { stroke: #fff; }
.why-item h3 { margin: 0 0 10px; font-size: 1.15rem; }
.why-item p { margin: 0; font-size: 15px; }

.card-img { overflow: hidden; }
.card-img img { transition: transform .6s ease; }
.card:hover .card-img img { transform: scale(1.07); }

.location { position: relative; padding: 110px 0; background: var(--bg-alt) var(--bg, none) center / cover; }
.location::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(244,243,238,.15), rgba(244,243,238,.6)); }
.location .wrap { position: relative; display: flex; justify-content: flex-end; }
.location-box { background: var(--ink); color: #c9c9c0; padding: 44px 46px; max-width: 480px; border-radius: var(--radius); box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.location-box .eyebrow { text-align: left; }
.location-box h2 { color: #fff; margin: 0 0 16px; }
.location-box .addr { color: #fff; font-size: 17px; line-height: 1.6; }
.location-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; }
.btn-ghost-light { background: transparent; border: 1px solid rgba(255,255,255,.4); }
.btn-ghost-light:hover { background: #fff; color: var(--ink); }
@media (max-width: 760px) { .location { padding: 60px 0; } .location-box { padding: 30px 26px; } }

.marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marquee-track { display: flex; align-items: center; gap: 60px; width: max-content; animation: marquee 40s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track img { width: 140px; height: auto; flex: none; filter: grayscale(1); opacity: .7; transition: filter .3s, opacity .3s; }
.marquee-track img:hover { filter: none; opacity: 1; }
@keyframes marquee { to { transform: translateX(calc(-50% - 30px)); } }

/* counters & reveals elsewhere on the site */
.js .section .card-grid .card, .js .gallery-item { opacity: 0; transform: translateY(24px); transition: opacity .7s ease var(--d, 0s), transform .7s ease var(--d, 0s), box-shadow .2s; }
.js .section .card-grid .card.in, .js .gallery-item.in { opacity: 1; transform: none; }
.js .hero-page h1, .js .hero-page .crumbs { opacity: 0; animation: rise .8s cubic-bezier(.2,.7,.2,1) forwards; }
.js .hero-page .crumbs { animation-delay: .2s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .anim, .js .reveal, .js .section .card-grid .card, .js .gallery-item, .js .hero-page h1, .js .hero-page .crumbs { opacity: 1 !important; transform: none !important; }
  .marquee { -webkit-mask-image: none; mask-image: none; }
  .marquee-track { flex-wrap: wrap; justify-content: center; width: auto; gap: 30px; }
  .marquee-track img[aria-hidden] { display: none; }
  .slide { transform: none !important; }
}


/* clay shooting game */
.game-section { background: var(--ink); padding: 50px 0 70px; }
.clay-game { position: relative; max-width: 1100px; margin: 0 auto; border-radius: 6px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.45); background: #2b2b28; }
.clay-game canvas { display: block; width: 100%; cursor: none; touch-action: none; user-select: none; -webkit-user-select: none; }
.clay-game canvas:focus-visible { outline: 3px solid var(--orange); outline-offset: -3px; }
.game-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 20px; background: rgba(16,16,15,.72); color: #e6e6dd; animation: fadein .35s ease; }
.game-overlay[hidden] { display: none; }
.game-overlay p { margin: 0 0 12px; max-width: 520px; }
.game-kicker { font: 500 13px var(--head); letter-spacing: .3em; text-transform: uppercase; color: var(--green); }
.game-title { font: 700 clamp(1.6rem, 4vw, 2.8rem)/1.1 var(--head); text-transform: uppercase; color: #fff; }
.game-score { font: 400 1.6rem var(--head); color: #c9c9c0; }
.game-score strong { font-size: clamp(3rem, 8vw, 5rem); color: #fff; }
.game-help { font-size: 14px; color: #a9a99f; }
.game-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 8px !important; }
.game-mute { position: absolute; right: 12px; top: 12px; background: rgba(16,16,15,.7); color: #fff; border: 0; border-radius: 4px; padding: 8px 12px; font: 500 13px var(--head); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.game-mute:hover { background: var(--green); }
@keyframes fadein { from { opacity: 0; } }
@media (max-width: 600px) { .game-section { padding: 24px 0 40px; } .game-section .wrap { padding: 0 8px; } .game-help { display: none; } .game-overlay p { margin-bottom: 8px; } }

.scorecard { border-collapse: collapse; margin: 4px auto 14px; font-size: 14px; color: #e6e6dd; }
.scorecard th, .scorecard td { padding: 5px 10px; border-bottom: 1px solid rgba(255,255,255,.12); text-align: left; }
.scorecard th { font: 500 14px var(--head); letter-spacing: .04em; text-transform: uppercase; color: #fff; }
.scorecard td:last-child { font: 700 16px var(--head); color: #fff; text-align: right; }
.scorecard .dot { display: inline-block; width: 11px; height: 11px; border-radius: 50%; margin-right: 4px; background: #7a2418; }
.scorecard .dot.hit { background: var(--green); }
@media (max-width: 600px) { .scorecard { font-size: 12px; } .scorecard th, .scorecard td { padding: 3px 5px; } .scorecard .dot { width: 8px; height: 8px; margin-right: 2px; } }

.game-fire { position: absolute; right: 14px; bottom: 14px; width: 92px; height: 92px; border-radius: 50%; border: 3px solid rgba(255,255,255,.85); background: rgba(179,38,30,.9); color: #fff; font: 700 20px var(--head); letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 6px 20px rgba(0,0,0,.4); touch-action: manipulation; user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; z-index: 3; }
.game-fire:active { transform: scale(.94); background: #7a2418; }
.game-fire.is-pull { background: rgba(107,132,67,.95); animation: pullpulse 1.2s ease-in-out infinite; }
.game-fire[hidden] { display: none; }
@keyframes pullpulse { 50% { box-shadow: 0 0 0 10px rgba(132,158,86,.35), 0 6px 20px rgba(0,0,0,.4); } }
.game-help-touch { font-size: 15px; color: #d4d4cb; }
.game-overlay { overflow-y: auto; }
.clay-game canvas, .clay-game { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
@media (max-width: 600px) {
  .game-overlay { justify-content: flex-start; padding-top: 28px; }
  .game-overlay .btn-lg { padding: 15px 26px; font-size: 15px; }
  .game-title { font-size: 1.7rem; }
  .game-score strong { font-size: 3rem; }
}

.clay-game, .clay-game button, .game-overlay { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.clay-game canvas { touch-action: none; }

/* short landscape phones: let the header scroll away so the page (and the game) gets the height */
@media (max-height: 500px) and (orientation: landscape) { .site-header { position: relative; } }

/* ------------------------------------------------------------ booking */
.btn-block { display: block; width: 100%; text-align: center; }
.btn-outline { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.btn-outline:hover { background: var(--ink); color: #fff; }
.booking-intro { max-width: 820px; margin: 0 auto 30px; text-align: center; }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }
.bstep { border: 0; padding: 0 0 34px; margin: 0 0 34px; border-bottom: 1px solid var(--line); min-width: 0; transition: opacity .3s; }
.bstep:last-child { border-bottom: 0; margin-bottom: 0; }
.bstep legend { font: 500 1.35rem var(--head); text-transform: uppercase; letter-spacing: .04em; color: var(--ink); margin-bottom: 18px; padding: 0; display: flex; align-items: center; gap: 12px; }
.bstep-n { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--green); color: #fff; font-size: 1rem; flex: none; }
.bstep.is-waiting > :not(legend) { opacity: .45; }
.has-js .nojs-only, .has-js .nojs-when { display: none; }
.form .opt-label { text-transform: none; letter-spacing: 0; font: 300 13px var(--body); color: var(--muted); }
.form select { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; font: 16px var(--body); border: 1px solid #cfcdc2; border-radius: var(--radius); background: #fff; color: var(--ink); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.two-col [hidden] { display: none; }

.type-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.type-card { margin: 0 !important; cursor: pointer; position: relative; }
.type-card input, .opt input { position: absolute; opacity: 0; pointer-events: none; }
.type-card-body { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 22px; border: 2px solid var(--line); border-radius: 8px; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; text-transform: none; letter-spacing: 0; }
.type-card-body svg { width: 38px; height: 38px; fill: none; stroke: var(--green); stroke-width: 1.5; }
.type-card-body strong { font: 500 1.15rem var(--head); text-transform: uppercase; letter-spacing: .04em; color: var(--ink); }
.type-card-body span { font: 300 15px/1.5 var(--body); color: var(--text); }
.type-card-body em { font: 600 15px var(--body); font-style: normal; color: var(--green-dark); margin-top: auto; }
.type-card:hover .type-card-body { border-color: #c9c7bc; transform: translateY(-2px); }
.type-card input:checked + .type-card-body { border-color: var(--green); box-shadow: 0 0 0 3px rgba(132,158,86,.2); }
.type-card input:focus-visible + .type-card-body, .opt input:focus-visible + span { outline: 3px solid var(--orange); outline-offset: 2px; }

.opt-group + .opt-group { margin-top: 26px; }
.has-js .opt-group[hidden] { display: none; }
.opt-heading { font: 500 14px var(--head); text-transform: uppercase; letter-spacing: .05em; color: var(--ink); margin: 0 0 10px; }
.opt-list { display: grid; gap: 10px; margin-bottom: 18px; }
.opt { display: flex !important; align-items: center; gap: 14px; margin: 0 !important; padding: 14px 18px; border: 2px solid var(--line); border-radius: 8px; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important; transition: border-color .2s; position: relative; }
.opt span { flex: 1; display: flex; flex-direction: column; }
.opt strong { font: 500 16px var(--head); text-transform: uppercase; letter-spacing: .04em; color: var(--ink); }
.opt small { font: 300 14px var(--body); color: var(--muted); }
.opt b { font: 600 18px var(--body); color: var(--ink); white-space: nowrap; }
.opt b small { font-size: 13px; }
.opt::before { content: ''; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #c9c7bc; flex: none; transition: border .2s; }
.opt:has(input:checked) { border-color: var(--green); background: #f8faf3; }
.opt:has(input:checked)::before { border: 6px solid var(--green); }
.people { max-width: 240px; }
.hint-text { font-size: 15px; color: var(--muted); margin: -6px 0 0; }

.cal-wrap { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; transition: opacity .2s; }
.cal-wrap.loading { opacity: .6; }
.cal { border: 1px solid var(--line); border-radius: 8px; padding: 16px; background: #fff; }
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.cal-title { font: 500 1.05rem var(--head); text-transform: uppercase; letter-spacing: .05em; color: var(--ink); text-align: center; }
.cal-nav { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: #fff; font-size: 22px; line-height: 1; cursor: pointer; color: var(--ink); }
.cal-nav:hover:not(:disabled) { background: var(--ink); color: #fff; }
.cal-nav:disabled { opacity: .3; cursor: default; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-dow { font: 500 12px var(--head); text-transform: uppercase; color: var(--muted); text-align: center; padding: 4px 0; }
.cal-day { aspect-ratio: 1; border: 0; border-radius: 6px; font: 600 15px var(--body); cursor: pointer; background: transparent; color: #bbb9b0; position: relative; }
.cal-day.is-open { background: #eef3e4; color: var(--ink); }
.cal-day.is-open:hover { background: var(--green); color: #fff; }
.cal-day.is-full { background: #f6e3df; color: #a05a4f; text-decoration: line-through; cursor: not-allowed; }
.cal-day.is-closed, .cal-day.is-past { cursor: default; }
.cal-day.is-selected { background: var(--ink) !important; color: #fff !important; }
.cal-key { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: var(--muted); margin: 12px 0 0; }
.cal-key .k { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
.k.open { background: #eef3e4; } .k.full { background: #f6e3df; } .k.closed { background: #fff; border: 1px solid var(--line); }
.slots-title { font: 500 15px var(--head); text-transform: uppercase; letter-spacing: .04em; color: var(--ink); margin: 6px 0 12px; }
.slot-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.slot { border: 2px solid var(--line); background: #fff; border-radius: 6px; padding: 10px 6px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; transition: border-color .2s, background .2s; }
.slot strong { font: 600 16px var(--body); color: var(--ink); }
.slot small { font-size: 12px; color: var(--muted); }
.slot:hover:not(:disabled) { border-color: var(--green); }
.slot.is-selected { background: var(--green); border-color: var(--green); }
.slot.is-selected strong, .slot.is-selected small { color: #fff; }
.slot:disabled { opacity: .45; cursor: not-allowed; text-decoration: line-through; }
.slot-note { grid-column: 1 / -1; font-size: 14px; color: var(--muted); margin: 4px 0 0; }
.nojs-when { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.hours-box { margin-top: 20px; background: var(--bg-alt); border-radius: 8px; padding: 14px 18px; font-size: 15px; }
.hours-box strong { font: 500 14px var(--head); text-transform: uppercase; letter-spacing: .05em; color: var(--ink); }
.hours-box ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 2px 20px; }
.hours-box li span { display: inline-block; min-width: 92px; font-weight: 600; color: var(--ink); }
.hours-box small { color: var(--muted); }
.hours-box .hours-note { margin: 8px 0 0; color: var(--muted); }
.notice-note { background: var(--bg-alt); border-left: 4px solid var(--green); padding: 10px 14px; border-radius: 6px; font-size: 15px; margin: 0 0 18px; }
.form .check-label { display: flex; gap: 10px; align-items: flex-start; font: 300 15px/1.5 var(--body); text-transform: none; letter-spacing: 0; margin-top: 18px; }
.form .check-label input { width: 20px !important; height: 20px; flex: none; margin: 2px 0 0 !important; accent-color: var(--green); }
.hours-list { list-style: none; padding: 0; }
.step-error { background: #f8e1dd; color: #7a2418; padding: 10px 14px; border-radius: var(--radius); margin: 16px 0 0; }

.booking-summary { position: sticky; top: 120px; background: var(--ink); color: #ddd; border-radius: 8px; padding: 26px; }
.booking-summary h2 { color: #fff; margin: 0 0 16px; font-size: 1.3rem; }
.sum-list { display: grid; grid-template-columns: auto 1fr; gap: 8px 14px; margin: 0 0 18px; font-size: 15px; }
.sum-list dt { color: #9a9a90; }
.sum-list dd { margin: 0; color: #fff; text-align: right; font-weight: 600; }
.sum-price { border-top: 1px solid #3a3a36; padding-top: 14px; margin-bottom: 16px; }
.sum-price p { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 6px; }
.sum-price strong { font: 500 1.6rem var(--head); color: #fff; }
.sum-deposit strong { font-size: 1.1rem !important; color: var(--green) !important; }
.sum-note { font-size: 13px; line-height: 1.5; color: #9a9a90; margin: 12px 0 0; }
.booking-summary .btn { margin-top: 6px; padding: 18px; font-size: 16px; }

@media (max-width: 900px) {
  .booking-layout { grid-template-columns: 1fr; }
  .booking-summary { position: static; }
  .cal-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .type-cards, .two-col, .nojs-when { grid-template-columns: 1fr; }
  .cal { padding: 10px; }
  .cal-day { font-size: 14px; }
  .opt { padding: 12px 14px; }
}

/* customer & instructor booking pages */
.booking-status { max-width: 760px; }
.big-notice { padding: 22px 26px; }
.big-notice h2 { margin: 0 0 8px; font-size: 1.3rem; color: inherit; }
.big-notice p { margin: 0; }
.status-card { border: 1px solid var(--line); border-radius: 8px; padding: 28px; background: #fff; box-shadow: 0 4px 18px rgba(0,0,0,.05); }
.status-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 18px; }
.status-head h2 { margin: 0; font-size: 1.8rem; }
.eyebrow-left { margin: 0; font: 500 13px var(--head); letter-spacing: .2em; text-transform: uppercase; color: var(--green); }
.pill { display: inline-block; padding: 6px 14px; border-radius: 20px; font: 500 13px var(--head); text-transform: uppercase; letter-spacing: .06em; background: #ecebe4; color: var(--ink); white-space: nowrap; }
.pill-ok { background: #e6efd8; color: #33461c; } .pill-warn { background: #fcefd9; color: #7a4f0e; } .pill-err { background: #f8e1dd; color: #7a2418; }
.status-list { display: grid; grid-template-columns: 130px 1fr; gap: 10px 18px; margin: 0; }
.status-list dt { font: 500 14px var(--head); text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding-top: 2px; }
.status-list dd { margin: 0; color: var(--ink); }
.status-list small { color: var(--muted); }
.pay-box { margin-top: 22px; background: var(--bg-alt); border-radius: 8px; padding: 18px 22px; }
.pay-box h3 { margin: 0 0 6px; font-size: 1.1rem; }
.pay-box p { margin: 0; }
.status-foot { margin: 22px 0 0; font-size: 15px; color: var(--muted); }
.answer-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
@media (max-width: 560px) { .status-list { grid-template-columns: 1fr; gap: 2px; } .status-list dd { margin-bottom: 10px; } .status-card { padding: 20px; } }

/* website chat helper (app/chat.php, assets/chat.js) */
.chat { position: fixed; right: 18px; bottom: 18px; z-index: 150; font-family: var(--body); }
.chat-open { display: flex; align-items: center; gap: 8px; border: 0; border-radius: 30px; padding: 12px 18px; background: var(--green); color: #fff; font: 600 15px var(--body); box-shadow: 0 6px 20px rgba(0,0,0,.25); cursor: pointer; }
.chat-open:hover { background: var(--green-dark); }
.chat-open svg { width: 20px; height: 20px; fill: currentColor; }
.chat.is-open .chat-open { display: none; }
.chat-panel { width: min(370px, calc(100vw - 24px)); height: min(520px, calc(100vh - 110px)); display: flex; flex-direction: column; background: #fff; border-radius: 10px; box-shadow: 0 12px 40px rgba(0,0,0,.3); overflow: hidden; }
.chat-panel[hidden] { display: none; }
.chat-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: var(--charcoal); color: #fff; font-family: var(--head); letter-spacing: .03em; }
.chat-close { border: 0; background: none; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; padding: 0 4px; }
.chat-log { flex: 1; overflow-y: auto; padding: 14px; background: var(--bg-alt); }
.chat-msg { margin: 0 0 10px; padding: 9px 12px; border-radius: 10px; max-width: 88%; line-height: 1.45; font-size: 15px; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-assistant { background: #fff; color: var(--ink); border: 1px solid var(--line); }
.chat-user { background: var(--green); color: #fff; margin-left: auto; }
.chat-msg a { color: inherit; text-decoration: underline; }
.chat-wait { color: var(--muted); }
.chat-form { display: flex; gap: 6px; padding: 10px; border-top: 1px solid var(--line); }
.chat-form input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid #c9c7bc; border-radius: 6px; font: 15px var(--body); }
.chat-form button { border: 0; border-radius: 6px; padding: 0 14px; background: var(--green); color: #fff; font: 600 14px var(--body); cursor: pointer; }
.chat-form button:disabled { opacity: .6; }
.chat-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.chat-note { margin: 0; padding: 0 12px 10px; font-size: 11.5px; color: var(--muted); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 600px) { .chat { right: 12px; bottom: 12px; } .chat-open span { display: none; } .chat-open { padding: 14px; } }
.chat-left { right: auto; left: 18px; }   /* game pages: keep clear of the PULL button */
@media (max-width: 600px) { .chat-left { left: 12px; } }

/* package price cards (page content: div.packages > div.package, .package-featured for the highlighted one) */
.content .lead { font-size: 1.1rem; }
.content .packages { align-items: stretch; margin: 2em 0 1.2em; }
.content .package { display: flex; flex-direction: column; padding: 28px 26px 26px; border: 1px solid var(--line); border-top: 5px solid var(--green); border-radius: 8px; box-shadow: 0 4px 18px rgba(0,0,0,.06); transition: transform .2s, box-shadow .2s; }
.content .package:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,.12); }
.content .package-featured { border-top-color: var(--orange); box-shadow: 0 8px 28px rgba(0,0,0,.14); }
.content .package-tag { margin: 0 0 6px; font: 500 12px var(--head); text-transform: uppercase; letter-spacing: .14em; color: var(--green-dark); }
.content .package-featured .package-tag { display: inline-block; align-self: flex-start; background: var(--orange); color: #fff; padding: 4px 10px; border-radius: 3px; }
.content .package h3 { margin: 0; font-size: 1.9rem; text-transform: uppercase; }
.content .package-price { margin: 6px 0 2px; font: 700 2.6rem/1.1 var(--head); color: var(--ink); }
.content .package-price span { font: 400 15px var(--body); color: var(--muted); }
.content .package-meta { margin: 0 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); font-size: 14px; color: var(--muted); }
.content .package h4 { margin: 16px 0 8px; font: 500 14px var(--head); text-transform: uppercase; letter-spacing: .1em; color: var(--ink); }
.content ul.ticks { list-style: none; padding: 0; margin: 0; font-size: 15px; }
.content ul.ticks li { position: relative; padding: 4px 0 4px 26px; line-height: 1.4; }
.content ul.ticks li::before { content: ''; position: absolute; left: 2px; top: 9px; width: 12px; height: 7px; border-left: 2.5px solid var(--green); border-bottom: 2.5px solid var(--green); transform: rotate(-45deg); }
.content ul.ticks-muted li { color: var(--muted); }
.content ul.ticks-muted li::before { border-color: #c9c7bc; }
.content .package-cta { margin: auto 0 0; padding-top: 22px; }
.content .package-cta .btn { display: block; text-align: center; }
.content .package-featured .package-cta .btn { background: var(--orange); }
.content .package-featured .package-cta .btn:hover { background: var(--ink); }
.content .packages-more { padding: 16px 20px; background: var(--bg-alt); border-left: 4px solid var(--green); border-radius: 4px; }
.content .packages-small { font-size: 14px; color: var(--muted); }
@media (min-width: 1180px) { .content .packages { margin-left: -90px; margin-right: -90px; gap: 28px; } }
.content .package-tag { line-height: 22px; }
.content .package-featured .package-tag { padding: 0 10px; }

/* metal colours for the Bronze / Silver / Gold cards */
.content .package-bronze { --metal: #a8692f; --metal-dark: #7d4a1e; --metal-sheen: linear-gradient(135deg, #8a5524, #c98a4b 45%, #a8692f 60%, #7d4a1e); }
.content .package-silver { --metal: #8e959c; --metal-dark: #5f666d; --metal-sheen: linear-gradient(135deg, #6f767d, #d4d9dd 45%, #9aa1a8 60%, #5f666d); }
.content .package-gold { --metal: #c9a227; --metal-dark: #8f7114; --metal-sheen: linear-gradient(135deg, #a8841a, #f0d56b 45%, #c9a227 60%, #8f7114); }
.content .package-bronze, .content .package-silver, .content .package-gold { border-top: 0; position: relative; overflow: hidden; padding-top: 34px; }
.content .package-bronze::before, .content .package-silver::before, .content .package-gold::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 7px; background: var(--metal-sheen); }
.content .package-bronze .package-tag, .content .package-silver .package-tag, .content .package-gold .package-tag { display: inline-block; align-self: flex-start; background: var(--metal-sheen); color: #fff; padding: 0 10px; border-radius: 3px; text-shadow: 0 1px 1px rgba(0,0,0,.35); }
.content .package-bronze .package-price, .content .package-silver .package-price, .content .package-gold .package-price { color: var(--metal-dark); }
.content .package-bronze ul.ticks li::before, .content .package-silver ul.ticks li::before, .content .package-gold ul.ticks li::before { border-color: var(--metal); }
.content .package-bronze ul.ticks-muted li::before { border-color: #c9c7bc; }
.content .package-bronze .package-cta .btn, .content .package-silver .package-cta .btn, .content .package-gold .package-cta .btn { background: var(--metal-sheen); background-size: 150% 150%; text-shadow: 0 1px 1px rgba(0,0,0,.35); transition: background-position .4s; }
.content .package-bronze .package-cta .btn:hover, .content .package-silver .package-cta .btn:hover, .content .package-gold .package-cta .btn:hover { background: var(--metal-sheen); background-size: 150% 150%; background-position: 100% 100%; }
.content .package-silver.package-featured { box-shadow: 0 8px 28px rgba(0,0,0,.14); }
/* darker sheen on the buttons so the white text stays readable */
.content .package-silver .package-cta .btn, .content .package-silver .package-cta .btn:hover { background-image: linear-gradient(135deg, #565d64, #9ba3aa 45%, #737a81 60%, #4e555b); }
.content .package-gold .package-cta .btn, .content .package-gold .package-cta .btn:hover { background-image: linear-gradient(135deg, #8a6a0e, #c9a42c 45%, #a8841a 60%, #7d600c); }
.content .package-bronze .package-cta .btn, .content .package-bronze .package-cta .btn:hover { background-image: linear-gradient(135deg, #7a4519, #b8773a 45%, #96592a 60%, #6e3e16); }

/* Shooting page intro: tagline, "ways to shoot" tiles, "every package includes" chips */
.content .intro-tagline { margin: 0 0 .4em; font: 600 clamp(1.4rem, 2.6vw, 1.9rem)/1.2 var(--head); color: var(--green-dark); }
.content .ways { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; margin: 2em 0 3em; }
.content .way { display: flex; flex-direction: column; gap: 6px; padding: 26px 24px 22px; background: var(--bg-alt); border-radius: 8px; text-decoration: none; color: var(--text); border-bottom: 4px solid transparent; transition: transform .2s, box-shadow .2s, border-color .2s, background .2s; }
.content .way:hover { transform: translateY(-3px); background: #fff; box-shadow: 0 12px 28px rgba(0,0,0,.12); border-bottom-color: var(--green); color: var(--text); }
.content .way-icon { width: 54px; height: 54px; margin-bottom: 8px; border-radius: 50%; background: var(--green) center / 28px no-repeat; }
.content .way-packages .way-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='white'/%3E%3C/svg%3E"); }
.content .way-lessons .way-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='7' r='3'/%3E%3Cpath d='M3 20v-1a6 6 0 0 1 12 0v1'/%3E%3Cpath d='M16 4l5 2-5 2'/%3E%3Cpath d='M16 4v8'/%3E%3C/svg%3E"); }
.content .way-licence .way-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='11' r='2'/%3E%3Cpath d='M6 16c.6-1.4 1.7-2 3-2s2.4.6 3 2'/%3E%3Cpath d='M15 10h3M15 13h3'/%3E%3C/svg%3E"); }
.content .way-title { font: 600 1.35rem var(--head); text-transform: uppercase; letter-spacing: .03em; color: var(--ink); }
.content .way-text { font-size: 15px; line-height: 1.5; }
.content .way-link { margin-top: auto; padding-top: 10px; font: 500 13px var(--head); text-transform: uppercase; letter-spacing: .1em; color: var(--green-dark); }
.content .way-link::after { content: ' →'; transition: margin-left .2s; }
.content .way:hover .way-link::after { margin-left: 4px; }
.content h2#packages { scroll-margin-top: 110px; }
.content .included-title { margin: 0 0 10px; font: 500 13px var(--head); text-transform: uppercase; letter-spacing: .14em; color: var(--muted); }
.content ul.included { list-style: none; padding: 0; margin: 0 0 .5em; display: flex; flex-wrap: wrap; gap: 10px; }
.content ul.included li { display: flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 30px; font-size: 15px; color: var(--ink); }
.content ul.included li::before { content: ''; flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.content ul.included li::marker { content: none; }

/* Shooting page: "Also available" mini cards and "good to know" strip */
.content .more-title { margin: 2.2em 0 .8em; font-size: 1.3rem; text-transform: uppercase; letter-spacing: .04em; }
.content .mini-packages { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.content .mini-package { display: flex; flex-direction: column; padding: 20px 22px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.content .mini-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.content .mini-name { font: 600 1.35rem var(--head); text-transform: uppercase; color: var(--ink); }
.content .mini-price { font: 700 1.6rem var(--head); color: var(--green-dark); white-space: nowrap; }
.content .mini-price span { font: 400 14px var(--body); color: var(--muted); }
.content .mini-package > p { margin: 0 0 10px; font-size: 15px; line-height: 1.5; }
.content .mini-cta { margin-top: auto !important; }
.content .mini-cta a, .content .packages-all a { font: 500 13px var(--head); text-transform: uppercase; letter-spacing: .1em; color: var(--green-dark); text-decoration: none; }
.content .mini-cta a::after, .content .packages-all a::after { content: ' →'; }
.content .mini-cta a:hover, .content .packages-all a:hover { color: var(--ink); }
.content ul.good-to-know { list-style: none; margin: 1.8em 0 1em; padding: 18px 20px; display: flex; flex-wrap: wrap; gap: 12px 28px; background: var(--bg-alt); border-radius: 8px; font-size: 15px; }
.content ul.good-to-know li { display: flex; align-items: center; gap: 10px; }
.content ul.good-to-know li::marker { content: none; }
.content ul.good-to-know li::before { content: ''; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--charcoal) center / 16px no-repeat; }
.content .gtk-deposit::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='12' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E") !important; }
.content .gtk-balance::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") !important; }
.content .gtk-vat::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M9 12h7M9 16h7'/%3E%3C/svg%3E") !important; }
.content .packages-all { margin: 0; text-align: right; }

/* Pages with package cards use a wider column, and every block in it lines up on both edges */
.content:has(> .packages, > .ways, > .mini-packages, > .good-to-know, > .price-tables, > .member-cards, > .split, > .steps, > .img-row, > .logo-grid) { max-width: var(--wrap); }
@media (min-width: 1180px) { .content .packages { margin-left: 0; margin-right: 0; } }
/* (paragraph cap removed: text runs the full width, lining up with the blocks) */
.content:has(> .packages, > .ways, > .mini-packages, > .good-to-know, > .price-tables, > .member-cards, > .split, > .steps, > .img-row, > .logo-grid) > p.packages-all { max-width: none; }
.content .mini-package { box-shadow: 0 4px 18px rgba(0,0,0,.06); transition: transform .2s, box-shadow .2s; }
.content .mini-package:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,.12); }

/* shallower banner on inner pages (was 90px / 70px) */
.hero-page { padding: 44px 0 38px; }
.hero-page h1 { margin-bottom: .15em; }
@media (max-width: 600px) { .hero-page { padding: 30px 0 26px; } }

/* "ways to shoot" tiles: icon beside the title, so the tiles are shorter */
.content .way { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 14px; row-gap: 6px; padding: 20px 22px 18px; }
.content .way-icon { width: 44px; height: 44px; margin: 0; background-size: 23px; }
.content .way-title { font-size: 1.25rem; line-height: 1.1; }
.content .way-text, .content .way-link { grid-column: 1 / -1; }
.content .way-text { margin-top: 6px; }
.content .way-link { padding-top: 4px; }

/* Clay Shooting Packages page extras */
.content .notice-strip { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: #fbf3e4; border-radius: 8px; color: var(--ink); font-size: 15px; }
.content .notice-strip::before { content: '!'; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--orange); color: #fff; font: 700 15px/26px var(--head); text-align: center; }
.content:has(> .packages, > .ways, > .mini-packages, > .good-to-know, > .price-tables, > .member-cards, > .split, > .steps, > .img-row, > .logo-grid) > p.notice-strip { max-width: none; }
.content .package-about { margin: 0 0 14px; font-size: 15px; line-height: 1.5; }
.content .mini-package ul.ticks { margin: 0 0 12px; }
.content .gtk-room::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V5l7-2 7 2v16'/%3E%3Cpath d='M10 21v-4h4v4M9 8h1M14 8h1M9 12h1M14 12h1'/%3E%3C/svg%3E") !important; }
.content .price-tables { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin: 1em 0; }
.content table.price-table { margin: 0; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,.06); border: 1px solid var(--line); border-collapse: separate; border-spacing: 0; }
.content .price-table caption { caption-side: top; text-align: left; padding: 0 0 8px; font: 500 14px var(--head); text-transform: uppercase; letter-spacing: .1em; color: var(--ink); }
.content .price-table th, .content .price-table td { border: 0; border-bottom: 1px solid var(--line); padding: 10px 14px; }
.content .price-table tbody tr:last-child td { border-bottom: 0; }
.content .price-table td:not(:first-child), .content .price-table th:not(:first-child) { text-align: right; }
.content .price-table td:first-child { font-weight: 600; color: var(--ink); }
.content .price-tables { align-items: start; }

/* Shared page building blocks (any page): extra tile icons, FAQ drop-downs, text beside a photo, numbered steps */
.content .way:not([href]) { cursor: default; }
.content .way:not([href]):hover { transform: none; background: var(--bg-alt); box-shadow: none; border-bottom-color: transparent; }
.content .way-group .way-icon, .content .gtk-group::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3 20v-1a6 6 0 0 1 12 0v1M15 20v-1a4 4 0 0 1 6-3.4'/%3E%3C/svg%3E") !important; }
.content .way-trophy .way-icon, .content .gtk-trophy::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4h8v5a4 4 0 0 1-8 0z'/%3E%3Cpath d='M8 6H5a3 3 0 0 0 3 4M16 6h3a3 3 0 0 1-3 4M12 13v4M8 21h8M9 17h6'/%3E%3C/svg%3E") !important; }
.content .way-food .way-icon, .content .gtk-food::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v8M5 3v5a2 2 0 0 0 4 0V3M7 11v10M17 3c-2 0-3 3-3 6s1 4 3 4v8'/%3E%3C/svg%3E") !important; }
.content .way-clock .way-icon, .content .gtk-clock::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") !important; }
.content .way-calendar .way-icon, .content .gtk-calendar::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") !important; }
.content .way-gift .way-icon, .content .gtk-gift::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='5'/%3E%3Cpath d='M5 13v8h14v-8M12 8v13M12 8c-1-3-5-4-5-1.5S10 8 12 8zM12 8c1-3 5-4 5-1.5S14 8 12 8z'/%3E%3C/svg%3E") !important; }
.content .way-location .way-icon, .content .gtk-location::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.5-7-12a7 7 0 0 1 14 0c0 5.5-7 12-7 12z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E") !important; }
.content .way-phone .way-icon, .content .gtk-phone::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 0 0 6 6L16 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") !important; }
.content .way-shield .way-icon, .content .gtk-shield::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") !important; }
.content .way-star .way-icon, .content .gtk-star::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E") !important; }
.content .way-building .way-icon, .content .gtk-building::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V5l7-2 7 2v16'/%3E%3Cpath d='M10 21v-4h4v4M9 8h1M14 8h1M9 12h1M14 12h1'/%3E%3C/svg%3E") !important; }
.content .way-tree .way-icon, .content .gtk-tree::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l6 8h-3l4 6H5l4-6H6z'/%3E%3Cpath d='M12 17v4'/%3E%3C/svg%3E") !important; }
.content .way-screen .way-icon, .content .gtk-screen::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8M12 16v4'/%3E%3C/svg%3E") !important; }
.content .way-bird .way-icon, .content .gtk-bird::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12c4-1 6-5 10-5 3 0 5 2 6 4l2 1-2 1c-1 3-4 5-8 5-3 0-6-2-8-6z'/%3E%3Ccircle cx='15' cy='10' r='.6' fill='white'/%3E%3C/svg%3E") !important; }
.content .way-card .way-icon, .content .gtk-card::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='12' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E") !important; }
.content .way-info .way-icon, .content .gtk-info::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5v.5'/%3E%3C/svg%3E") !important; }
.content .faq-list { margin: 1em 0 2em; display: grid; gap: 10px; }
.content .faq-list details { background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.content .faq-list summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; font: 600 1.05rem var(--body); color: var(--ink); }
.content .faq-list summary::-webkit-details-marker { display: none; }
.content .faq-list summary::after { content: '+'; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--bg-alt); color: var(--green-dark); font: 500 20px/28px var(--head); text-align: center; transition: transform .2s; }
.content .faq-list details[open] summary::after { transform: rotate(45deg); background: var(--green); color: #fff; }
.content .faq-list details > div { padding: 0 20px 16px; }
.content .faq-list details > div > :last-child { margin-bottom: 0; }
.content .split { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; margin: 2em 0; }
.content .split img { width: 100%; height: 100%; max-height: 420px; object-fit: cover; margin: 0; border-radius: 8px; }
.content .split > div > :first-child { margin-top: 0; }
.content .split-reverse > img { order: -1; }
.content ol.steps { list-style: none; counter-reset: step; padding: 0; margin: 1.5em 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.content ol.steps li { counter-increment: step; position: relative; padding: 18px 20px 18px 66px; background: var(--bg-alt); border-radius: 8px; font-size: 15px; line-height: 1.5; }
.content ol.steps li::before { content: counter(step); position: absolute; left: 18px; top: 16px; width: 34px; height: 34px; border-radius: 50%; background: var(--green); color: #fff; font: 600 17px/34px var(--head); text-align: center; }
.content ol.steps li strong { display: block; color: var(--ink); font: 600 1.05rem var(--head); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 2px; }
@media (max-width: 760px) { .content .split { grid-template-columns: 1fr; gap: 20px; } .content .split-reverse > img { order: 0; } }

/* client logos: equal white tiles, logos scaled to fit, rows centred */
.content .logo-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 1.5em 0 2.5em; }
.content .logo-grid img { box-sizing: border-box; width: 172px; height: 104px; margin: 0; padding: 18px 22px; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,.04); transition: transform .25s, box-shadow .25s; }
.content .logo-grid img:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.1); }
@media (max-width: 600px) { .content .logo-grid { gap: 10px; } .content .logo-grid img { width: calc(50% - 5px); height: 84px; padding: 14px 16px; } }
.content .way { align-content: start; }
/* bigger intro heading at the top of each page */
.content .intro-tagline { font-size: clamp(1.75rem, 3.4vw, 2.5rem); line-height: 1.12; margin-bottom: .45em; }

/* FAQs: a clean list at reading width (not a stack of boxes), with a help panel underneath */
.content .faq-list { display: block; margin: 1.1em 0 1.6em; border-top: 2px solid var(--ink); }
.content .faq-list details { background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; transition: background .2s; }
.content .faq-list summary { padding: 10px 4px 10px 0; font: 600 1.05rem/1.3 var(--body); transition: color .2s; }
.content .faq-list summary:hover { color: var(--green-dark); }
.content .faq-list summary:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.content .faq-list summary::after { content: ''; width: 10px; height: 10px; border-radius: 0; background: none; border: solid var(--green-dark); border-width: 0 2px 2px 0; transform: translateY(-3px) rotate(45deg); margin-right: 6px; }
.content .faq-list details[open] summary::after { background: none; transform: translateY(2px) rotate(-135deg); }
.content .faq-list details[open] summary { color: var(--green-dark); }
.content .faq-list details > div { padding: 0 40px 12px 0; }
.content .faq-list details > div p { margin: 0 0 .6em; }
.content .faq-help { margin: 0 0 1em; padding: 20px 24px; background: var(--bg-alt); border-radius: 8px; }
.content .faq-help h2 { margin: 0 0 .4em; font-size: 1.6rem; }
.content .faq-help p { margin: 0 0 .8em; }
.content .faq-help .faq-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.content .faq-help .btn { color: #fff; }
.content .faq-help .btn-plain { background: #fff; color: var(--green-dark); box-shadow: inset 0 0 0 2px var(--green); }
.content .faq-help .btn-plain:hover { background: var(--green); color: #fff; }
@media (max-width: 600px) { .content .faq-help { padding: 22px 18px; } .content .faq-help .btn { flex: 1 1 100%; text-align: center; } }
.chat-only[hidden] { display: none !important; }
.content .faq-help .btn { padding: 12px 20px; }
.content .price-tables:has(> table:only-child) { max-width: 560px; }

/* Membership: benefits and fees side by side */
.content .member-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 1.4em 0; }
.content .member-card { background: var(--bg-alt); border-radius: 8px; padding: 22px 26px; }
.content .member-card h2 { margin: 0 0 .6em; font-size: 1.3rem; }
.content .member-card ul.ticks { font-size: 16px; }
.content .member-fees { list-style: none; padding: 0; margin: 0; }
.content .member-fees li { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--line); color: var(--ink); }
.content .member-fees li:last-child { border-bottom: 0; }
.content .member-fees strong { font: 500 1.15rem var(--head); color: var(--green-dark); }
@media (max-width: 700px) { .content .member-cards { grid-template-columns: 1fr; } }
