/* ==========================================================================
   R/T Tuning — theme styles
   1.  Tokens
   2.  Base
   3.  Utility type
   4.  Buttons
   5.  Announcement bar
   6.  Header
   7.  Mobile nav
   8.  Hero
   9.  Sections (about, services, verified, stats, platforms, video, news,
       packages, trust, cta, media/text, model links, rich text)
   10. Footer
   11. Page hero + inner pages
   12. Blog / archives / comments / forms
   13. WordPress core + block support
   14. Light theme overrides
   15. Reveal animation
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root{
  --red:#e10600;
  --red-dark:#a80400;
  --bg:#0a0a0b;
  --bg-2:#121214;
  --bg-3:#1a1a1d;
  --line:#26262a;
  --text:#f4f4f5;
  --muted:#c9c9d2;
  --dim:#84848e;
  --display:'Oswald',sans-serif;
  --body:'Inter',sans-serif;
  --tech:'Chakra Petch',monospace;
  --wrap:1280px;
  --gutter:32px;
}

/* 2. Base ------------------------------------------------------------------ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:18px;line-height:1.65;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.screen-reader-text{position:absolute!important;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;z-index:999;padding:14px 22px;background:var(--red);color:#fff;font-family:var(--display);letter-spacing:.14em;text-transform:uppercase}
.skip-link:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

/* 3. Utility type ---------------------------------------------------------- */
.kicker{font-family:var(--tech);font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:14px}
.kicker::before{content:"";width:34px;height:2px;background:var(--red);flex-shrink:0}
.h-display{font-family:var(--display);font-weight:600;text-transform:uppercase;line-height:.95;letter-spacing:.01em}
.text-red{color:var(--red)}

/* 4. Buttons --------------------------------------------------------------- */
:root{
  --tread-w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='40'%3E%3Cg fill='%23fff' transform='skewX(-12)'%3E%3Crect x='6' y='0' width='10' height='9' rx='2'/%3E%3Crect x='24' y='0' width='10' height='9' rx='2'/%3E%3Crect x='42' y='0' width='10' height='9' rx='2'/%3E%3Crect x='60' y='0' width='10' height='9' rx='2'/%3E%3Crect x='15' y='31' width='10' height='9' rx='2'/%3E%3Crect x='33' y='31' width='10' height='9' rx='2'/%3E%3Crect x='51' y='31' width='10' height='9' rx='2'/%3E%3Crect x='69' y='31' width='10' height='9' rx='2'/%3E%3C/g%3E%3C/svg%3E");
  --tread-k:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='40'%3E%3Cg fill='%23000' transform='skewX(-12)'%3E%3Crect x='6' y='0' width='10' height='9' rx='2'/%3E%3Crect x='24' y='0' width='10' height='9' rx='2'/%3E%3Crect x='42' y='0' width='10' height='9' rx='2'/%3E%3Crect x='60' y='0' width='10' height='9' rx='2'/%3E%3Crect x='15' y='31' width='10' height='9' rx='2'/%3E%3Crect x='33' y='31' width='10' height='9' rx='2'/%3E%3Crect x='51' y='31' width='10' height='9' rx='2'/%3E%3Crect x='69' y='31' width='10' height='9' rx='2'/%3E%3C/g%3E%3C/svg%3E");
}
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:13px;padding:15px 30px;border:none;cursor:pointer;position:relative;transition:.25s;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));overflow:hidden;--tread:var(--tread-w)}
.btn::before{content:"";position:absolute;top:0;bottom:0;left:-40%;width:180%;z-index:-1;background-image:var(--tread);background-repeat:repeat-x;background-size:44px 100%;opacity:.1;transform:translateX(-14%);transition:transform .55s ease,opacity .4s ease;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%,#000 78%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 30%,#000 78%,transparent 100%)}
.btn:hover::before{opacity:.22;transform:translateX(6%)}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:#fff;color:#0a0a0b;--tread:var(--tread-k)}
.btn-ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px #3a3a40}
.btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--red);color:var(--red)}
.btn .arr{font-family:var(--body)}

/* 5. Announcement bar ------------------------------------------------------ */
.topbar{background:#0e0e11;border-bottom:1px solid var(--line);position:relative;z-index:55}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:38px}
.topbar-contact{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.topbar-contact a{display:inline-flex;align-items:center;gap:8px;font-family:var(--tech);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);transition:.2s}
.topbar-contact a:hover{color:#fff}
.topbar-contact svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;flex-shrink:0}
.topbar .socials{display:flex;gap:14px;margin:0;flex-shrink:0}
.topbar .socials a{width:auto;height:auto;border:none;color:var(--dim);transition:.2s;display:grid;place-items:center}
.topbar .socials a:hover{border-color:transparent;color:var(--red)}
.topbar .socials svg{width:14px;height:14px;fill:currentColor}
@media(max-width:700px){.topbar-inner{min-height:34px;gap:14px}.topbar-contact{gap:16px}.topbar-contact a span{font-size:10px;letter-spacing:.12em}}
@media(max-width:460px){.topbar .socials{display:none}}
.announce{background:var(--red);overflow:hidden;position:relative;z-index:60}
.announce-track{display:flex;gap:64px;white-space:nowrap;padding:8px 0;animation:marq 22s linear infinite;font-family:var(--tech);font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:600}
.announce-track span{display:flex;align-items:center;gap:64px}
.announce-track b{font-weight:400;opacity:.75}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.announce-track{animation:none}}

/* 6. Header ---------------------------------------------------------------- */
header.site-header{position:sticky;top:0;z-index:50;background:rgba(10,10,11,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:40px;height:76px}
@media(max-width:1440px){.nav{gap:28px}.nav-links{gap:24px}}
.logo{font-family:var(--display);font-weight:700;font-size:26px;text-transform:uppercase;letter-spacing:.02em;display:flex;align-items:baseline;line-height:1;flex-shrink:0}
.logo-img{height:46px;width:auto;max-width:260px;object-fit:contain;align-self:center}
@media(max-width:900px){.logo-img{height:38px;max-width:190px}}
.logo .txt{display:none}
.logo.no-img .txt{display:inline}
.logo .slash{color:var(--red);font-style:italic;margin:0 2px;transform:skewX(-12deg);display:inline-block}
.logo small{font-family:var(--tech);font-size:9px;letter-spacing:.32em;color:var(--muted);margin-left:10px;font-weight:400;white-space:nowrap}
@media(max-width:1560px){.logo small{display:none}}
.nav-links-wrap{margin-left:auto}
.nav-links{display:flex;gap:34px}
.nav-links a{font-family:var(--display);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);transition:.2s;position:relative;padding:6px 0;white-space:nowrap;display:block}
.nav-links a:hover,.nav-links .current-menu-item>a,.nav-links .current_page_item>a,.nav-links .current-menu-ancestor>a{color:#fff}
.nav-links .current-menu-item>a::after,.nav-links .current_page_item>a::after,.nav-links .current-menu-ancestor>a::after,.nav-links a:hover::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background:var(--red)}
.nav-links li{position:relative}
.nav-links .sub-menu{position:absolute;top:100%;left:-16px;min-width:220px;background:#0e0e11;border:1px solid var(--line);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s;display:block}
.nav-links li:hover>.sub-menu,.nav-links li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.nav-links .sub-menu a{padding:9px 18px;letter-spacing:.1em;font-size:12px}
.nav-links .sub-menu a::after{display:none}
.nav-links .sub-menu a:hover{color:var(--red);background:#141418}
.nav .btn{padding:12px 22px;font-size:12px;flex-shrink:0;white-space:nowrap}
/* Social icons in the header bar. Smaller and quieter than the footer's, so
   they read as a trailing detail rather than a second set of nav links. */
/* Below this the bar has room for the logo and the toggle only, so the icons
   move into the mobile panel. */
@media(max-width:1120px){.nav-links{display:none}.nav .btn.nav-cta{display:none}}

/* 7. Mobile nav ------------------------------------------------------------ */
.nav-toggle{display:none;margin-left:auto;width:44px;height:44px;background:none;border:1px solid var(--line);cursor:pointer;position:relative;flex-shrink:0}
.nav-toggle span{position:absolute;left:50%;top:50%;width:18px;height:2px;background:#fff;transform:translate(-50%,-50%);transition:.25s}
.nav-toggle span:nth-child(1){transform:translate(-50%,-7px)}
.nav-toggle span:nth-child(3){transform:translate(-50%,5px)}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}
@media(max-width:1120px){.nav-toggle{display:block}}
.mobile-nav{display:none;border-top:1px solid var(--line);background:#0a0a0b;max-height:calc(100vh - 76px);overflow-y:auto}
.mobile-nav.open{display:block}
.mobile-nav ul{padding:10px 0}
.mobile-nav a{display:block;padding:15px var(--gutter);font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:15px;color:var(--muted);border-bottom:1px solid var(--line)}
.mobile-nav a:hover,.mobile-nav .current-menu-item>a{color:#fff}
.mobile-nav .sub-menu a{padding-left:calc(var(--gutter) + 20px);font-size:13px;color:var(--dim)}
.mobile-nav .btn{margin:20px var(--gutter) 26px;display:flex;justify-content:center}
.mobile-socials{margin:0 var(--gutter) 30px}

/* 8. Hero ------------------------------------------------------------------ */
.hero{position:relative;min-height:92vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.hero-media{position:absolute;inset:0;background:
  radial-gradient(1000px 500px at 78% 38%,rgba(225,6,0,.22),transparent 65%),
  linear-gradient(115deg,#131316 0%,#131316 46%,#0c0c0e 46.2%,#0c0c0e 62%,#151518 62.2%),
  var(--bg)}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 62%;filter:saturate(1.05) contrast(1.05)}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,11,.55) 0%,rgba(10,10,11,.18) 40%,rgba(10,10,11,.92) 88%,var(--bg) 100%)}
.hero-media::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(10,10,11,.92) 0%,rgba(10,10,11,.55) 38%,transparent 68%);z-index:1}
.hero-inner{position:relative;z-index:2;padding:120px 0 120px}
.hero .kicker{margin-bottom:26px}
.hero h1{font-size:clamp(56px,9.5vw,150px);text-shadow:0 4px 40px rgba(0,0,0,.45)}
.hero h1 .line2{display:block}
.hero h1 .fill-red{color:var(--red);text-shadow:0 3px 24px rgba(0,0,0,.85)}
.hero-sub{max-width:560px;color:var(--muted);font-size:20px;margin:28px 0 38px}
.hero-sub b{color:#fff;font-weight:600}
.hero-ctas{display:flex;gap:18px;flex-wrap:wrap}
.hero-meta{position:absolute;right:var(--gutter);bottom:130px;z-index:2;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.dyno-chip{font-family:var(--tech);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:9px 16px;background:rgba(10,10,11,.6);backdrop-filter:blur(4px)}
.dyno-chip b{color:#fff;font-weight:500}
.hero-index{position:absolute;right:var(--gutter);bottom:56px;z-index:2;font-family:var(--tech);font-size:12px;letter-spacing:.3em;color:var(--muted)}
.hero-index b{color:var(--red);font-size:20px}
@media(max-width:800px){.hero-meta,.hero-index{display:none}.hero-inner{padding:90px 0}}

/* 9. Sections -------------------------------------------------------------- */
section{position:relative}
.sec-pad{padding:110px 0}
/* The opening band follows the page header, so it needs far less lead-in —
   this is what keeps a page's real content above the fold. */
.sec-pad.sec-first{padding-top:54px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:56px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(34px,4.5vw,58px)}
.sec-head .kicker{margin-bottom:16px}
.sec-head p{color:var(--muted);max-width:420px}

/* section dividers */
.tick{border-top:1px solid var(--line);position:relative}
.tick::after{content:"";position:absolute;top:-2px;height:3px;width:64px;background:var(--red);left:max(var(--gutter),calc((100% - 1216px)/2))}
.tick[data-sec]::before{content:"// " attr(data-sec);position:absolute;top:22px;left:max(var(--gutter),calc((100% - 1216px)/2));font-family:var(--tech);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--dim)}

/* about band */
.about{background:var(--bg-2)}
.about-grid{display:grid;grid-template-columns:auto 1fr;gap:80px;align-items:center}
.badge25{width:190px;height:210px;background:linear-gradient(180deg,var(--red),var(--red-dark));clip-path:polygon(50% 0,100% 14%,100% 86%,50% 100%,0 86%,0 14%);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}
.badge25 b{font-family:var(--display);font-weight:700;font-size:74px;line-height:1}
.badge25 b i{font-style:normal;font-size:40px;vertical-align:26px}
.badge25 span{font-family:var(--tech);font-size:12px;letter-spacing:.5em;text-transform:uppercase;margin-top:6px;margin-left:.5em}
.about h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:20px;max-width:820px}
.about-p{color:var(--muted);max-width:760px;margin-bottom:32px}
.about-p b{color:#fff}
@media(max-width:800px){.about-grid{grid-template-columns:1fr;gap:40px}}

/* platform bands */
.band{position:relative;border-top:1px solid var(--line);overflow:hidden}
.band-grid{display:grid;grid-template-columns:1fr 1fr;min-height:430px}
.band-media{position:relative;background:repeating-linear-gradient(45deg,#131316 0 12px,#0e0e11 12px 24px);order:2}
.band-media .ghost-brand{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:clamp(40px,6vw,84px);color:#22222a;text-transform:uppercase;letter-spacing:.04em}
/* Filled to the edges. --focus decides which part of a wide banner survives
   the crop — set per band in the editor. */
.band-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,center) center}
/* "Show all": the whole photograph inside the panel, nothing cropped. What a
   banner with a logo printed on it needs. The padding keeps it clear of the
   band edges, and the fade over the copy side is pulled right back so it never
   dims the logo. */
.band-media.is-fit{background:#fff}
.band-media.is-fit img{object-fit:contain;padding:30px;box-sizing:border-box}
.band-media.is-fit::after{background:linear-gradient(90deg,#fff 0%,transparent 16%)}
.band.rev .band-media.is-fit::after{background:linear-gradient(270deg,#fff 0%,transparent 16%)}
@media(max-width:900px){.band-media.is-fit img{padding:18px}.band-media.is-fit::after{background:linear-gradient(0deg,#fff 0%,transparent 16%)!important}}
.band-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 45%)}
.band-copy{order:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:80px 60px;padding-left:max(var(--gutter),calc((100vw - 1216px)/2))}
.band.rev .band-media{order:1}
.band.rev .band-copy{order:2;padding-left:60px;padding-right:max(var(--gutter),calc((100vw - 1216px)/2))}
.band.rev .band-media::after{background:linear-gradient(270deg,var(--bg) 0%,transparent 45%)}
.band-copy .idx{font-family:var(--tech);font-size:11px;letter-spacing:.25em;color:var(--red)}
.band-copy h2{font-family:var(--display);font-weight:700;font-size:clamp(34px,3.6vw,52px);text-transform:uppercase;margin:12px 0 14px}
.band-copy p{color:var(--muted);max-width:480px;margin-bottom:18px}
.band-copy .flag{font-family:var(--tech);font-size:10px;letter-spacing:.24em;color:var(--dim);text-transform:uppercase;margin-bottom:28px}
@media(max-width:900px){.band-grid{grid-template-columns:1fr}.band-media{min-height:260px;order:1!important}.band-copy{order:2!important;padding:50px var(--gutter)!important}.band-media::after{background:linear-gradient(0deg,var(--bg) 0%,transparent 45%)!important}}

/* services accordion */
.services{background:var(--bg)}
.acc{border-top:1px solid var(--line)}
.acc-item{border-bottom:1px solid var(--line);transition:background .25s}
.acc-item.open{background:linear-gradient(90deg,rgba(225,6,0,.06),transparent 60%)}
.acc-head{width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:28px;padding:22px 0;text-align:left;color:inherit;font:inherit}
.acc-head .num{font-family:var(--tech);font-size:13px;color:var(--dim);letter-spacing:.2em;transition:.25s;flex-shrink:0}
.acc-head .name{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(28px,3.4vw,46px);line-height:1.1;color:#8a8a95;transition:.25s}
.acc-head:hover .name{color:#fff}
.acc-item.open .acc-head .name{color:#fff}
.acc-item.open .acc-head .num{color:var(--red)}
.acc-head .sign{margin-left:auto;flex-shrink:0;width:38px;height:38px;position:relative;border:1px solid var(--line);transition:.3s}
.acc-head .sign::before,.acc-head .sign::after{content:"";position:absolute;background:var(--muted);left:50%;top:50%;transform:translate(-50%,-50%);transition:.3s}
.acc-head .sign::before{width:14px;height:2px}
.acc-head .sign::after{width:2px;height:14px}
.acc-head:hover .sign{border-color:var(--red)}
.acc-item.open .sign{background:var(--red);border-color:var(--red)}
.acc-item.open .sign::before,.acc-item.open .sign::after{background:#fff}
.acc-item.open .sign::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.acc-body{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.4,0,.2,1)}
.acc-inner{padding:0 0 32px 62px;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start}
.acc-inner p{color:var(--muted);font-size:17px;margin-bottom:18px;max-width:560px}
.acc-inner ul{margin:0}
.acc-inner li{color:var(--muted);font-size:16px;padding:7px 0;border-bottom:1px solid var(--line);display:flex;gap:12px}
.acc-inner li::before{content:"//";color:var(--red);font-family:var(--tech);font-size:12px;flex-shrink:0}
.acc-inner .side{border-left:2px solid var(--red);padding-left:22px}
.acc-inner .side h4{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:15px;margin-bottom:8px}
.acc-inner .side p{font-size:15px;margin-bottom:20px}
@media(max-width:820px){.acc-inner{grid-template-columns:1fr;gap:28px;padding-left:0}}

/* verified statement */
.verified{background:var(--bg-2);border-top:1px solid var(--line);position:relative;overflow:hidden}
.verified .curve{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.75}
.verified .curve path{fill:none;stroke-linecap:round}
.verified-inner{position:relative;z-index:2;padding:96px 0 88px;text-align:center;display:flex;flex-direction:column;align-items:center}
.verified .kicker{justify-content:center;margin-bottom:24px}
.verified h3{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(30px,4.4vw,60px);line-height:1.04;letter-spacing:.01em;max-width:24ch}
.verified h3 span{color:var(--red)}
.verified p{color:var(--muted);max-width:660px;margin-top:22px;font-size:19px}
.verified .proof{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:34px}
.verified .proof span{font-family:var(--tech);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:rgba(10,10,11,.5);padding:11px 18px}
.verified .proof span b{color:var(--red);font-weight:500}
@media(max-width:640px){.verified-inner{padding:70px 0 64px}}

/* stats band */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:48px 36px;border-left:1px solid var(--line)}
.stat:first-child{border-left:none}
.stat .val{font-family:var(--display);font-weight:600;font-size:clamp(36px,4vw,56px);line-height:1}
.stat .val em{color:var(--red);font-style:normal}
.stat .lbl{font-family:var(--tech);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-top:12px}
@media(max-width:800px){.stats-grid{grid-template-columns:1fr 1fr}.stat{border-top:1px solid var(--line)}}

/* products */
.products{background:var(--bg)}
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.prod{background:var(--bg-2);padding:28px;display:flex;flex-direction:column;gap:0;position:relative;transition:.25s;overflow:hidden}
.prod:hover{background:var(--bg-3)}
.prod::after{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--red);transition:.3s}
.prod:hover::after{width:100%}
.prod .brand{font-family:var(--tech);font-size:10px;letter-spacing:.3em;color:var(--red);text-transform:uppercase}
.prod .thumb{aspect-ratio:4/3;background:linear-gradient(145deg,#1c1c20,#101012);margin:18px 0;display:grid;place-items:center;position:relative;overflow:hidden}
.prod .thumb img{width:100%;height:100%;object-fit:cover;transition:.4s}
.prod:hover .thumb img{transform:scale(1.05)}
.prod .thumb .ph{font-family:var(--display);font-weight:700;font-size:44px;color:#222226;text-transform:uppercase;letter-spacing:.05em}
.prod h3{font-family:var(--body);font-weight:600;font-size:15px;line-height:1.45;min-height:66px}
.prod .price-row{display:flex;align-items:baseline;gap:10px;margin:14px 0 20px}
.prod .price{font-family:var(--display);font-weight:600;font-size:24px}
.prod .msrp{color:var(--dim);text-decoration:line-through;font-size:13px}
.prod .btn{margin-top:auto;justify-content:center;padding:13px 10px;font-size:12px;background:#0e0e10;box-shadow:inset 0 0 0 1px var(--line);color:#fff}
.prod .btn:hover{background:var(--red);box-shadow:none}
@media(max-width:1050px){.prod-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.prod-grid{grid-template-columns:1fr}}

/* platform grid (compact cards) */
.plat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.plat{background:var(--bg);padding:44px 36px;position:relative;overflow:hidden;transition:.3s;min-height:220px;display:flex;flex-direction:column}
.plat:hover{background:var(--bg-3)}
.plat .idx{font-family:var(--tech);font-size:11px;color:var(--dim);letter-spacing:.2em}
.plat h3{font-family:var(--display);font-weight:700;font-size:clamp(28px,2.6vw,40px);text-transform:uppercase;margin:14px 0 8px;transition:.25s}
.plat:hover h3{color:var(--red)}
.plat p{color:var(--muted);font-size:14px;max-width:300px}
.plat .go-arr{position:absolute;bottom:30px;right:30px;font-size:20px;color:var(--dim);transition:.25s}
.plat:hover .go-arr{color:var(--red);transform:translate(4px,-4px)}
.plat .flag{margin-top:auto;padding-top:18px;font-family:var(--tech);font-size:10px;letter-spacing:.22em;color:var(--red);text-transform:uppercase}
@media(max-width:900px){.plat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.plat-grid{grid-template-columns:1fr}}

/* video break */
.vbreak{position:relative;min-height:520px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(900px 480px at 50% 60%,rgba(225,6,0,.14),transparent 70%),repeating-linear-gradient(45deg,#121215 0 12px,#0d0d10 12px 24px)}
.vbreak>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 70%}
.vbreak::after{content:"";position:absolute;inset:0;background:rgba(10,10,11,.45)}
.vbreak .play{position:relative;z-index:2;width:96px;height:96px;border-radius:50%;border:1px solid rgba(255,255,255,.4);display:grid;place-items:center;cursor:pointer;transition:.3s;background:rgba(10,10,11,.35);backdrop-filter:blur(3px);padding:0}
.vbreak .play:hover{background:var(--red);border-color:var(--red);transform:scale(1.08)}
.vbreak .play svg{width:26px;height:26px;fill:#fff;margin-left:5px}
.vbreak .cap{position:absolute;bottom:36px;left:0;right:0;z-index:2}
.vbreak .cap .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.vbreak .cap h3{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(20px,2.4vw,30px)}
.vbreak .cap span{font-family:var(--tech);font-size:11px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase}
.video-modal{position:fixed;inset:0;z-index:200;background:rgba(5,5,6,.94);display:none;place-items:center;padding:var(--gutter)}
.video-modal.open{display:grid}
.video-modal .frame{width:min(1100px,100%);aspect-ratio:16/9;position:relative}
.video-modal iframe{width:100%;height:100%;border:0}
.video-modal .close{position:absolute;top:-46px;right:0;background:none;border:none;color:#fff;font-size:30px;cursor:pointer;line-height:1}

/* news */
.news{background:var(--bg)}
.news-list{border-top:1px solid var(--line)}
.news-item{display:grid;grid-template-columns:110px 200px 1fr auto;gap:36px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);transition:.25s}
.news-item:hover{background:var(--bg-2);padding-left:20px;padding-right:20px}
.news-item .date{font-family:var(--display);font-weight:600;line-height:1}
.news-item .date b{display:block;font-size:38px}
.news-item .date span{font-family:var(--tech);font-size:10px;letter-spacing:.3em;color:var(--red);text-transform:uppercase}
.news-item .cat{font-family:var(--tech);font-size:10px;letter-spacing:.24em;color:var(--dim);text-transform:uppercase}
.news-item h3{font-family:var(--display);font-weight:500;text-transform:uppercase;font-size:clamp(17px,1.9vw,24px);letter-spacing:.03em;transition:.25s}
.news-item:hover h3{color:var(--red)}
.news-item .arr{color:var(--dim);font-size:20px;transition:.25s}
.news-item:hover .arr{color:var(--red);transform:translateX(6px)}
@media(max-width:800px){.news-item{grid-template-columns:80px 1fr auto;gap:20px}.news-item .cat{display:none}}

/* packages */
.packs{background:var(--bg-2);border-top:1px solid var(--line)}
/* Columns follow the number of cards, capped at four. The max-width only
   bites at one and two cards — it is wider than the wrap at three and four,
   so those layouts fill the row exactly as before. */
.packs-grid{display:grid;grid-template-columns:repeat(var(--pack-cols,4),minmax(0,1fr));gap:22px;max-width:calc(var(--pack-cols,4) * 400px + (var(--pack-cols,4) - 1) * 22px);margin-inline:auto}
.pack{background:var(--bg);border:1px solid var(--line);padding:36px 30px;display:flex;flex-direction:column;position:relative;transition:.3s;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
.pack:hover{border-color:var(--red);transform:translateY(-6px)}
.pack.hot{border-color:var(--red);background:linear-gradient(180deg,rgba(225,6,0,.08),transparent 55%),var(--bg)}
.pack .tier{font-family:var(--tech);font-size:10px;letter-spacing:.3em;color:var(--muted);text-transform:uppercase}
.pack .tier b{color:var(--red);font-weight:500}
.pack .price{font-family:var(--display);font-weight:600;font-size:44px;margin:16px 0 4px}
.pack .price small{font-size:16px;color:var(--muted);font-weight:400}
/* A price that is words rather than a figure — "Call for details" — at 44px
   wraps and swamps the card. Same slot, sized for a phrase. */
.pack .price.is-text{font-size:24px;line-height:1.25;letter-spacing:.01em}
.pack .name{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:15px;color:var(--muted);margin-bottom:22px}
.pack .pack-desc{font-size:16px;color:var(--muted);line-height:1.65;margin-bottom:26px}
.pack ul{margin-bottom:30px}
.pack li{font-size:16px;color:var(--muted);padding:8px 0;border-bottom:1px solid var(--line);display:flex;gap:10px}
.pack li::before{content:"+";color:var(--red);font-weight:700}
.pack .btn{margin-top:auto;justify-content:center;font-size:12px;padding:13px}
@media(max-width:1050px){.packs-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.packs-grid{grid-template-columns:1fr}}

/* trust strip */
.trust{background:var(--red)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-item{display:flex;align-items:center;gap:16px;padding:26px 30px;border-left:1px solid rgba(255,255,255,.18)}
.trust-item:first-child{border-left:none}
.trust-item svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:1.5;flex-shrink:0}
.trust.lite .trust-item svg{stroke:var(--red)}
.trust.lite .trust-item{border-left-color:#dededf}
.trust-item span{font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:13px}
@media(max-width:900px){.trust-grid{grid-template-columns:1fr 1fr}.trust-item{border-top:1px solid rgba(255,255,255,.18)}}

/* contact cta */
.contact-cta{background:var(--bg-2);border-bottom:1px solid var(--line)}
.cta-grid{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.cta-grid h2{font-size:clamp(24px,2.6vw,34px);word-break:break-word}
.cta-grid h2 span{color:var(--red)}
.cta-grid p{color:var(--muted);max-width:440px;margin-top:14px}
.cta-arrow{width:88px;height:88px;background:var(--red);display:grid;place-items:center;font-size:30px;color:#fff;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));cursor:pointer;transition:.25s;flex-shrink:0}
.cta-arrow:hover{background:#fff;color:var(--red)}

/* generic media + text */
.mediatext{border-top:1px solid var(--line)}
.mediatext-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.mediatext.rev .mediatext-media{order:2}
.mediatext-media img{width:100%;object-fit:cover}
/* No image set yet: fall back to a single readable column rather than
   leaving an empty grid track. */
.mediatext-grid.is-single{grid-template-columns:1fr;max-width:820px}
.mediatext-copy h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:18px}
.mediatext-copy .rt-rich{margin-bottom:28px}
@media(max-width:900px){.mediatext-grid{grid-template-columns:1fr;gap:36px}.mediatext.rev .mediatext-media{order:0}}

/* model tiles (vehicle make pages) */
.models{border-top:1px solid var(--line)}
.models .sec-head{margin-bottom:32px}
.model-grid{display:grid;grid-template-columns:repeat(var(--model-cols,4),1fr);gap:20px}
.model-tile{display:block;background:var(--bg-2);border:1px solid var(--line);overflow:hidden;transition:border-color .25s,transform .25s}
a.model-tile:hover{border-color:var(--red);transform:translateY(-3px)}
.model-shot{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-3)}
.model-shot img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
a.model-tile:hover .model-shot img{transform:scale(1.05)}
/* No photograph yet: a marked panel, so the grid still reads as tiles. */
.model-tile.no-photo .model-shot{background:
  repeating-linear-gradient(-45deg,rgba(255,255,255,.028) 0 14px,transparent 14px 28px),var(--bg-3)}
.model-tile.no-photo .model-shot::after{content:"";position:absolute;left:50%;top:50%;width:44px;height:3px;
  transform:translate(-50%,-50%);background:var(--red);opacity:.55}
.model-bar{display:flex;align-items:center;gap:10px;padding:16px 18px;border-top:1px solid var(--line)}
.model-name{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.07em;font-size:16px;line-height:1.2}
.model-note{font-family:var(--tech);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.model-tile .arr{margin-left:auto;color:var(--red);font-size:18px;transition:transform .25s}
a.model-tile:hover .arr{transform:translateX(4px)}
.model-actions{margin-top:34px}
@media(max-width:1000px){.model-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(max-width:700px){.model-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:420px){.model-grid{grid-template-columns:1fr}}

/* embedded Cognito form — the form styles itself, this just gives it room */
.cognito-embed{background:var(--bg-2);border:1px solid var(--line);padding:34px 30px}
.lite .cognito-embed{background:#fff;border-color:#e2e2e8}
@media(max-width:700px){.cognito-embed{padding:22px 16px}}

/* gallery section — photographs with no link attached */
.gal-grid{display:grid;grid-template-columns:repeat(var(--gal-cols,4),1fr);gap:20px}
.gal-item{margin:0;background:var(--bg-2);border:1px solid var(--line);overflow:hidden}
.gal-shot{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-3)}
.gal-shot img{width:100%;height:100%;object-fit:cover}
.gal-cap{padding:14px 16px;font-size:13px;line-height:1.45;color:var(--muted)}
.lite .gal-item{background:#fff;border-color:#e2e2e8}
.lite .gal-cap{color:#3e3e48}
@media(max-width:1000px){.gal-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(max-width:700px){.gal-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:420px){.gal-grid{grid-template-columns:1fr}}

/* rich text section */
.rt-rich{color:var(--muted)}
.rt-rich>*+*{margin-top:1.1em}
.rt-rich h2{font-family:var(--display);font-weight:600;text-transform:uppercase;color:var(--text);font-size:clamp(26px,3vw,40px);line-height:1.1}
.rt-rich h3{font-family:var(--display);font-weight:600;text-transform:uppercase;color:var(--text);font-size:clamp(20px,2.2vw,28px)}
.rt-rich h4{font-family:var(--display);font-weight:600;text-transform:uppercase;color:var(--text);font-size:18px;letter-spacing:.06em}
.rt-rich a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.rt-rich a:hover{color:#fff}
.rt-rich strong,.rt-rich b{color:var(--text)}
.rt-rich ul,.rt-rich ol{padding-left:0;margin-left:0}
/* Hanging indent rather than flex: a flex li turns every inline child into its
   own flex item, so "<b>Label:</b> copy" broke into two columns. */
.rt-rich ul li{padding:7px 0 7px 26px;text-indent:-26px;border-bottom:1px solid var(--line)}
.rt-rich ul li::before{content:"//";color:var(--red);font-family:var(--tech);font-size:12px;margin-right:12px}
.rt-rich ul li>*{text-indent:0}
.rt-rich ol{list-style:decimal;padding-left:22px}
.rt-rich ol li{padding:6px 0}
.rt-rich blockquote{border-left:2px solid var(--red);padding-left:24px;font-size:20px;color:var(--text)}
.rt-rich img{margin:0 auto}
.rt-rich table{width:100%;border-collapse:collapse}
.rt-rich th,.rt-rich td{border:1px solid var(--line);padding:12px 14px;text-align:left}
.rt-rich th{font-family:var(--tech);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--text)}
.rt-rich code{font-family:var(--tech);background:var(--bg-2);padding:2px 6px}
.rt-rich hr{border:none;border-top:1px solid var(--line)}
/* Two lists the source page ran side by side. A grid rather than CSS columns:
   every li carries a rule, and a column break through one reads as a mistake. */
.rt-rich .cols2{display:grid;grid-template-columns:1fr 1fr;gap:0 50px;align-items:start}
@media(max-width:760px){.rt-rich .cols2{grid-template-columns:1fr}}
/* Terms of booking rather than more of the checklist, so they are set apart
   instead of centred in bold the way the old page had them. */
.rt-rich .note{border-left:2px solid var(--line);padding:2px 0 2px 20px;color:var(--text)}
.rt-rich .note.warn{border-left-color:var(--red)}
.rt-narrow{max-width:820px;margin:0 auto}

/* booking / contact form section */
.rt-form .form-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:start}
.rt-form .form-grid.is-single{grid-template-columns:1fr;max-width:820px}
.rt-form .form-detail{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.rt-form .form-detail:last-child{border-bottom:none;margin-bottom:0}
.rt-form .form-detail h4{font-family:var(--tech);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.rt-form .form-detail p,.rt-form .form-detail a{color:var(--muted)}
.rt-form .form-detail a:hover{color:var(--red)}
.rt-form .form-phone{font-family:var(--display);font-size:26px;font-weight:600;color:#fff;letter-spacing:.04em;display:block}
.rt-form .form-hours{font-family:var(--tech);font-size:12px;letter-spacing:.12em;text-transform:uppercase;line-height:2}
.rt-form .form-note{border-left:2px solid var(--red);border-bottom:none;padding:2px 0 2px 20px;color:var(--muted);font-size:15px}
.rt-form .form-map{aspect-ratio:4/3;border:1px solid var(--line);overflow:hidden}
.rt-form .form-map iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.02)}
.rt-form .rt-form-notice{font-family:var(--tech);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line);padding:22px}
.rt-form.lite .form-detail{border-bottom-color:#e3e3e8}
.rt-form.lite .form-detail h4{color:#6f6f79}
.rt-form.lite .form-detail p,.rt-form.lite .form-detail a{color:#3e3e48}
.rt-form.lite .form-phone{color:#131316}
.rt-form.lite .form-map{border-color:#e3e3e8}
.rt-form.lite .form-map iframe{filter:grayscale(.3) contrast(1.02)}
@media(max-width:900px){.rt-form .form-grid{grid-template-columns:1fr;gap:44px}}

.foot-sitemap{margin-left:18px;padding-left:18px;border-left:1px solid var(--line);color:inherit;transition:.2s}
.foot-sitemap:hover{color:var(--red)}
footer.lite .foot-sitemap{border-left-color:#d7d7db}
@media(max-width:600px){.foot-sitemap{margin-left:12px;padding-left:12px}}

/* --- Sitemap --- */
.sitemap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:40px 36px}
.sitemap-col h3{font-family:var(--display);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.1em;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.sitemap-col h3 a{color:var(--text);transition:.2s}
.sitemap-col h3 a:hover{color:var(--red)}
.sitemap-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.sitemap-col li a{color:var(--muted);font-size:15px;transition:.2s}
.sitemap-col li a:hover{color:var(--red)}
.lite .sitemap-col h3{border-bottom-color:#e3e3e8}
.lite .sitemap-col h3 a{color:#131316}
.lite .sitemap-col li a{color:#3e3e48}
@media(max-width:560px){.sitemap-grid{gap:30px}}

/* --- AutoOps booking --- */
.rt-booking-embed{border:1px solid var(--line);background:var(--bg-2)}
.rt-booking-embed iframe{display:block;width:100%;height:var(--rt-booking-h,900px);border:0}
.lite .rt-booking-embed{background:#fff;border-color:#e2e2e8}
.rt-booking-cta{margin:0}
@media(max-width:700px){.rt-booking-embed iframe{height:calc(var(--rt-booking-h,900px) + 160px)}}

/* --- Contact form (built into the theme) ---
   Matched to the Gravity Forms treatment below so a page using either reads
   the same. */
.rt-cf-row{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.rt-cf-field{margin:0 0 26px;display:flex;flex-direction:column}
.rt-cf-row .rt-cf-field{margin-bottom:0}
.rt-cf-row + .rt-cf-row,.rt-cf-row + .rt-cf-field{margin-top:26px}
.rt-cf label{font-family:var(--tech);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.rt-cf label .req{color:var(--red)}
.rt-cf input[type=text],.rt-cf input[type=email],.rt-cf input[type=tel],.rt-cf textarea{background:var(--bg-2);border:1px solid var(--line);color:var(--text);font-family:var(--body);font-size:16px;padding:14px 16px;border-radius:0;transition:.2s;width:100%}
.rt-cf input:focus,.rt-cf textarea:focus{border-color:var(--red);outline:none}
.rt-cf input::placeholder,.rt-cf textarea::placeholder{color:var(--dim)}
.rt-cf textarea{min-height:170px;resize:vertical}
.rt-cf-submit{margin:26px 0 0}
.rt-cf-submit .btn{border:none}
.rt-cf-error{color:var(--red);font-size:14px;padding:8px 0 0 14px;border-left:2px solid var(--red);margin-top:8px}
.rt-cf-error-form{border-left:none;background:rgba(225,6,0,.08);border:1px solid var(--red);padding:18px 22px;margin:0 0 26px}
.rt-cf-sent{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:clamp(20px,2.4vw,28px);border-left:3px solid var(--red);padding-left:24px;color:var(--text)}
/* The bot trap: off-screen rather than display:none, which some bots skip. */
.rt-cf-website{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lite .rt-cf label{color:#63636d}
.lite .rt-cf input[type=text],.lite .rt-cf input[type=email],.lite .rt-cf input[type=tel],.lite .rt-cf textarea{background:#fff;border-color:#d9d9e0;color:#131316}
.lite .rt-cf-sent{color:#131316}
@media(max-width:620px){.rt-cf-row{grid-template-columns:1fr;gap:26px}}

/* --- Gravity Forms ---
   Gravity Forms ships its own stylesheet, so these rules are deliberately
   specific enough to win without !important. Covers both colour schemes. */
.gform_wrapper.gravity-theme,
.gform_wrapper{margin:0}
.gform_wrapper.gravity-theme .gform_fields{grid-row-gap:26px}
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper .gfield_label{font-family:var(--tech);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:400;margin-bottom:10px}
.gform_wrapper.gravity-theme .gfield_required{color:var(--red)}
.gform_wrapper.gravity-theme .gfield_description{font-size:13px;color:var(--dim);padding-top:8px}

.gform_wrapper.gravity-theme input[type=text],
.gform_wrapper.gravity-theme input[type=email],
.gform_wrapper.gravity-theme input[type=tel],
.gform_wrapper.gravity-theme input[type=url],
.gform_wrapper.gravity-theme input[type=number],
.gform_wrapper.gravity-theme input[type=password],
.gform_wrapper.gravity-theme input[type=date],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea{background:var(--bg-2);border:1px solid var(--line);color:var(--text);font-family:var(--body);font-size:16px;padding:14px 16px;border-radius:0;transition:.2s}
.gform_wrapper.gravity-theme input:focus,
.gform_wrapper.gravity-theme select:focus,
.gform_wrapper.gravity-theme textarea:focus{border-color:var(--red);outline:none}
.gform_wrapper.gravity-theme input::placeholder,
.gform_wrapper.gravity-theme textarea::placeholder{color:var(--dim)}
.gform_wrapper.gravity-theme textarea{min-height:170px}

.gform_wrapper.gravity-theme .gfield_checkbox label,
.gform_wrapper.gravity-theme .gfield_radio label{font-family:var(--body);font-size:16px;letter-spacing:0;text-transform:none;color:var(--muted);margin:0}
.gform_wrapper.gravity-theme .gfield_checkbox input,
.gform_wrapper.gravity-theme .gfield_radio input{accent-color:var(--red)}

.gform_wrapper.gravity-theme .gform_footer{padding:26px 0 0;margin:0}
.gform_wrapper.gravity-theme .gform_footer input[type=submit],
.gform_wrapper.gravity-theme .gform_page_footer input[type=submit],
.gform_wrapper .gform_button{background:var(--red);color:#fff;border:none;border-radius:0;font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:13px;padding:16px 32px;cursor:pointer;transition:.25s;width:auto;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}
.gform_wrapper.gravity-theme .gform_footer input[type=submit]:hover,
.gform_wrapper .gform_button:hover{background:#fff;color:#0a0a0b}

.gform_wrapper.gravity-theme .gform_validation_errors{background:rgba(225,6,0,.08);border:1px solid var(--red);border-radius:0;box-shadow:none;padding:18px 22px}
.gform_wrapper.gravity-theme .gform_validation_errors>h2{color:var(--red);font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;font-size:16px}
.gform_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper.gravity-theme .validation_message{background:transparent;border:none;border-left:2px solid var(--red);color:var(--red);font-size:14px;padding:6px 0 6px 14px}
.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error textarea,
.gform_wrapper.gravity-theme .gfield_error select{border-color:var(--red)}
.gform_confirmation_message{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:clamp(20px,2.4vw,28px);border-left:3px solid var(--red);padding-left:24px;color:var(--text)}
.gform_wrapper.gravity-theme .gform_ajax_spinner{filter:invert(1)}

/* light scheme */
.lite .gform_wrapper.gravity-theme .gfield_label{color:#63636d}
.lite .gform_wrapper.gravity-theme input[type=text],
.lite .gform_wrapper.gravity-theme input[type=email],
.lite .gform_wrapper.gravity-theme input[type=tel],
.lite .gform_wrapper.gravity-theme input[type=url],
.lite .gform_wrapper.gravity-theme input[type=number],
.lite .gform_wrapper.gravity-theme input[type=date],
.lite .gform_wrapper.gravity-theme select,
.lite .gform_wrapper.gravity-theme textarea{background:#fff;border-color:#d9d9e0;color:#131316}
.lite .gform_wrapper.gravity-theme .gfield_checkbox label,
.lite .gform_wrapper.gravity-theme .gfield_radio label{color:#3e3e48}
.lite .gform_wrapper.gravity-theme .gfield_description{color:#6f6f79}
.lite .gform_confirmation_message{color:#131316}
.lite .gform_wrapper.gravity-theme .gform_ajax_spinner{filter:none}
.lite .rt-form-notice{color:#3e3e48;border-color:#d9d9e0}

/* 10. Footer --------------------------------------------------------------- */
footer.site-footer{background:#070708}

/* The newsletter is a band across the top of the footer rather than a fourth
   column — it is one job, and it was crowding the contact details. */
.foot-nl{border-bottom:1px solid var(--line);padding:44px 0}
.foot-nl-grid{display:grid;grid-template-columns:1fr minmax(320px,460px);gap:40px;align-items:center}
.foot-nl h3{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(22px,2.4vw,30px);line-height:1.1;color:#fff}
.foot-nl p{color:var(--muted);margin-top:8px;max-width:52ch}
@media(max-width:820px){.foot-nl-grid{grid-template-columns:1fr;gap:22px}}

.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:60px;padding:76px 0 70px}
.foot-grid h4{font-family:var(--tech);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);margin-bottom:24px}
.foot-grid a,.foot-grid p{color:var(--muted);font-size:16px}
.foot-grid ul a{display:block;padding:6px 0;transition:.2s}
.foot-grid ul a:hover{color:var(--red);padding-left:6px}
.foot-about .logo{margin-bottom:20px}
.foot-about p{margin-bottom:24px;max-width:300px}
.foot-col ul{margin:0}

/* Contact column. Every line here is a link — the phone dials, the address
   opens a map, the email opens a mail client. */
.foot-phone{font-family:var(--display);font-size:26px;font-weight:600;color:#fff;letter-spacing:.04em;display:inline-block;transition:.2s}
.foot-phone:hover{color:var(--red)}
.foot-contact-list{margin-top:22px;display:grid;gap:16px}
.foot-contact-list li{display:grid;grid-template-columns:18px 1fr;gap:12px;align-items:start;line-height:1.6}
.foot-contact-list svg{width:16px;height:16px;margin-top:3px;fill:none;stroke:var(--red);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.foot-contact-list a{transition:.2s}
.foot-contact-list a:hover{color:var(--red)}
.foot-hours{font-family:var(--tech);font-size:11px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase;line-height:1.9}
.nl-form{display:flex;border:1px solid var(--line)}
.nl-form input{flex:1;background:transparent;border:none;padding:15px 18px;color:#fff;font-family:var(--body);font-size:16px;outline:none;min-width:0}
.nl-form button{background:var(--red);border:none;color:#fff;font-family:var(--display);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:12px;padding:0 26px;cursor:pointer;transition:.2s}
.nl-form button:hover{background:#fff;color:#000}
.socials{display:flex;gap:14px;margin-top:26px}
.socials a{width:38px;height:38px;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);transition:.2s}
.socials a:hover{border-color:var(--red);color:var(--red)}
.socials svg{width:16px;height:16px;fill:currentColor}
.foot-bottom{border-top:1px solid var(--line);padding:26px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.foot-bottom span{font-family:var(--tech);font-size:11px;letter-spacing:.16em;color:var(--dim);text-transform:uppercase}
.foot-bottom .legal{display:flex;gap:26px;flex-wrap:wrap}
.foot-bottom .legal a{color:var(--dim);font-size:12px;transition:.2s}
.foot-bottom .legal a:hover{color:#fff}
.foot-logo .logo-img{height:auto;width:200px;max-width:100%}
@media(max-width:980px){.foot-grid{grid-template-columns:1fr 1fr;gap:44px}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr;gap:40px;padding:52px 0 46px}}

/* 11. Page hero + inner pages ---------------------------------------------- */
.page-hero{position:relative;overflow:hidden;background:
  radial-gradient(900px 420px at 80% 30%,rgba(225,6,0,.18),transparent 65%),
  repeating-linear-gradient(45deg,#131316 0 12px,#0e0e11 12px 24px),var(--bg);
  border-bottom:1px solid var(--line)}
.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(10,10,11,.92) 0%,rgba(10,10,11,.6) 45%,rgba(10,10,11,.3) 100%)}
.page-hero-inner{position:relative;z-index:2;padding:96px 0 84px}
.page-hero .kicker{margin-bottom:22px}
.page-hero h1{font-size:clamp(38px,6.5vw,86px);max-width:20ch}
.page-hero .lede{color:var(--muted);max-width:620px;margin-top:22px;font-size:19px}
.breadcrumbs{font-family:var(--tech);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim);margin-bottom:22px;display:flex;gap:10px;flex-wrap:wrap}
.breadcrumbs a{color:var(--dim)}
.breadcrumbs a:hover{color:var(--red)}
.breadcrumbs .sep{color:var(--red)}
@media(max-width:800px){.page-hero-inner{padding:64px 0 56px}}
/* Compact banner for index and shop pages: enough to title the page, not
   enough to push the list below the fold. */
.page-hero.compact .page-hero-inner{padding:40px 0 36px}
.page-hero.compact h1{font-size:clamp(30px,4vw,52px)}
.page-hero.compact .kicker{margin-bottom:14px}
.page-hero.compact .lede{margin-top:14px;font-size:17px;max-width:560px}
@media(max-width:800px){.page-hero.compact .page-hero-inner{padding:30px 0 28px}}

.page-body{padding:90px 0}
.page-body .rt-rich{font-size:18px}

/* 12. Blog / archives / comments / forms ----------------------------------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.post-card{background:var(--bg-2);display:flex;flex-direction:column;transition:.25s;position:relative;overflow:hidden}
.post-card:hover{background:var(--bg-3)}
.post-card::after{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--red);transition:.3s}
.post-card:hover::after{width:100%}
.post-card .thumb{aspect-ratio:16/10;background:repeating-linear-gradient(45deg,#151518 0 10px,#101013 10px 20px);overflow:hidden}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;transition:.4s}
.post-card:hover .thumb img{transform:scale(1.04)}
.post-card .body{padding:28px;display:flex;flex-direction:column;flex:1}
.post-card .meta{font-family:var(--tech);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);margin-bottom:14px;display:flex;gap:12px;flex-wrap:wrap}
.post-card .meta .cat{color:var(--red)}
.post-card h2,.post-card h3{font-family:var(--display);font-weight:500;text-transform:uppercase;font-size:21px;line-height:1.2;letter-spacing:.02em;transition:.25s}
.post-card:hover h2,.post-card:hover h3{color:var(--red)}
.post-card p{color:var(--muted);font-size:15px;margin-top:14px}
.post-card .more{margin-top:auto;padding-top:20px;font-family:var(--tech);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--red)}
@media(max-width:1000px){.post-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.post-grid{grid-template-columns:1fr}}

.single-hero-media{margin-bottom:0}
.single-hero-media img{width:100%;max-height:620px;object-fit:cover}
.entry-meta{font-family:var(--tech);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--dim);display:flex;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.entry-meta .cat{color:var(--red)}
.entry-footer{margin-top:50px;padding-top:30px;border-top:1px solid var(--line);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.tag-list{display:flex;gap:10px;flex-wrap:wrap}
.tag-list a{font-family:var(--tech);font-size:10px;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--line);padding:8px 14px;color:var(--muted)}
.tag-list a:hover{border-color:var(--red);color:var(--red)}

.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:70px}
.post-nav a{background:var(--bg-2);padding:34px var(--gutter);transition:.25s}
.post-nav a:hover{background:var(--bg-3)}
.post-nav .lbl{font-family:var(--tech);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:10px}
.post-nav .ttl{font-family:var(--display);text-transform:uppercase;font-size:19px;letter-spacing:.02em}
.post-nav .next{text-align:right}
@media(max-width:700px){.post-nav{grid-template-columns:1fr}.post-nav .next{text-align:left}}

.pagination{display:flex;gap:10px;justify-content:center;margin-top:60px;flex-wrap:wrap}
.pagination .page-numbers{font-family:var(--display);letter-spacing:.1em;padding:12px 18px;border:1px solid var(--line);color:var(--muted);transition:.2s}
.pagination .page-numbers:hover{border-color:var(--red);color:#fff}
.pagination .page-numbers.current{background:var(--red);border-color:var(--red);color:#fff}

/* forms */
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=search],input[type=password],input[type=number],input[type=date],select,textarea{
  width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--text);font-family:var(--body);font-size:16px;padding:14px 16px;outline:none;transition:.2s;border-radius:0;-webkit-appearance:none}
input:focus,select:focus,textarea:focus{border-color:var(--red)}
textarea{min-height:170px;resize:vertical}
label{display:block;font-family:var(--tech);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
input[type=submit],button[type=submit],.wpcf7-submit{display:inline-flex;align-items:center;gap:12px;width:auto;font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:13px;padding:15px 30px;border:none;cursor:pointer;background:var(--red);color:#fff;transition:.25s}
input[type=submit]:hover,button[type=submit]:hover,.wpcf7-submit:hover{background:#fff;color:#0a0a0b}
.search-form{display:flex;gap:0;border:1px solid var(--line);max-width:520px}
.search-form input[type=search]{border:none;background:transparent}
.search-form button{background:var(--red);border:none;color:#fff;padding:0 24px;cursor:pointer;font-family:var(--display);letter-spacing:.16em;text-transform:uppercase;font-size:12px}

/* comments */
.comments-area{margin-top:70px;padding-top:50px;border-top:1px solid var(--line)}
.comments-area h2,.comments-area h3{font-family:var(--display);text-transform:uppercase;font-size:24px;margin-bottom:26px}
.comment-list{margin-bottom:40px}
.comment-list li{border-bottom:1px solid var(--line);padding:22px 0}
.comment-list .children{padding-left:28px;border-left:1px solid var(--line);margin-top:18px}
.comment-meta{font-family:var(--tech);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.comment-body p{color:var(--muted)}
.comment-form p{margin-bottom:18px}
.comment-reply-link{font-family:var(--tech);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}

/* 13. WordPress core + block support --------------------------------------- */
.alignleft{float:left;margin:0 2em 1.4em 0}
.alignright{float:right;margin:0 0 1.4em 2em}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.alignwide{width:min(1180px,92vw);margin-left:50%;transform:translateX(-50%);max-width:none}
.alignfull{width:100vw;margin-left:50%;transform:translateX(-50%);max-width:none}
.wp-caption{max-width:100%}
.wp-caption-text,figcaption{font-family:var(--tech);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-top:10px;text-align:center}
.sticky .post-card{border:1px solid var(--red)}
.wp-block-button__link{background:var(--red);color:#fff;font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;padding:15px 30px;border-radius:0}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.gallery br{display:none}
.admin-bar header.site-header{top:32px}
@media(max-width:782px){.admin-bar header.site-header{top:46px}}

/* 14. Light theme overrides ------------------------------------------------ */
.lite{background:#f5f5f7;color:#131316}
.lite .sec-head p{color:#3e3e48}
.lite.tick{border-top-color:#e3e3e8}
.lite.tick[data-sec]::before{color:#9c9ca4}
.lite .btn{--tread:var(--tread-k)}
/* .rt-fold.on-lite is the Read more wrapper, which sits between sections
   rather than inside one, so it never picks up a section's .lite class --
   the button was white on near-white. Same rule, not a copy of it. */
.lite .btn-ghost,.rt-fold.on-lite .btn-ghost{box-shadow:inset 0 0 0 1px #c6c6cf;color:#131316}
.lite .btn-ghost:hover,.rt-fold.on-lite .btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--red);color:var(--red)}
.lite .rt-rich{color:#3e3e48}
.lite .rt-rich h2,.lite .rt-rich h3,.lite .rt-rich h4,.lite .rt-rich strong,.lite .rt-rich b{color:#131316}
.lite .rt-rich a:hover{color:#131316}
.lite .rt-rich ul li{border-bottom-color:#e3e3e8}
.lite .rt-rich .note{border-left-color:#e3e3e8;color:#131316}
.lite .rt-rich .note.warn{border-left-color:var(--red)}
.news.lite .news-list{border-top-color:#e3e3e8}
.news.lite .news-item{border-bottom-color:#e3e3e8}
.news.lite .news-item:hover{background:#fff}
.news.lite .news-item .cat{color:#9c9ca4}
.news.lite .news-item .arr{color:#b9b9c1}
.packs.lite{background:#ececef;border-top:1px solid #e3e3e8}
.packs.lite .pack{background:#fff;border-color:#e0e0e7}
.packs.lite .pack li{color:#3e3e48;border-bottom-color:#ececf0}
.packs.lite .pack .pack-desc{color:#3e3e48}
.packs.lite .pack .tier,.packs.lite .pack .name{color:#63636d}
.packs.lite .pack.hot{border-color:var(--red);background:linear-gradient(180deg,rgba(225,6,0,.05),transparent 55%),#fff}
.contact-cta.lite{background:#fff;border-bottom:1px solid #e3e3e8}
.contact-cta.lite p{color:#3e3e48}
.contact-cta .ph{color:#fff}
.contact-cta.lite .ph{color:#131316}
/* Phone numbers are written as <b class="ph"> and become tel: links when the
   page renders, so they keep the weight they had as bold text. The rule under
   them is the only hint that they are tappable — a full underline would shout. */
a.ph{font-weight:700;text-decoration:none;border-bottom:1px solid rgba(127,127,131,.5);transition:.2s}
a.ph:hover{color:var(--red);border-bottom-color:var(--red)}
.contact-cta h2 a{color:inherit;text-decoration:none;transition:.2s;display:inline-block}
.contact-cta h2 a:hover{color:var(--red)}
.about.lite{background:#ececef}
.about.lite .about-p{color:#3e3e48}
.about.lite .about-p b{color:#131316}
.verified.lite{background:#ececef;border-top-color:#e3e3e8}
.verified.lite p{color:#3e3e48}
.verified.lite .proof span{color:#3e3e48;border-color:#d9d9e0;background:#fff}
.stats.lite{background:#ececef;border-color:#e3e3e8}
.stats.lite .stat{border-color:#e3e3e8}
.stats.lite .stat .lbl{color:#63636d}
.mediatext.lite{border-top-color:#e3e3e8}
.models.lite{border-top-color:#e3e3e8}
.models.lite .model-tile{background:#fff;border-color:#e0e0e7}
.models.lite .model-shot{background:#ececef}
.models.lite .model-tile.no-photo .model-shot{background:
  repeating-linear-gradient(-45deg,rgba(0,0,0,.035) 0 14px,transparent 14px 28px),#ececef}
.models.lite .model-bar{border-top-color:#e9e9ee}
.models.lite .model-note{color:#6f6f79}
.lite .post-grid{background:#e3e3e8;border-color:#e3e3e8}
.lite .post-card{background:#fff}
.lite .post-card:hover{background:#fafafb}
.lite .post-card p{color:#3e3e48}
footer.lite{background:#ececef}
footer.lite .logo{color:#131316}
footer.lite .foot-grid a,footer.lite .foot-grid p{color:#40404a}
footer.lite .foot-grid h4,footer.lite .foot-hours{color:#6f6f79}
footer.lite .foot-phone{color:#131316}
footer.lite .foot-nl{border-bottom-color:#d8d8de}
footer.lite .foot-nl h3{color:#131316}
footer.lite .foot-nl p{color:#40404a}
footer.lite .nl-form{border-color:#cfcfd6;background:#fff}
footer.lite .nl-form input{color:#131316}
footer.lite .socials a{border-color:#c9c9d1;color:#6a6a73}
footer.lite .socials a:hover{border-color:var(--red);color:var(--red)}
footer.lite .foot-bottom{border-top-color:#d8d8de}
footer.lite .foot-bottom span,footer.lite .legal a{color:#8f8f98}
footer.lite .legal a:hover{color:#131316}

/* 15. Reveal animation ----------------------------------------------------- */
.rv{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* questions as drop downs -------------------------------------------------- */
.faq-grid{display:grid;grid-template-columns:1fr;gap:0}
.faq-grid.has-media{grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.faq-grid.has-media.rev .faq-media{order:2}
.faq-media{position:sticky;top:110px}
.faq-media img{width:100%;object-fit:cover}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;cursor:pointer;list-style:none;font-family:var(--display);font-size:clamp(17px,1.5vw,21px);line-height:1.3;text-transform:uppercase;letter-spacing:.02em;color:var(--text);transition:color .2s}
.faq-q::-webkit-details-marker{display:none}
.faq-q:hover{color:var(--red)}
.faq-item[open] .faq-q{color:var(--red)}
.faq-mark{width:26px;height:26px;flex-shrink:0;color:var(--red);transition:transform .25s}
.faq-item[open] .faq-mark{transform:rotate(180deg)}
.faq-a{padding:0 0 28px;max-width:70ch}
.faq-a>:first-child{margin-top:0}
.faq-a>:last-child{margin-bottom:0}
.lite .faq-list,.lite .faq-item{border-color:#e3e3e8}
.lite .faq-q{color:#131316}
.lite .faq-q:hover,.lite .faq-item[open] .faq-q{color:var(--red)}
@media(prefers-reduced-motion:reduce){.faq-mark{transition:none}}
@media(max-width:900px){.faq-grid.has-media{grid-template-columns:1fr;gap:34px}.faq-grid.has-media.rev .faq-media{order:0}.faq-media{position:static}}

/* placeholder where a photograph is missing -------------------------------- */
.rt-photo-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;min-height:320px;padding:34px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
.rt-photo-slot::before{content:"";position:absolute;inset:0;background-image:var(--tread-w);background-size:72px 40px;opacity:.035}
.rt-slot-mark{position:relative;font-family:var(--display);font-weight:700;font-size:clamp(46px,6vw,74px);line-height:1;letter-spacing:.02em;color:var(--text);opacity:.14;user-select:none}
.rt-slot-mark i{color:var(--red);font-style:italic;display:inline-block;transform:skewX(-12deg);margin:0 2px;opacity:.9}
.rt-photo-slot.is-editor{border-style:dashed;border-color:#3a3a40}
.rt-photo-slot b{position:relative;font-family:var(--display);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.rt-photo-slot span:not(.rt-slot-mark){position:relative;font-family:var(--tech);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);max-width:32ch;line-height:1.7}
.lite .rt-photo-slot{background:#f1f1f4;border-color:#e3e3e8}
.lite .rt-photo-slot::before{background-image:var(--tread-k);opacity:.04}
.lite .rt-slot-mark{color:#131316;opacity:.12}
.lite .rt-photo-slot.is-editor{border-color:#c9c9d2}
.lite .rt-photo-slot b{color:#3e3e48}
.lite .rt-photo-slot span:not(.rt-slot-mark){color:#6f6f79}
.gal-item.is-empty{background:none;border:0;padding:0}
.gal-item.is-empty .rt-photo-slot{min-height:200px;padding:22px;height:100%}

/* "Read more" fold around a run of sections ------------------------------- */
/* Collapsed means collapsed: the folded bands are not shown at all. An
   earlier version kept a sliver visible behind a fade, which cut headings in
   half and had to guess which colour to fade to. A clean break at the band
   edge needs neither. */
.rt-fold-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease}
.rt-fold-body>*{overflow:hidden;min-height:0}
.rt-fold.is-open .rt-fold-body{grid-template-rows:1fr}
/* The button carries the colour of the band above it, so it reads as part of
   that section rather than a strip floating between two of them. */
.rt-fold-more{display:flex;justify-content:center;padding:0 0 56px;background:var(--bg);margin-top:-1px}
.rt-fold.on-lite .rt-fold-more{background:#f4f4f6}
.rt-fold-btn{display:inline-flex;align-items:center;gap:10px}
.rt-fold-btn svg{width:18px;height:18px;transition:transform .3s}
.rt-fold.is-open .rt-fold-btn svg{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.rt-fold-body,.rt-fold-btn svg{transition:none}}
