/* ===================== PATRIOT FRAMES: brick & walnut workshop theme ===================== */
@font-face{font-family:"Cinzel";src:url(../assets/fonts/cinzel-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Cinzel";src:url(../assets/fonts/cinzel-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../assets/fonts/cormorant-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../assets/fonts/cormorant-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
.frames-page{
  --wood-1:#2a170d;--wood-2:#3b2213;--wood-3:#4e2e19;--brick:#7a3222;--cream:#f3e7d3;--cream-2:#d9c7a8;--gold-1:#f7e3a1;--gold-2:#d6a849;--gold-3:#8d6322;
  --gold-grad:linear-gradient(180deg,#fbeab0 0%,#e9c46a 28%,#b8862e 55%,#f3d27a 78%,#9c6c22 100%);
  --serif:"Cinzel","Trajan Pro",Georgia,serif;--serif-2:"Cormorant Garamond",Georgia,serif;
  background:#1a0e08;color:var(--cream)
}
.frames-page ::selection{background:#d6a849;color:#1a0e08}
/* brick background with dark overlay + warm window glow */
.frames-page .brick{
  background:
    radial-gradient(1100px 700px at 88% -5%,rgba(255,196,110,.28),transparent 60%),
    radial-gradient(800px 640px at 12% 45%,rgba(14,6,2,.6),transparent 70%),
    linear-gradient(180deg,rgba(26,12,6,.46),rgba(22,10,5,.62)),
    url(../assets/frames/brick.svg) 0 0/320px 168px repeat;
  background-attachment:scroll;
}
.gold-text{font-family:var(--serif);font-weight:700;text-transform:none;letter-spacing:.04em;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.55)) drop-shadow(0 8px 24px rgba(214,168,73,.18))}
.frames-page h2.gold-text{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.1;margin-bottom:6px}
.frames-page h3{font-family:var(--serif);font-weight:700;color:var(--gold-1);font-size:1.28rem;letter-spacing:.03em;text-transform:none}
.gi{width:1.2em;height:1.2em;flex-shrink:0;display:inline-block;vertical-align:-.2em}
.gi.s{width:.9em;height:.9em;color:var(--gold-2)}
.star-div{display:flex;align-items:center;gap:14px;justify-content:center;margin:10px 0 18px;color:var(--gold-2)}
.star-div span{height:1px;width:min(110px,22vw);background:linear-gradient(90deg,transparent,#d6a849,transparent)}
.star-div .gi{width:18px;height:18px;fill:url(#none);color:var(--gold-1)}
.fr-hero-copy .star-div{justify-content:flex-start}
.fr-hero-copy .star-div span:first-child{display:none}
.fr-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:600;font-size:.82rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-2);margin-bottom:12px}
.fr-sub{font-family:var(--serif-2);font-style:italic;font-size:1.35rem;color:var(--cream-2);max-width:680px;margin:0 auto}
.fr-head{margin-bottom:46px}
.fr-section{padding:96px 0;position:relative}
.fr-section + .fr-section::before,.fr-tools + .fr-section::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(900px,86%);height:1px;background:linear-gradient(90deg,transparent,rgba(214,168,73,.55),transparent)}
@media (max-width:700px){.fr-section{padding:68px 0}}

/* header / topbar tone */
.frames-page .topbar{background:#120904;color:#cdb894}
.frames-page .umb-nav a.on{background:linear-gradient(180deg,#e9c46a,#b8862e);color:#1a0e08}
.frames-page .site-header{background:rgba(32,18,10,.9);border-color:rgba(214,168,73,.18)}
.frames-page .site-header.scrolled{border-color:rgba(214,168,73,.3);box-shadow:0 8px 24px rgba(0,0,0,.4)}
.frames-page .brand-text{font-family:var(--serif);color:var(--gold-1);letter-spacing:.04em;text-transform:none;font-size:1.32rem}
.frames-page .brand-text small{color:var(--cream-2);font-family:var(--font);letter-spacing:.18em;text-transform:uppercase}
.frames-page .nav a{color:var(--cream)}
.frames-page .nav a:hover{background:rgba(214,168,73,.12);color:var(--gold-1)}
.frames-page .header-phone{color:var(--cream)}.frames-page .header-phone svg{color:var(--gold-2)}
.frames-page .menu-btn{border-color:rgba(214,168,73,.35);color:var(--gold-1)}
@media (max-width:880px){.frames-page .nav{background:#20120a;border-color:rgba(214,168,73,.2)}.frames-page .nav a{border-color:rgba(255,255,255,.05)}}

/* buttons */
.btn-gold{--b:#d6a849;background:linear-gradient(180deg,#f6dc8e,#d6a849 45%,#a87a2c);border-color:#c79a42;color:#20120a;box-shadow:0 8px 22px rgba(214,168,73,.28),inset 0 1px 0 rgba(255,255,255,.5);font-weight:800;letter-spacing:.02em}
.btn-gold:hover{background:linear-gradient(180deg,#fbe6a6,#e1b65a 45%,#b8862e);border-color:#e1b65a;box-shadow:0 12px 28px rgba(214,168,73,.38)}
.btn-ghost-gold{background:transparent;color:var(--gold-1);border-color:rgba(214,168,73,.55);box-shadow:none}
.btn-ghost-gold:hover{background:rgba(214,168,73,.1);border-color:var(--gold-1)}
.frames-page .btn-outline{background:transparent;color:var(--gold-1);border-color:rgba(214,168,73,.5)}

/* hero */
.fr-hero{position:relative;overflow:hidden;padding:78px 0 96px}
.fr-hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:52px;align-items:center;position:relative;z-index:2}
.fr-hero h1.gold-text{font-size:clamp(3rem,7vw,5.6rem);line-height:1;margin:0}
.fr-lead{font-size:1.18rem;color:var(--cream);max-width:540px;margin:6px 0 16px}
.fr-badge{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;border-radius:12px;background:rgba(0,0,0,.35);border:1px solid rgba(214,168,73,.35);color:var(--cream);font-weight:600;font-size:.95rem}
.fr-badge .gi{color:var(--gold-2);width:22px;height:22px}
.fr-hero .hero-ctas{margin:26px 0 0}
.sunbeams{position:absolute;inset:-20% -10% auto auto;width:90%;height:140%;pointer-events:none;z-index:1;background:repeating-conic-gradient(from 200deg at 100% 0%,rgba(255,214,140,.10) 0deg 4deg,transparent 4deg 11deg);mask-image:radial-gradient(70% 60% at 100% 0%,#000 0%,transparent 75%);-webkit-mask-image:radial-gradient(70% 60% at 100% 0%,#000 0%,transparent 75%);mix-blend-mode:screen;animation:beams 14s ease-in-out infinite alternate}
.sunbeams.soft{opacity:.6;left:0;right:auto;transform:scaleX(-1)}
@keyframes beams{from{opacity:.75}to{opacity:1}}
.sawdust{position:absolute;left:0;right:0;bottom:0;height:90px;z-index:1;pointer-events:none;opacity:.55;background:
  radial-gradient(2px 1px at 8% 70%,#e7c99a 50%,transparent 51%),radial-gradient(3px 2px at 15% 82%,#d9b98a 50%,transparent 51%),radial-gradient(2px 2px at 24% 64%,#f0d7ad 50%,transparent 51%),radial-gradient(4px 2px at 37% 88%,#cfae7d 50%,transparent 51%),radial-gradient(2px 1px at 49% 72%,#e7c99a 50%,transparent 51%),radial-gradient(3px 2px at 58% 90%,#d9b98a 50%,transparent 51%),radial-gradient(2px 2px at 66% 68%,#f0d7ad 50%,transparent 51%),radial-gradient(4px 2px at 77% 84%,#cfae7d 50%,transparent 51%),radial-gradient(2px 1px at 86% 74%,#e7c99a 50%,transparent 51%),radial-gradient(3px 2px at 94% 92%,#d9b98a 50%,transparent 51%),
  linear-gradient(180deg,transparent,rgba(120,80,40,.25))}
/* gilt frame around the brand card */
.gilt-frame{position:relative;padding:18px;border-radius:6px;background:linear-gradient(135deg,#f7e3a1,#b8862e 22%,#6e4a16 40%,#e9c46a 55%,#8d6322 75%,#f3d27a);box-shadow:0 40px 80px rgba(0,0,0,.6),0 0 90px rgba(255,190,100,.18),inset 0 0 0 2px rgba(255,255,255,.25)}
.gilt-frame::before{content:"";position:absolute;inset:8px;border:2px solid rgba(60,35,10,.55);border-radius:3px;pointer-events:none}
.brand-card{position:relative;aspect-ratio:2048/1193;overflow:hidden;background:#20120a;box-shadow:inset 0 0 0 3px rgba(0,0,0,.6)}
.brand-pic img{width:100%;height:100%;object-fit:cover;display:block}
.brand-fallback{display:none;position:absolute;inset:0;background:
  radial-gradient(60% 70% at 85% 10%,rgba(255,206,120,.55),transparent 60%),
  linear-gradient(180deg,rgba(30,14,6,.35),rgba(20,9,4,.75)),url(../assets/frames/brick.svg) 0 0/220px 115px repeat;align-items:center;justify-content:center;text-align:center}
.brand-card.no-img .brand-fallback{display:flex}
.brand-card.no-img .brand-pic{display:none}
.bf-title{font-family:var(--serif);font-weight:700;font-size:clamp(2rem,5vw,3.6rem);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 rgba(0,0,0,.7)) drop-shadow(0 0 18px rgba(255,200,110,.25));line-height:1.05}
.bf-tag{font-family:var(--serif);font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-1);font-size:clamp(.7rem,1.6vw,1rem)}
.bf-text{position:relative;z-index:2;padding:0 6%}
.bf-text .star-div{margin:8px 0 10px}
.bf-coat{position:absolute;left:5%;top:8%;color:rgba(247,227,161,.18)}
.bf-helmet{width:110px;height:110px}
.bf-glow{position:absolute;right:6%;top:6%;width:28%;height:52%;background:linear-gradient(180deg,rgba(255,236,190,.35),rgba(255,206,120,.08));border:3px solid rgba(60,30,10,.6);box-shadow:0 0 60px rgba(255,206,120,.45)}
.bf-glow::before,.bf-glow::after{content:"";position:absolute;background:rgba(60,30,10,.6)}
.bf-glow::before{left:50%;top:0;bottom:0;width:3px}.bf-glow::after{top:50%;left:0;right:0;height:3px}
@media (max-width:900px){.fr-hero-grid{grid-template-columns:1fr;gap:38px}.fr-hero{padding:46px 0 72px}.fr-hero-art{order:-1}}

/* walnut "bench" cards */
.wood-card{position:relative;border-radius:16px;padding:30px 26px;color:var(--cream);
  background:linear-gradient(180deg,rgba(48,26,13,.72),rgba(24,12,6,.86)),url(../assets/frames/wood.svg) center/600px 300px;
  border:1px solid rgba(214,168,73,.32);box-shadow:0 22px 44px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,235,190,.12),inset 0 -6px 0 rgba(0,0,0,.25);transition:transform .25s,box-shadow .25s,border-color .25s}
.wood-card:hover{transform:translateY(-5px);border-color:rgba(214,168,73,.6);box-shadow:0 30px 60px rgba(0,0,0,.55),0 0 40px rgba(214,168,73,.12),inset 0 1px 0 rgba(255,235,190,.15)}
.wood-card p{color:var(--cream-2);margin:0}
.gi-wrap{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin-bottom:18px;color:var(--gold-1);background:radial-gradient(circle at 35% 30%,rgba(255,220,150,.25),rgba(0,0,0,.25));border:1.5px solid rgba(214,168,73,.55);box-shadow:0 0 24px rgba(214,168,73,.18)}
.gi-wrap .gi{width:32px;height:32px}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc-grid.three{grid-template-columns:repeat(3,1fr)}
.step-n{position:absolute;top:18px;right:22px;font-family:var(--serif);font-size:2.4rem;font-weight:700;color:rgba(214,168,73,.22)}
@media (max-width:1000px){.svc-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.svc-grid,.svc-grid.three{grid-template-columns:1fr}}

/* story */
.fr-story{overflow:hidden}
.story-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:46px;align-items:center;position:relative;z-index:2}
.story-panel{position:relative;border-radius:14px;padding:22px 10px 14px;background:radial-gradient(70% 60% at 70% 10%,rgba(255,200,120,.32),transparent 70%),linear-gradient(180deg,rgba(30,14,6,.25),rgba(20,9,4,.55)),url(../assets/frames/brick.svg) 0 0/240px 126px;box-shadow:inset 0 0 60px rgba(0,0,0,.6),0 26px 50px rgba(0,0,0,.5);border:10px solid #3b2213;outline:2px solid rgba(214,168,73,.4)}
.coat-art{width:100%;height:auto;max-height:460px;filter:drop-shadow(0 18px 18px rgba(0,0,0,.55))}
.story-art .ph-note{margin-top:12px}
.story-copy{padding:38px 36px}
.story-copy .star-div{justify-content:flex-start}.story-copy .star-div span:first-child{display:none}
.story-copy p{margin-bottom:12px;font-size:1.04rem}
.path{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;counter-reset:p}
.path li{text-align:center;padding:14px 8px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid rgba(214,168,73,.25);position:relative}
.path li + li::before{content:"";position:absolute;left:-9px;top:50%;width:8px;height:2px;background:var(--gold-2)}
.path .gi{width:30px;height:30px;color:var(--gold-1);margin:0 auto 6px;display:block}
.path b{display:block;font-family:var(--serif);color:var(--gold-1);font-size:.98rem}
.path span{font-size:.8rem;color:var(--cream-2)}
@media (max-width:900px){.story-grid{grid-template-columns:1fr}.story-copy{padding:28px 22px}.story-art{max-width:440px;margin:0 auto}}

/* tools strip (bench) */
.fr-tools{background:linear-gradient(180deg,rgba(30,15,7,.6),rgba(20,10,5,.5)),url(../assets/frames/wood.svg) center/600px 300px;border-top:1px solid rgba(214,168,73,.3);border-bottom:1px solid rgba(214,168,73,.3);box-shadow:inset 0 8px 18px rgba(0,0,0,.45);padding:30px 0}
.tools-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.tools-row li{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--gold-1);text-align:center}
.tools-row .gi{width:40px;height:40px;filter:drop-shadow(0 0 10px rgba(214,168,73,.25))}
.tools-row span{font-family:var(--serif);font-size:.82rem;letter-spacing:.08em;color:var(--cream-2)}
@media (max-width:700px){.tools-row{grid-template-columns:repeat(3,1fr);row-gap:20px}}

/* gallery */
.gal-filters{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:30px}
.chip{font:600 .9rem var(--font);padding:9px 18px;border-radius:999px;border:1px solid rgba(214,168,73,.45);background:rgba(0,0,0,.3);color:var(--cream);cursor:pointer;transition:.15s}
.chip:hover{border-color:var(--gold-1)}
.chip.on{background:linear-gradient(180deg,#f6dc8e,#c99a3f);color:#20120a;border-color:#c99a3f}
.fr-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.gal-item{margin:0;position:relative;border-radius:14px;padding:16px 16px 14px;background:linear-gradient(180deg,rgba(48,26,13,.7),rgba(24,12,6,.85)),url(../assets/frames/wood.svg) center/600px 300px;border:1px solid rgba(214,168,73,.28);box-shadow:0 16px 34px rgba(0,0,0,.45);transition:transform .25s,border-color .25s}
.gal-item:hover{transform:translateY(-4px);border-color:rgba(214,168,73,.6)}
.gal-btn{display:block;width:100%;aspect-ratio:4/5;border:0;padding:0;background:rgba(0,0,0,.35);cursor:zoom-in;position:relative;border-radius:6px;overflow:hidden}
.gal-btn img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gal-item:hover .gal-btn img{transform:scale(1.04)}
.gal-btn .frame{position:absolute;inset:10px;padding:12px}
.gal-item.is-ph .gal-btn{background:radial-gradient(70% 60% at 70% 0%,rgba(255,200,120,.25),transparent 70%),linear-gradient(180deg,rgba(30,14,6,.3),rgba(20,9,4,.6)),url(../assets/frames/brick.svg) 0 0/200px 105px}
.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:rgba(20,10,5,.7);border:2px solid var(--gold-1);color:var(--gold-1);box-shadow:0 0 30px rgba(214,168,73,.35);transition:transform .2s}
.play svg{width:26px;height:26px;margin-left:3px}
.gal-item:hover .play{transform:translate(-50%,-50%) scale(1.08)}
.gal-item figcaption{margin-top:12px;text-align:center}
.gal-item figcaption b{display:block;font-family:var(--serif);color:var(--gold-1);font-size:1rem}
.gal-item figcaption span{font-size:.84rem;color:var(--cream-2)}
.gal-item > .ph-note{position:absolute;top:8px;left:8px;z-index:2}
@media (max-width:1000px){.fr-gallery{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.fr-gallery{grid-template-columns:1fr 1fr;gap:14px}.gal-item{padding:10px 10px 10px}}
/* lightbox */
.lightbox{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100vh;color:var(--cream)}
.lightbox::backdrop{background:rgba(10,5,2,.9);backdrop-filter:blur(4px)}
.lightbox[open]{display:flex;align-items:center;justify-content:center}
.lb-stage{margin:0;max-width:min(1100px,92vw);text-align:center}
.lb-media img,.lb-media video{max-width:100%;max-height:78vh;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.6);border:6px solid #3b2213;outline:1px solid rgba(214,168,73,.5)}
.lb-media iframe{width:min(960px,92vw);aspect-ratio:16/9;border:0;border-radius:6px}
.lb-ph{width:min(420px,80vw);margin:0 auto}
.lb-ph .frame{aspect-ratio:4/5}
.lb-ph p{font-family:var(--serif);color:var(--gold-1);margin-top:16px}
.lb-cap{margin-top:14px;font-size:.95rem;color:var(--cream-2)}
.lb-cap b{color:var(--gold-1);font-family:var(--serif)}
.lb-count{opacity:.6;margin-left:8px}
.lb-close,.lb-nav{position:fixed;background:rgba(20,10,5,.7);border:1px solid rgba(214,168,73,.5);color:var(--gold-1);border-radius:50%;width:50px;height:50px;font-size:1.8rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lb-close{top:18px;right:18px}.lb-prev{left:18px;top:50%}.lb-next{right:18px;top:50%}
.lb-close:hover,.lb-nav:hover{background:rgba(214,168,73,.2)}

/* quote */
.fr-quote-intro .star-div{justify-content:flex-start}.fr-quote-intro .star-div span:first-child{display:none}
.fr-quote-intro a{color:var(--gold-1)}
.fr-tip{display:flex;gap:12px;margin-top:22px;padding:16px 18px;border-radius:14px;background:rgba(0,0,0,.35);border:1px solid rgba(214,168,73,.3);color:var(--cream-2);font-size:.95rem}
.fr-tip .gi{width:26px;height:26px;color:var(--gold-1)}
.fr-tip b{color:var(--gold-1)}
.fr-form{padding:32px}
.fr-form:hover{transform:none}
.frames-page .field label,.frames-page .field .lbl{color:var(--cream)}
.frames-page .field .opt,.frames-page .field .hint{color:var(--cream-2)}
.frames-page .field input,.frames-page .field select,.frames-page .field textarea{background:#fbf6ec;border-color:#c9b48a;color:#2a170d}
.frames-page .field input:focus,.frames-page .field select:focus,.frames-page .field textarea:focus{border-color:#d6a849;box-shadow:0 0 0 4px rgba(214,168,73,.25)}
.frames-page .field .err{color:#ffb4a8}
.frames-page .upload{background:rgba(251,246,236,.06);border-color:rgba(214,168,73,.5);color:var(--cream)}
.frames-page .upload small{color:var(--cream-2)}
.frames-page .upload > span:first-of-type svg{color:var(--gold-1)}
.frames-page .upload:hover,.frames-page .upload.drag{background:rgba(214,168,73,.1);border-color:var(--gold-1)}
.frames-page .wiz-nav{border-color:rgba(214,168,73,.25)}
.frames-page .q-ok{background:rgba(22,121,74,.18);border-color:rgba(127,224,168,.4);color:#c9f2da}
.frames-page .q-ok.demo{background:rgba(214,168,73,.12);border-color:rgba(214,168,73,.6);color:var(--cream)}
.frames-page .q-ok code{background:rgba(0,0,0,.35);padding:1px 6px;border-radius:4px}
@media (max-width:640px){.fr-form{padding:22px 16px}}

/* placeholders on dark */
.frames-page .ph{background:rgba(255,226,140,.16);color:#ffe39a;border-color:rgba(255,215,120,.6)}
.frames-page .ph-note{background:rgba(30,16,8,.85);color:#ffe39a;border-color:rgba(255,215,120,.6)}

/* footer + mobile cta */
.frames-page .site-footer{background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.75)),url(../assets/frames/wood.svg) center/600px 300px;color:var(--cream-2);border-top:2px solid rgba(214,168,73,.35)}
.frames-page .site-footer h4{color:var(--gold-1);font-family:var(--serif);text-transform:none;letter-spacing:.06em}
.frames-page .site-footer a{color:var(--cream)}
.frames-page .mobile-cta{background:rgba(32,18,10,.96);border-color:rgba(214,168,73,.3)}
.frames-page .skip{background:var(--gold-1);color:#20120a}

/* =====================================================================
   CARD-AS-DESIGN MODE: John's business-card artwork becomes the page.
   Enabled automatically (html.has-card) once tools/optimize_hero.py has
   written assets/frames/brand/patriot-frames-bg*.{webp,jpg}. Until then the
   brick/walnut theme above is shown.
   Tune the crop: --card-x/--card-y (desktop) and --card-x-m/--card-y-m
   (phones, portrait crop: aim at the coat / eagle / window).
   ===================================================================== */
:root{--card-arn:1.7167;--hdr:118px;--vw:100vw;--card-x-m:3%;--card-y-m:60%}
/* John: "keep the fire gear photo in the background - the fire coat and the woodworking tools together".
   Desktop: the WHOLE card scene (coat + helmet, eagle, lettering, window light, bench tools) is shown
   uncropped ("contain") in a fixed layer starting just under the header, over a blurred/darkened copy of
   itself that fills any letterbox. Content scrolls over it on see-through glass panels, and the content
   column is narrowed so the coat (left) and the bench tools (bottom) stay visible at the edges. */
.card-bg{display:none}
.has-card .card-bg{display:block;position:fixed;inset:0;z-index:0;pointer-events:none;background-color:#140a05;background-repeat:no-repeat;background-position:center;background-size:cover;
  background-image:url(../assets/frames/brand/patriot-frames-bg-dim.jpg);background-image:image-set(url(../assets/frames/brand/patriot-frames-bg-dim.webp) type("image/webp"),url(../assets/frames/brand/patriot-frames-bg-dim.jpg) type("image/jpeg"))}
.has-card .card-bg::before{content:"";position:absolute;left:0;right:0;top:var(--card-top,var(--hdr));bottom:0;background-repeat:no-repeat;background-position:center;background-size:contain;
  background-image:url(../assets/frames/brand/patriot-frames-bg-md.jpg);background-image:image-set(url(../assets/frames/brand/patriot-frames-bg-md.webp) type("image/webp"),url(../assets/frames/brand/patriot-frames-bg-md.jpg) type("image/jpeg"))}
@media (min-width:1601px){.has-card .card-bg::before{background-image:url(../assets/frames/brand/patriot-frames-bg.jpg);background-image:image-set(url(../assets/frames/brand/patriot-frames-bg.webp) type("image/webp"),url(../assets/frames/brand/patriot-frames-bg.jpg) type("image/jpeg"))}}
.has-card .card-bg::after{content:"";position:absolute;left:0;right:0;top:var(--card-top,var(--hdr));bottom:0;background:radial-gradient(130% 95% at 55% 42%,transparent 62%,rgba(10,5,2,.32))}
.has-card .frames-page main,.has-card .frames-page .site-footer{position:relative;z-index:1}
.has-card .frames-page .topbar{position:relative;z-index:2}
.has-card .frames-page .brick{background:transparent}
.has-card .frames-page .sawdust,.has-card .frames-page .sunbeams{display:none}
/* opening screen: nothing but the card (its own lettering is the headline) + a small CTA row placed on the
   card just under "Custom Canvas & Frames", over the stacked frames, clear of coat, eagle, window and tools */
.fr-card-ctas{display:none}
.has-card .fr-hero{--hero-h:calc(100svh - var(--hdr));--img-w:min(var(--vw),calc(var(--hero-h) * var(--card-arn)));--img-h:calc(var(--img-w) / var(--card-arn));
  position:relative;min-height:0;display:block;padding:calc(var(--hero-h) + 10px) 0 40px}
.has-card .fr-hero .wrap,.has-card .fr-hero-grid{position:static}
.has-card .fr-card-ctas{display:flex;flex-wrap:nowrap;gap:10px;position:absolute;z-index:3;transform:translateX(-50%);
  left:calc(var(--vw) / 2 + var(--img-w) * .13);top:calc((var(--hero-h) - var(--img-h)) / 2 + var(--img-h) * .70)}
.has-card .fr-card-ctas .btn{padding:11px 18px;font-size:.92rem;box-shadow:0 10px 26px rgba(0,0,0,.5)}
.has-card .fr-card-ctas .btn-ghost-gold{background:rgba(18,9,4,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.has-card .fr-hero-grid{grid-template-columns:minmax(0,760px);justify-content:center;width:100%}
.has-card .fr-hero-art{display:none}
.has-card .fr-hero-copy > .fr-eyebrow,.has-card .fr-hero-copy > h1,.has-card .fr-hero-copy > .star-div{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.has-card .fr-hero-copy{text-align:center;background:rgba(18,9,4,.5);-webkit-backdrop-filter:blur(4px) saturate(1.1);backdrop-filter:blur(4px) saturate(1.1);border:1px solid rgba(214,168,73,.38);border-radius:16px;padding:20px 24px;box-shadow:0 24px 50px rgba(0,0,0,.4)}
.has-card .fr-hero-copy .hero-ctas{justify-content:center}
.has-card .fr-hero .fr-lead{font-size:1.06rem;margin:0 0 10px}
.has-card .fr-hero .hero-ctas{margin-top:14px}
/* narrower content column on desktop so the coat and the bench stay in view at the sides */
@media (min-width:901px){.has-card .frames-page main .wrap{max-width:min(var(--wrap),74vw)}}
/* see-through glass + walnut panels: light blur only, so the coat, brick and tools read through them */
.has-card .frames-page main p,.has-card .frames-page main li,.has-card .frames-page main figcaption{text-shadow:0 1px 2px rgba(0,0,0,.65)}
.has-card .fr-section{padding:84px 0}
.has-card .fr-head{background:rgba(18,9,4,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid rgba(214,168,73,.24);border-radius:18px;padding:24px 28px 20px;max-width:880px;margin-left:auto;margin-right:auto}
.has-card .wood-card,.has-card .gal-item{background:linear-gradient(180deg,rgba(48,26,13,.5),rgba(22,11,5,.62));-webkit-backdrop-filter:blur(4px) saturate(1.1);backdrop-filter:blur(4px) saturate(1.1);border-color:rgba(214,168,73,.34)}
.has-card .story-copy,.has-card .fr-form{background:linear-gradient(180deg,rgba(36,19,9,.62),rgba(18,9,4,.72));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.has-card .fr-tools{background:rgba(22,11,5,.48);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
/* the coat illustration becomes an empty gilt frame looking onto the real coat behind */
.has-card .story-panel{background:transparent;box-shadow:0 26px 50px rgba(0,0,0,.5),inset 0 0 40px rgba(0,0,0,.35);border-color:#3b2213}
.has-card .story-panel .coat-art{visibility:hidden}
.has-card .story-art .ph-note{display:none}
.has-card .frames-page .site-footer{background:rgba(12,6,3,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
/* browsers without backdrop-filter: use the pre-blurred, darkened variant */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .has-card .story-copy,.has-card .fr-form,.has-card .fr-hero-copy,.has-card .fr-head{background:linear-gradient(rgba(18,9,4,.35),rgba(18,9,4,.35)),url(../assets/frames/brand/patriot-frames-bg-dim.jpg) center/cover fixed}
  .has-card .wood-card,.has-card .gal-item{background:rgba(30,16,8,.8)}
}
/* Laura page: the card is the hero's own background (whole scene kept in frame on desktop) */
.has-card .la-hero{background-color:#140a05;background-repeat:no-repeat,no-repeat;background-position:center,center;background-size:contain,cover;
  background-image:url(../assets/frames/brand/patriot-frames-hero.jpg),url(../assets/frames/brand/patriot-frames-bg-dim.jpg);
  background-image:image-set(url(../assets/frames/brand/patriot-frames-hero.webp) type("image/webp"),url(../assets/frames/brand/patriot-frames-hero.jpg) type("image/jpeg")),image-set(url(../assets/frames/brand/patriot-frames-bg-dim.webp) type("image/webp"),url(../assets/frames/brand/patriot-frames-bg-dim.jpg) type("image/jpeg"));
  min-height:calc(100svh - var(--hdr));padding:36px 0;display:flex;align-items:center}
.has-card .la-hero .la-copy{padding:26px 32px}
.has-card .la-hero .la-copy h1.gold-text{font-size:clamp(2.1rem,4vw,3.3rem)}
.has-card .la-hero .la-quote{font-size:1.16rem;margin:12px 0 4px;padding:12px 16px}
.has-card .la-hero .la-hero-grid{width:100%}
@media (min-width:901px){.has-card .la-hero .la-hero-grid{grid-template-columns:minmax(0,560px);justify-content:center}.has-card .la-hero .la-feature{display:none}}
.has-card .la-copy{background:linear-gradient(180deg,rgba(36,19,9,.58),rgba(18,9,4,.68));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
/* phones: the whole card first (letterboxed on dark wood), then a portrait crop that keeps the coat */
@media (max-width:900px){
  .has-card .card-bg{background-image:none;background-color:#140a05}
  .has-card .card-bg::before{background-size:cover;background-position:var(--card-x-m) var(--card-y-m)}
  .has-card .card-bg::after{background:linear-gradient(90deg,transparent 40%,rgba(10,5,2,.3))}
  .has-card .fr-hero{padding:0 0 30px}
  .has-card .fr-card-ctas{display:none}
  .has-card .fr-hero-grid{gap:18px}
  .has-card .fr-hero-art{display:block;order:-1;margin:0 -22px}
  .has-card .fr-hero-art .gilt-frame{padding:0;border-radius:0;background:linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.4)),url(../assets/frames/wood.svg) center/600px 300px;box-shadow:0 18px 40px rgba(0,0,0,.55)}
  .has-card .fr-hero-art .gilt-frame::before{display:none}
  .has-card .fr-hero-art .brand-card{aspect-ratio:2048/1193;background:transparent;box-shadow:none}
  .has-card .fr-hero-art .brand-pic img{object-fit:contain}
  .has-card .fr-hero-copy{padding:18px 18px}
  .has-card .fr-section{padding:64px 0}
  .has-card .fr-head{padding:20px 18px 16px}
  .has-card .fr-head,.has-card .wood-card,.has-card .gal-item,.has-card .fr-tools{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .has-card .fr-head,.has-card .wood-card{background:rgba(20,10,5,.5)}
  .has-card .la-hero{min-height:0;display:block;padding:0 0 30px;background-image:none;background-color:transparent;box-shadow:none}
  .has-card .la-hero::before{content:"";display:block;aspect-ratio:2048/1193;margin:0 0 22px;background:url(../assets/frames/brand/patriot-frames-hero-sm.jpg) center/contain no-repeat,#140a05;background:image-set(url(../assets/frames/brand/patriot-frames-hero-sm.webp) type("image/webp"),url(../assets/frames/brand/patriot-frames-hero-sm.jpg) type("image/jpeg")) center/contain no-repeat,#140a05;box-shadow:0 18px 40px rgba(0,0,0,.55)}
}

/* ---------- gallery credits, staged badge, featured tile ---------- */
.credit{display:block;margin-top:6px;font-size:.76rem;line-height:1.35;color:#cbb994}
.credit a{color:var(--gold-1);text-decoration:underline;text-decoration-color:rgba(233,196,106,.45);text-underline-offset:2px}
.credit a:hover{text-decoration-color:var(--gold-1)}
.staged{position:absolute;top:24px;right:24px;z-index:2;font:600 .64rem/1 var(--font,Inter),sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#f3e7d3;background:rgba(14,7,3,.66);border:1px solid rgba(214,168,73,.45);padding:5px 8px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.staged.in-cap{position:static;display:inline-block;margin-left:6px;vertical-align:middle}
.gal-item.is-featured{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column}
.gal-item.is-featured .gal-btn{flex:1;aspect-ratio:auto;min-height:420px}
.gal-item.is-featured figcaption b{font-size:1.3rem}
.gal-btn img{object-fit:cover}
.lb-cap .credit{display:inline-block;margin-top:8px;font-size:.88rem}
@media (max-width:760px){.gal-item.is-featured{grid-row:span 1}.gal-item.is-featured .gal-btn{min-height:0;aspect-ratio:4/5}.staged{top:16px;right:16px;font-size:.58rem}}

/* ---------- featured band ---------- */
.fr-featured{padding:20px 0 70px;position:relative}
.feat-fig{margin:0 auto;max-width:1140px}
.feat-frame{padding:14px}
.feat-frame img{display:block;width:100%;height:auto;border-radius:2px}
.feat-fig figcaption{text-align:center;margin-top:18px;display:flex;flex-direction:column;gap:4px;align-items:center}
.feat-fig figcaption b{font-family:var(--serif);color:var(--gold-1);font-size:1.5rem}
.feat-fig figcaption span{color:var(--cream-2)}
.feat-fig figcaption a{color:var(--gold-1)}
.feat-fig figcaption small{color:#a8977a;font-size:.78rem}
.feat-kicker{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;font-size:.78rem;color:var(--gold-2)!important;display:inline-flex;gap:6px;align-items:center}
.has-card .feat-fig figcaption{background:rgba(18,9,4,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:14px 18px;border:1px solid rgba(214,168,73,.22)}

/* ---------- Laura page ---------- */
.la-hero{padding-top:70px}
.la-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;position:relative;z-index:2}
.la-copy{padding:40px 38px}
.la-copy h1.gold-text{font-size:clamp(2.6rem,5.6vw,4.4rem);line-height:1.05;margin:0}
.la-copy .star-div{justify-content:flex-start}.la-copy .star-div span:first-child{display:none}
.la-quote{margin:18px 0 6px;padding:16px 20px;border-left:3px solid var(--gold-2);background:rgba(0,0,0,.22);border-radius:0 10px 10px 0;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:1.32rem;line-height:1.4;color:#f3e7d3}
.la-quote cite{display:block;margin-top:8px;font:normal .82rem var(--font,Inter),sans-serif;color:var(--cream-2)}
.la-quote cite a,.laura-page .fr-sub a,.laura-page .wood-card p a{color:var(--gold-1)}
.la-feature{margin:0}
.la-feature img{display:block;width:100%;height:auto}
.la-feature figcaption{text-align:center;margin-top:14px;font-size:.88rem;color:var(--cream-2)}
.la-two{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.la-two .wood-card{padding:34px 32px}
.la-two p{margin-bottom:12px}
.la-h2{font-size:clamp(1.5rem,2.6vw,2rem)!important;margin:6px 0 12px}
.la-subjects{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.la-subjects li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid rgba(214,168,73,.4);background:rgba(0,0,0,.2);font-size:.86rem;color:var(--cream)}
.la-subjects .gi{width:14px;height:14px;color:var(--gold-1)}
.la-cta-card{text-align:center;padding:46px 30px;max-width:900px;margin:0 auto}
.laura-page .fr-gallery{grid-template-columns:repeat(3,1fr)}
.btn-lg{padding:16px 26px;font-size:1.05rem}
@media (max-width:900px){.la-hero-grid,.la-two{grid-template-columns:1fr}.la-feature{order:-1;max-width:420px;margin:0 auto}.la-copy{padding:28px 22px}.laura-page .fr-gallery{grid-template-columns:1fr 1fr}}
.la-hero{position:relative;overflow:hidden}
.frames-page .fr-sub a{color:var(--gold-1);text-decoration-color:rgba(233,196,106,.5)}

/* wide (16:9) group scenes: whole picture in normal tiles, full-width banner when featured */
.gal-item.is-wide .gal-btn img{object-fit:contain}
.gal-item.is-featured.is-wide{grid-column:1/-1;grid-row:span 1}
.gal-item.is-featured.is-wide .gal-btn{flex:none;aspect-ratio:16/9;min-height:0}
.gal-item.is-featured.is-wide .gal-btn img{object-fit:cover}
@media (max-width:760px){.gal-item.is-featured.is-wide .gal-btn{aspect-ratio:16/9}}
