/* ============================================================
   Anthony Barker — dark theme, hunter green + antique brass
   Plain CSS. No framework, no build step.
   ============================================================ */

:root{
  /* Surfaces */
  --bg:        #0B100D;
  --bg-2:      #101713;
  --surface:   #151E18;
  --surface-2: #1B261E;
  --border:    #26332A;

  /* Brand */
  --hunter:    #355E3B;
  --hunter-2:  #2A4A2F;
  --accent:    #6FA878;
  --brass:     #C2A45E;
  --brass-2:   #D8BC7E;

  /* Text */
  --text:      #ECEFE9;
  --muted:     #9DA9A0;
  --ink:       #0B100D;

  /* Type */
  --font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-display: "Fraunces", ui-serif, Georgia, "Times New Roman", serif;

  /* Fluid type */
  --fs-h1: clamp(2.3rem, 7vw, 4.6rem);
  --fs-h2: clamp(1.75rem, 4.2vw, 2.9rem);
  --fs-h3: clamp(1.05rem, 2vw, 1.25rem);
  --fs-lede: clamp(1.02rem, 2.2vw, 1.2rem);

  /* Layout */
  --wrap: 1160px;
  --radius: 14px;
  --radius-lg: 20px;
  --gap: clamp(1rem, 2.5vw, 1.5rem);
  --section-y: clamp(3.5rem, 9vw, 7rem);

  --shadow: 0 18px 50px -18px rgba(0,0,0,.85);
  --ring: 0 0 0 3px rgba(111,168,120,.45);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; display:block; }
h1,h2,h3{ font-family:var(--font-display); line-height:1.1; margin:0; font-weight:600; letter-spacing:-.015em; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ text-decoration:underline; }
button,input,select,textarea{ font:inherit; color:inherit; }

:focus-visible{ outline:none; box-shadow:var(--ring); border-radius:6px; }

/* ---------- Utilities ---------- */
.wrap{ width:min(100% - 2.2rem, var(--wrap)); margin-inline:auto; }
.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;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--brass); color:var(--ink);
  padding:.7rem 1.1rem; border-radius:0 0 10px 0; font-weight:600;
}
.skip-link:focus{ left:0; }

.eyebrow{
  font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--brass); font-weight:600; margin-bottom:.7rem;
}
.accent{ color:var(--accent); }
.notice{
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:1rem 1.1rem; color:var(--muted);
}

/* ---------- Buttons ---------- */
.btn{
  --btn-bg:var(--brass); --btn-fg:var(--ink);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:48px; padding:.8rem 1.5rem;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid transparent; border-radius:999px;
  font-weight:600; letter-spacing:.01em; text-align:center;
  cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.btn:hover{ text-decoration:none; transform:translateY(-2px); box-shadow:0 10px 26px -12px rgba(194,164,94,.75); }
.btn:active{ transform:translateY(0); }
.btn-primary{ background:var(--brass); color:var(--ink); }
.btn-primary:hover{ background:var(--brass-2); }
.btn-ghost{
  --btn-bg:transparent; --btn-fg:var(--text);
  border-color:var(--border); background:transparent;
}
.btn-ghost:hover{ border-color:var(--accent); color:var(--accent); box-shadow:none; }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:blur(14px) saturate(120%); -webkit-backdrop-filter:blur(14px) saturate(120%);
  border-bottom:1px solid transparent;
  transition:border-color .25s ease, background .25s ease;
}
.site-header.is-stuck{ border-bottom-color:var(--border); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; min-height:70px; gap:1rem; }

.brand{ display:flex; align-items:center; gap:.6rem; color:var(--text); }
.brand:hover{ text-decoration:none; }
.brand-mark{ color:var(--accent); display:flex; }
.brand-mark img{ width:36px; height:36px; display:block; }
.brand-text{ font-family:var(--font-display); font-weight:700; letter-spacing:.01em; font-size:1.05rem; white-space:nowrap; }
.brand-text em{ font-family:var(--font-body); font-style:normal; color:var(--brass); font-weight:500;
  font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; margin-left:.55rem; }

/* Mobile nav */
.nav-toggle{
  display:grid; gap:5px; place-content:center;
  width:46px; height:46px; padding:0;
  background:transparent; border:1px solid var(--border); border-radius:12px; cursor:pointer;
}
.nav-toggle span{ display:block; width:20px; height:2px; background:var(--text); transition:transform .25s ease, opacity .25s ease; }
.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); }

.primary-nav{
  position:absolute; inset:100% 0 auto 0;
  background:var(--bg-2); border-bottom:1px solid var(--border);
  display:none;
}
.primary-nav.is-open{ display:block; }
.primary-nav ul{ display:grid; padding:.5rem 0 1.1rem; }
.primary-nav a{
  display:block; padding:.85rem 1.1rem; color:var(--text); font-weight:500;
  border-bottom:1px solid var(--border);
}
.primary-nav a:hover{ background:var(--surface); text-decoration:none; color:var(--accent); }
.nav-cta{ color:var(--brass) !important; font-weight:600 !important; }

/* ---------- Hero ---------- */
.hero{ position:relative; padding:clamp(3rem,9vw,6.5rem) 0 var(--section-y); overflow:hidden; }
.hero-glow{
  position:absolute; inset:-30% -10% auto -10%; height:80%;
  background:
    radial-gradient(50% 60% at 22% 38%, rgba(53,94,59,.55), transparent 70%),
    radial-gradient(38% 48% at 78% 22%, rgba(194,164,94,.16), transparent 72%);
  filter:blur(24px); pointer-events:none; z-index:0;
}
.hero-inner{ position:relative; z-index:1; max-width:60ch; }
.hero h1{ font-size:var(--fs-h1); font-weight:700; margin-bottom:1.1rem; }
.lede{ font-size:var(--fs-lede); color:var(--muted); max-width:52ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin:1.9rem 0 2.6rem; }

.hero-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; max-width:44rem; }
.hero-stats li{
  background:linear-gradient(160deg, var(--surface), var(--bg-2));
  border:1px solid var(--border); border-radius:var(--radius); padding:1rem;
}
.hero-stats strong{ display:block; font-family:var(--font-display); font-size:1.5rem; color:var(--brass); }
.hero-stats span{ font-size:.82rem; color:var(--muted); }

/* ---------- Sections ---------- */
.section{ padding:var(--section-y) 0; }
.section-alt{ background:var(--bg-2); border-block:1px solid var(--border); }
.section-head{ max-width:60ch; margin-bottom:clamp(1.8rem,4vw,3rem); }
.section-head h2{ font-size:var(--fs-h2); margin-bottom:.7rem; }
.section-sub{ color:var(--muted); }

/* ---------- Portfolio ---------- */
.work-grid{ display:grid; gap:var(--gap); grid-template-columns:1fr; }
.work-card{
  position:relative; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; text-align:left;
  display:block; width:100%; padding:0; color:inherit;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.work-card:hover{ transform:translateY(-4px); border-color:var(--hunter); box-shadow:var(--shadow); }
.work-thumb{ position:relative; aspect-ratio:16/9; background:var(--surface-2); overflow:hidden; }
.work-thumb img{ width:100%; height:100%; object-fit:cover; }
.work-play{
  position:absolute; inset:0; display:grid; place-items:center;
  background:linear-gradient(180deg, rgba(11,16,13,.05), rgba(11,16,13,.6));
  transition:background .22s ease;
}
.work-play::after{
  content:""; width:56px; height:56px; border-radius:50%;
  background:var(--brass); box-shadow:0 6px 20px -6px rgba(0,0,0,.8);
  clip-path:polygon(36% 28%, 36% 72%, 74% 50%);
}
.work-card:hover .work-play{ background:linear-gradient(180deg, rgba(53,94,59,.18), rgba(11,16,13,.55)); }
.work-body{ padding:1rem 1.15rem 1.2rem; }
.work-body h3{ font-size:var(--fs-h3); margin-bottom:.3rem; }
.work-meta{ display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:.55rem; }
.tag{
  font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600;
  color:var(--accent); background:color-mix(in srgb, var(--hunter) 42%, transparent);
  border:1px solid var(--hunter); border-radius:999px; padding:.2rem .6rem;
}
.work-body p{ color:var(--muted); font-size:.92rem; }
.work-duration{
  position:absolute; right:.6rem; bottom:.6rem; z-index:2;
  background:rgba(11,16,13,.85); border:1px solid var(--border);
  border-radius:8px; padding:.15rem .5rem; font-size:.75rem; font-weight:600;
}

/* ---------- Service cards ---------- */
.card-grid{ display:grid; gap:var(--gap); grid-template-columns:1fr; }
.card{
  background:linear-gradient(165deg, var(--surface), var(--bg-2));
  border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:1.5rem; transition:transform .22s ease, border-color .22s ease;
}
.card:hover{ transform:translateY(-3px); border-color:var(--hunter); }
.card-icon{
  display:grid; place-items:center; width:44px; height:44px; margin-bottom:.9rem;
  border-radius:12px; background:color-mix(in srgb, var(--hunter) 40%, transparent);
  border:1px solid var(--hunter); color:var(--brass); font-size:1.1rem;
}
.card h3{ font-size:var(--fs-h3); margin-bottom:.45rem; }
.card p{ color:var(--muted); font-size:.94rem; }

/* ---------- Process ---------- */
.steps{ display:grid; gap:var(--gap); grid-template-columns:1fr; counter-reset:step; }
.steps li{
  position:relative; padding:1.4rem 1.4rem 1.4rem 1.5rem;
  background:var(--surface); border:1px solid var(--border);
  border-left:3px solid var(--hunter); border-radius:var(--radius);
}
.step-n{
  font-family:var(--font-display); font-size:.85rem; font-weight:700;
  color:var(--brass); letter-spacing:.14em; display:block; margin-bottom:.5rem;
}
.steps h3{ font-size:var(--fs-h3); margin-bottom:.35rem; }
.steps p{ color:var(--muted); font-size:.94rem; }

.form-msg{ font-size:.88rem; min-height:1.2em; color:var(--accent); }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; gap:clamp(1.6rem,4vw,3rem); grid-template-columns:1fr; }
.contact-list{ display:grid; gap:.9rem; margin-top:1.6rem; }
.contact-list li{ display:grid; gap:.15rem; }
.contact-list span{
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass); font-weight:600;
}
.contact-list a,.contact-list p{ color:var(--text); }
.contact-list a:hover{ color:var(--accent); }

.contact-form{
  display:grid; gap:1rem; padding:clamp(1.2rem,3vw,2rem);
  background:linear-gradient(165deg, var(--surface), var(--bg-2));
  border:1px solid var(--border); border-radius:var(--radius-lg);
}
.field{ display:grid; gap:.4rem; }
.field label{ font-size:.82rem; font-weight:600; color:var(--muted); letter-spacing:.03em; }
.field input,.field select,.field textarea{
  width:100%; min-height:48px; padding:.75rem .9rem;
  background:var(--bg); border:1px solid var(--border); border-radius:10px;
}
.field textarea{ min-height:120px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--accent); }

/* ---------- Footer ---------- */
.site-footer{ border-top:1px solid var(--border); padding:2rem 0; background:var(--bg-2); }
.footer-inner{ display:flex; flex-wrap:wrap; gap:.8rem 1.5rem; align-items:center; justify-content:space-between; }
.footer-inner p{ color:var(--muted); font-size:.88rem; }
.footer-inner ul{ display:flex; flex-wrap:wrap; gap:1.2rem; }
.footer-inner a{ color:var(--muted); font-size:.88rem; }
.footer-inner a:hover{ color:var(--accent); }

/* ---------- Modal ---------- */
.modal{ position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:1rem; }
.modal[hidden]{ display:none; }
.modal-backdrop{ position:absolute; inset:0; background:rgba(6,9,7,.82); backdrop-filter:blur(6px); }
.modal-panel{
  position:relative; width:min(100%, 980px); max-height:92vh; overflow:auto;
  background:var(--bg-2); border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:1rem; box-shadow:var(--shadow);
}
.modal-player{ position:relative; aspect-ratio:16/9; background:#000; border-radius:12px; overflow:hidden; }
.modal-player iframe{ width:100%; height:100%; border:0; }
.modal-panel h3{ font-size:1.15rem; margin:.9rem .3rem .25rem; }
.modal-meta{ color:var(--muted); font-size:.88rem; margin:0 .3rem .4rem; }
.modal-close{
  position:absolute; top:-14px; right:-6px; z-index:2;
  width:44px; height:44px; border-radius:50%;
  background:var(--brass); color:var(--ink); border:0;
  font-size:1.6rem; line-height:1; cursor:pointer;
}
body.modal-open{ overflow:hidden; }

/* ============================================================
   Responsive
   ============================================================ */
@media (min-width:640px){
  .work-grid{ grid-template-columns:repeat(2,1fr); }
  .card-grid{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:900px){
  .nav-toggle{ display:none; }
  .primary-nav{
    position:static; display:block !important; background:none; border:0;
  }
  .primary-nav ul{ grid-auto-flow:column; align-items:center; gap:.15rem; padding:0; }
  .primary-nav a{ border:0; border-radius:999px; padding:.5rem .78rem; font-size:.9rem; }
  .primary-nav a:hover{ background:var(--surface); }
  .nav-cta{
    border:1px solid var(--brass) !important; padding:.5rem 1.1rem !important;
  }
  .nav-cta:hover{ background:var(--brass) !important; color:var(--ink) !important; }

  .work-grid{ grid-template-columns:repeat(3,1fr); }
  .card-grid{ grid-template-columns:repeat(3,1fr); }
  .steps{ grid-template-columns:repeat(4,1fr); }
  .contact-grid{ grid-template-columns:1fr 1.05fr; align-items:start; }
}
@media (min-width:1100px){
  .hero-inner{ max-width:64ch; }
  .primary-nav ul{ gap:.35rem; }
  .primary-nav a{ padding:.55rem .95rem; font-size:.94rem; }
}
/* Between 900-1099px the bar is tightest: hide the sub-label before it wraps. */
@media (min-width:900px) and (max-width:1099px){
  .brand-text em{ display:none; }
}

/* ---------- Motion / print ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* Long name on narrow phones: drop the sub-label, keep the name. */
@media (max-width:560px){ .brand-text em{ display:none; } }

/* ============================================================
   About / Testimonials / FAQ
   ============================================================ */

/* Placeholder text — brass, dashed underline, so it's obvious what to replace */
.ph{ color:var(--brass); border-bottom:1px dashed rgba(194,164,94,.5); }

/* ---------- About ---------- */
.about-grid{ display:grid; gap:clamp(1.6rem,4vw,3rem); grid-template-columns:1fr; align-items:start; }
.portrait-placeholder{
  aspect-ratio:4/5; display:grid; place-items:center; text-align:center; padding:1.5rem;
  border:1px dashed var(--hunter); border-radius:var(--radius-lg);
  background:linear-gradient(165deg, var(--surface), var(--bg-2));
  color:var(--muted); font-size:.9rem; line-height:1.5;
}
.portrait-placeholder small{ color:var(--brass); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; }
.about-media img{
  width:100%; height:auto; display:block;
  border-radius:var(--radius-lg); border:1px solid var(--border);
}
.footer-logo{ height:54px; width:auto; display:block; opacity:.92; }
.about-copy h2{ font-size:var(--fs-h2); margin-bottom:1rem; }
.about-copy p{ color:var(--muted); margin-bottom:1rem; }
.about-copy p:first-of-type{ color:var(--text); font-size:1.06rem; }
.facts{ display:grid; gap:.75rem; margin:1.4rem 0 1.7rem; }
.facts li{ display:grid; gap:.15rem; padding-bottom:.75rem; border-bottom:1px solid var(--border); }
.facts span{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass); font-weight:600; }
.facts strong{ font-weight:500; color:var(--text); }

/* ---------- Testimonials ---------- */
.quote-grid{ display:grid; gap:var(--gap); grid-template-columns:1fr; }
.quote{
  position:relative; margin:0; height:100%; padding:1.6rem 1.5rem 1.4rem;
  background:linear-gradient(165deg, var(--surface), var(--bg-2));
  border:1px solid var(--border); border-radius:var(--radius-lg);
}
.quote::before{
  content:"\201C"; position:absolute; top:.5rem; left:1.05rem;
  font-family:var(--font-display); font-size:3.4rem; line-height:1;
  color:var(--hunter); opacity:.6;
}
.quote blockquote{ margin:0 0 1.1rem; padding-top:1.6rem; }
.quote blockquote p{ color:var(--text); font-size:.98rem; }
.quote figcaption{ font-size:.85rem; color:var(--muted); }
.quote figcaption strong{ display:block; color:var(--accent); font-weight:600; margin-bottom:.1rem; }

/* ---------- FAQ ---------- */
.faq{ display:grid; gap:.7rem; max-width:64ch; }
.faq details{
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:.15rem 1.15rem;
  transition:border-color .2s ease;
}
.faq details[open]{ border-color:var(--hunter); }
.faq summary{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  cursor:pointer; padding:.95rem 0; list-style:none;
  font-family:var(--font-display); font-weight:600; font-size:1.02rem;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; flex:none; color:var(--brass); font-size:1.35rem; line-height:1; }
.faq details[open] summary::after{ content:"\2013"; }
.faq details p{ color:var(--muted); font-size:.94rem; padding:0 0 1.1rem; margin:0; }

@media (min-width:640px){
  .quote-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:900px){
  .about-grid{ grid-template-columns:0.85fr 1.15fr; gap:clamp(2rem,4vw,3.5rem); }
  .quote-grid{ grid-template-columns:repeat(3,1fr); }
}


/* ============================================================
   SHOWREEL  ·  FILTERS  ·  PRICING   (added with the redesigned page)
   ============================================================ */

/* The hidden attribute must beat any component's own display rule,
   otherwise filtering silently does nothing. */
[hidden]{ display:none !important; }

/* ---------- Showreel ---------- */
.reel-section .section-head{ text-align:center; margin-inline:auto; }
.reel{
  display:block; width:100%; padding:0; margin-top:.4rem; cursor:pointer;
  position:relative; overflow:hidden; aspect-ratio:16/9;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--bg-2); color:inherit; box-shadow:var(--shadow);
}
.reel img{
  width:100%; height:100%; object-fit:cover; display:block;
  opacity:.85; transition:transform .6s ease, opacity .4s ease;
}
.reel:hover img, .reel:focus-visible img{ transform:scale(1.03); opacity:1; }
.reel-play{
  position:absolute; inset:0; margin:auto; width:clamp(64px,9vw,88px); height:clamp(64px,9vw,88px);
  border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(circle at 50% 40%, rgba(53,94,59,.97), rgba(11,16,13,.93));
  border:1px solid rgba(194,164,94,.75); box-shadow:0 12px 44px rgba(0,0,0,.6);
  transition:transform .3s ease, border-color .3s ease;
}
.reel-play::after{
  content:""; margin-left:5px; border-style:solid;
  border-width:11px 0 11px 18px;
  border-color:transparent transparent transparent var(--brass-2);
}
.reel:hover .reel-play{ transform:scale(1.07); border-color:var(--brass-2); }
.reel-cap{
  position:absolute; left:0; right:0; bottom:0; display:flex;
  justify-content:space-between; align-items:center; gap:1rem;
  padding:1.1rem 1.15rem .9rem; font-size:.78rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--text);
  background:linear-gradient(to top, rgba(11,16,13,.94), rgba(11,16,13,0));
}
.reel-cap strong{ font-weight:600; }
.reel-cap span{ color:var(--brass); font-variant-numeric:tabular-nums; }

/* ---------- Category filters ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:.45rem; margin:1.7rem 0 .7rem; }
.filter{
  font:inherit; font-size:.83rem; cursor:pointer; color:var(--muted);
  background:var(--surface); border:1px solid var(--border); border-radius:999px;
  padding:.5rem .95rem; display:inline-flex; align-items:center; gap:.45rem;
  transition:color .2s, border-color .2s, background .2s;
}
.filter:hover{ color:var(--text); border-color:var(--hunter); }
.filter:focus-visible{ outline:none; box-shadow:var(--ring); }
.filter.is-active{ color:var(--ink); background:var(--brass); border-color:var(--brass); font-weight:600; }
.filter-n{ font-size:.72rem; opacity:.7; font-variant-numeric:tabular-nums; }
.work-count{ font-size:.82rem; color:var(--muted); margin-bottom:1.4rem; }

/* ---------- vertical thumbnails + category chip ---------- */
.work-thumb.is-vertical{ aspect-ratio:9/16; }
.tag-cat{ color:var(--brass); border-color:rgba(194,164,94,.42); }

/* ---------- modal player ---------- */
.modal-player video{ width:100%; height:100%; display:block; background:#000; border-radius:var(--radius); }
.modal-empty{ display:grid; place-items:center; height:100%; padding:1.5rem; text-align:center; color:var(--muted); }

/* ---------- Pricing ---------- */
.price-grid{ display:grid; gap:var(--gap); grid-template-columns:1fr; margin-top:1.9rem; }
.price-card{
  display:flex; flex-direction:column; gap:.85rem; padding:1.6rem 1.5rem;
  background:linear-gradient(165deg, var(--surface), var(--bg-2));
  border:1px solid var(--border); border-radius:var(--radius-lg);
}
.price-card.is-featured{
  border-color:var(--hunter);
  box-shadow:0 0 0 1px rgba(53,94,59,.65), 0 18px 50px -20px rgba(0,0,0,.9);
}
.price-card h3{ font-size:1.15rem; }
.price-amount{ font-family:var(--font-display); font-size:2.1rem; line-height:1; color:var(--text); }
.price-amount small{
  display:block; margin-top:.45rem; font-family:var(--font-body);
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
}
.price-features{ display:grid; gap:.5rem; margin:.3rem 0 .7rem; }
.price-features li{ position:relative; padding-left:1.15rem; color:var(--muted); font-size:.9rem; }
.price-features li::before{
  content:""; position:absolute; left:0; top:.58em;
  width:.45rem; height:.45rem; border-radius:50%; background:var(--brass);
}
.price-card .btn{ margin-top:auto; }
.price-note{ margin-top:1.5rem; font-size:.88rem; color:var(--muted); max-width:60ch; }

@media (min-width:760px){
  .price-grid{ grid-template-columns:repeat(3,1fr); align-items:stretch; }
}
@media (prefers-reduced-motion: reduce){
  .reel img, .reel-play{ transition:none; }
  .reel:hover img, .reel:focus-visible img{ transform:none; }
}


/* ============================================================
   WORK GRID -> MASONRY
   ------------------------------------------------------------
   A CSS grid stretches every card in a row to the height of the
   tallest one. With mixed orientations that meant a 9:16 card
   (655px thumb) forced the two 16:9 cards beside it (207px thumb)
   to stretch to 826px, leaving ~450px of empty card under each.
   Masonry columns let every card keep its natural height, so the
   vertical shorts sit tall and the landscape work stays compact.
   ============================================================ */
.work-grid{
  display:block;
  columns:1;
  column-gap:var(--gap);
}
.work-card{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  margin:0 0 var(--gap);
  width:100%;
  /* hover lift uses transform; keep it from clipping inside columns */
  will-change:transform;
}
@media (min-width:640px){  .work-grid{ columns:2; } }
@media (min-width:1000px){ .work-grid{ columns:3; } }

/* A full 9:16 card would be 658px tall at this column width, which
   dominates the page. Cap it and crop from the centre instead. */
.work-thumb.is-vertical{ aspect-ratio:3/4; }
.work-thumb.is-vertical img{ object-position:center 42%; }
