/* =====================================================================
   Raven Ridge Media — style.css
   tokens · base · layout · components · responsive
   ===================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  --color-charcoal:#14242E; --color-slate:#496477; --color-mist:#87A9BD;
  --color-river:#A9C7D8; --color-cloud:#F7F8F6; --color-stone:#D8D1C5;
  --color-copper:#B56F3A; --color-copper-strong:#A5622F; --color-copper-deep:#8F5227;
  --color-blue:#2F6A9A; --color-blue-deep:#24557D;

  --bg:var(--color-cloud); --surface:#ffffff; --ink:var(--color-charcoal);
  --muted:var(--color-slate); --line:rgba(73,100,119,.20); --line-soft:rgba(73,100,119,.12);

  --font-serif:"Playfair Display",Georgia,serif;
  --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  --step-hero:clamp(2.4rem,1.5rem+4vw,4rem);
  --step-h1:clamp(2rem,1.42rem+2.5vw,3rem);
  --step-h2:clamp(1.6rem,1.25rem+1.5vw,2.3rem);
  --step-h3:clamp(1.15rem,1.05rem+.42vw,1.35rem);
  --text:1.0625rem;

  --container:1180px; --container-narrow:760px;
  --gutter:clamp(1.25rem,.8rem+2vw,2rem);
  --section-y:clamp(3.5rem,2.4rem+3.2vw,6rem);
  --radius:14px; --radius-sm:8px;
  --shadow:0 18px 40px -24px rgba(20,36,46,.4);
  --shadow-soft:0 10px 30px -20px rgba(20,36,46,.3);
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;font-family:var(--font-sans);font-size:var(--text);line-height:1.65;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
img,svg{display:block;max-width:100%;height:auto;}
a{color:inherit;}
h1,h2,h3,h4{line-height:1.15;margin:0 0 .5em;font-weight:700;letter-spacing:-.01em;}
p{margin:0 0 1rem;} p:last-child{margin-bottom:0;}
::selection{background:var(--color-river);color:var(--color-charcoal);}

/* ---------- 3. Utilities ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:var(--section-y);}
.section--narrow{padding-block:clamp(4rem,3rem+4vw,7rem);}
.section--center{text-align:center;} .section--center .cluster{justify-content:center;}
.narrow-block{max-width:var(--container-narrow);margin-inline:auto;}
.visually-hidden,.skip-link{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:focus{position:fixed!important;top:.75rem;left:.75rem;width:auto;height:auto;clip:auto;margin:0;padding:.6rem 1rem;z-index:200;white-space:normal;background:var(--color-charcoal);color:#fff;border-radius:var(--radius-sm);}
.cluster{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;}
.eyebrow{font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-slate);margin:0 0 .9rem;}
.eyebrow--light{color:var(--color-mist);}
.section-title{font-family:var(--font-serif);font-size:var(--step-h2);font-weight:700;max-width:22ch;}
.section-title--center{margin-inline:auto;text-align:center;max-width:24ch;}
.section-lede{font-size:1.15rem;color:var(--muted);max-width:60ch;}
.lede{font-size:1.2rem;color:var(--muted);max-width:62ch;margin-bottom:1.5rem;}
.muted-note{color:var(--muted);}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:2.5rem;}
.section-head .section-title{margin-bottom:0;}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--color-slate);text-decoration:none;white-space:nowrap;}
.link-arrow::after{content:"\2192";transition:transform .2s ease;}
.link-arrow:hover{color:var(--color-charcoal);} .link-arrow:hover::after{transform:translateX(3px);}
@media (prefers-reduced-motion:reduce){.link-arrow::after{transition:none;}}
.section--dark{background:var(--color-charcoal);color:var(--color-cloud);}
.section--dark .section-title{color:#fff;}
.section--dark .lede,.section--dark .section-lede{color:var(--color-river);}
.section--stone{background:var(--color-stone);--line:rgba(20,36,46,.14);}

/* ---------- 4. Buttons ---------- */
.btn{--btn-fs:.98rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-sans);font-weight:600;font-size:var(--btn-fs);line-height:1;text-decoration:none;cursor:pointer;padding:.85em 1.5em;border-radius:var(--radius-sm);border:1.5px solid transparent;transition:background-color .2s,border-color .2s,color .2s,transform .2s;}
.btn--sm{--btn-fs:.875rem;padding:.6em 1.1em;} .btn--lg{--btn-fs:1.05rem;padding:.95em 1.7em;}
.btn--primary{background:var(--color-copper-strong);color:#fff;}
.btn--primary:hover{background:var(--color-copper-deep);transform:translateY(-1px);}
.btn--ghost{background:transparent;color:var(--color-charcoal);border-color:var(--color-charcoal);}
.btn--ghost:hover{background:var(--color-charcoal);color:#fff;}
.section--dark .btn--ghost,.cta-band .btn--ghost{color:#fff;border-color:rgba(255,255,255,.5);}
.section--dark .btn--ghost:hover,.cta-band .btn--ghost:hover{background:#fff;color:var(--color-charcoal);border-color:#fff;}
@media (prefers-reduced-motion:reduce){.btn:hover{transform:none;}}
:where(a,button,input,select,textarea,summary,details):focus-visible{outline:3px solid var(--color-copper);outline-offset:2px;border-radius:4px;}

/* ---------- 5. Header / nav ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line-soft);}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:84px;}
.brand-lockup{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;}
.brand-lockup__mark{height:clamp(40px,4vw,52px);width:auto;}
.brand-lockup__name{display:block;font-family:var(--font-serif);font-size:clamp(1.2rem,1rem+.6vw,1.45rem);color:var(--color-charcoal);line-height:1;}
.brand-lockup__sub{display:block;font-size:.68rem;letter-spacing:.34em;text-transform:uppercase;color:var(--color-slate);margin-top:.3rem;}
.primary-nav__list{display:flex;align-items:center;gap:1.6rem;list-style:none;margin:0;padding:0;}
.primary-nav a{text-decoration:none;font-weight:500;color:var(--color-charcoal);font-size:.98rem;padding:.35rem 0;position:relative;}
.primary-nav a.btn--primary{background:var(--color-blue);color:#fff;padding:.6em 1.1em;}
.primary-nav a.btn--primary:hover{background:var(--color-blue-deep);color:#fff;}
.primary-nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--color-copper);transform:scaleX(0);transform-origin:left;transition:transform .2s;}
.primary-nav a:not(.btn):hover::after,.primary-nav a[aria-current="page"]::after{transform:scaleX(1);}
@media (prefers-reduced-motion:reduce){.primary-nav a::after{transition:none;}}
.nav-toggle{display:none;}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{display:block;width:24px;height:2px;background:var(--color-charcoal);border-radius:2px;transition:transform .25s,opacity .2s;}
.nav-toggle__bars{position:relative;}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";position:absolute;left:0;}
.nav-toggle__bars::before{top:-7px;} .nav-toggle__bars::after{top:7px;}
@media (max-width:900px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);}
  .primary-nav{position:absolute;inset:84px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow-soft);max-height:0;overflow:hidden;visibility:hidden;transition:max-height .3s,visibility 0s linear .3s;}
  .primary-nav.is-open{max-height:80vh;visibility:visible;transition:max-height .3s;}
  .primary-nav__list{flex-direction:column;align-items:stretch;gap:0;padding:.5rem var(--gutter) 1.25rem;}
  .primary-nav__list li{border-bottom:1px solid var(--line-soft);}
  .primary-nav a:not(.btn){display:block;padding:.9rem 0;} .primary-nav a:not(.btn)::after{display:none;}
  .primary-nav__cta{border-bottom:0;margin-top:.85rem;} .primary-nav__cta .btn{width:100%;}
  .nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent;}
  .nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{transform:translateY(-7px) rotate(-45deg);}
}
@media (prefers-reduced-motion:reduce){.primary-nav,.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{transition:none;}}

/* ---------- 6. Part 107 badge ---------- */
.part107{display:inline-flex;align-items:center;gap:.65rem;background:rgba(181,111,58,.12);border:1px solid rgba(181,111,58,.32);color:var(--color-charcoal);padding:.55rem 1rem;border-radius:999px;}
.part107__icon{width:22px;height:22px;color:var(--color-copper-strong);flex:none;}
.part107 strong{display:block;font-size:.9rem;line-height:1.2;}
.part107__since{display:block;font-size:.78rem;color:var(--muted);}
.part107--light{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:var(--color-cloud);}
.part107--light .part107__icon{color:var(--color-river);}
.part107--light .part107__since{color:var(--color-mist);}

/* ---------- 7. Hero ---------- */
.hero{padding-block:clamp(3rem,2rem+4vw,5.5rem);}
.hero__inner{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,1rem+4vw,4rem);align-items:center;}
.hero__headline{font-family:var(--font-serif);font-size:var(--step-hero);color:#fff;letter-spacing:-.015em;margin-bottom:1.1rem;max-width:14ch;}
.hero__lede{font-size:1.2rem;color:var(--color-river);max-width:50ch;margin-bottom:1.75rem;}
.hero__actions{margin-bottom:1.75rem;}
.hero__badge{display:inline-block;}
.hero__reel .video{box-shadow:0 30px 60px -30px rgba(0,0,0,.7);}

/* ---------- 8. Video ---------- */
.video{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:var(--color-charcoal);}
.video img{width:100%;height:100%;object-fit:cover;}
.video__facade{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;position:relative;}
.video__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;background:rgba(247,248,246,.94);display:grid;place-items:center;color:var(--color-charcoal);transition:transform .2s,background .2s;}
.video__play svg{width:30px;height:30px;margin-left:3px;}
.video__facade:hover .video__play{transform:translate(-50%,-50%) scale(1.08);background:#fff;}
@media (prefers-reduced-motion:reduce){.video__play{transition:none;} .video__facade:hover .video__play{transform:translate(-50%,-50%);}}
.video__frame{width:100%;height:100%;border:0;display:block;}
.video--placeholder .video__soon,.video__soon{position:absolute;left:1rem;bottom:1rem;background:rgba(20,36,46,.85);color:var(--color-cloud);font-size:.8rem;letter-spacing:.04em;padding:.35rem .8rem;border-radius:999px;}

/* ---------- 9. Tile grid + lightbox ---------- */
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.9rem;}
.tile{position:relative;display:block;padding:0;border:0;background:var(--color-charcoal);cursor:pointer;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;width:100%;}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.tile:hover img{transform:scale(1.05);}
@media (prefers-reduced-motion:reduce){.tile img{transition:none;} .tile:hover img{transform:none;}}
.tile__cap{position:absolute;left:0;right:0;bottom:0;padding:1.4rem .9rem .7rem;font-size:.85rem;color:#fff;text-align:left;background:linear-gradient(transparent,rgba(20,36,46,.82));opacity:0;transition:opacity .25s;pointer-events:none;}
.tile:hover .tile__cap,.tile:focus-visible .tile__cap{opacity:1;}
.tile--video{aspect-ratio:16/9;background:none;cursor:default;}
.tile--video .tile__cap{opacity:1;}

.lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,1120px);margin:auto;}
.lightbox::backdrop{background:rgba(20,36,46,.88);}
.lightbox figure{margin:0;}
.lightbox img{width:100%;height:auto;max-height:82vh;object-fit:contain;border-radius:var(--radius);}
.lightbox figcaption{color:var(--color-cloud);text-align:center;padding:.85rem;font-size:.9rem;}
.lightbox__close{position:fixed;top:1rem;right:1.25rem;width:44px;height:44px;border:0;border-radius:50%;background:rgba(247,248,246,.15);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;}
.lightbox__close:hover{background:rgba(247,248,246,.3);}

/* ---------- 10. Paths ---------- */
.paths__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.25rem,.5rem+2vw,2rem);margin-top:2.5rem;}
.path-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;}
.path-card__icon{display:inline-flex;color:var(--color-copper-strong);margin-bottom:1rem;}
.path-card__icon .icon{width:34px;height:34px;}
.path-card h3{font-family:var(--font-serif);font-size:var(--step-h3);}
.path-card p{color:var(--muted);}

/* ---------- 11. Featured / reel feature ---------- */
.reel-feature__player{max-width:960px;}
.gallery-section{padding-block:clamp(2rem,1.4rem+2vw,3.25rem);}
.gallery-section .section-title{margin-bottom:1.5rem;}

/* ---------- 12. Print grid ---------- */
.print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(1.5rem,.8rem+2vw,2.5rem);}
.print-card__media{border-radius:var(--radius);overflow:hidden;background:var(--color-charcoal);}
.print-card__media--portrait{aspect-ratio:4/5;} .print-card__media--landscape{aspect-ratio:5/4;}
.print-card__media img{width:100%;height:100%;object-fit:cover;}
.print-card__body{padding-top:1rem;}
.print-card__body h2{font-family:var(--font-serif);font-size:1.25rem;margin-bottom:.35rem;}
.print-card__sizes{font-size:.85rem;color:var(--color-slate);font-weight:500;margin-bottom:.35rem;}
.print-card__note{color:var(--muted);font-size:.95rem;margin-bottom:.6rem;}

/* ---------- 13. Licensing use grid + factors ---------- */
.use-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,.5rem+2vw,1.75rem);margin-top:2rem;}
.use-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;}
.use-card h3{font-size:var(--step-h3);margin-bottom:.4rem;}
.use-card p{color:var(--muted);margin:0;}
.factor-list{list-style:none;margin:1.25rem 0;padding:0;display:grid;gap:.6rem;}
.factor-list li{position:relative;padding-left:1.6rem;}
.factor-list li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--color-copper);}

/* ---------- 14. Commissions ---------- */
.commission-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.25rem,.5rem+2vw,2rem);margin-top:2rem;}
.commission-card{border-top:2px solid var(--color-charcoal);padding-top:1.25rem;}
.commission-card__icon{display:inline-flex;color:var(--color-copper-strong);margin-bottom:.6rem;}
.commission-card__icon .icon{width:30px;height:30px;}
.commission-card h3{font-size:var(--step-h3);margin-bottom:.35rem;}
.commission-card p{color:var(--muted);margin:0;}

/* ---------- 15. Process ---------- */
.process__list{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,.4rem+2vw,2rem);}
.process__step{position:relative;padding-top:1.25rem;border-top:2px solid var(--color-charcoal);}
.process__num{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;color:var(--color-copper-strong);display:block;margin-bottom:.5rem;}
.process__title{font-size:1.05rem;margin-bottom:.4rem;}
.process__step p{color:var(--muted);font-size:.95rem;margin:0;}

/* ---------- 16. About ---------- */
.about-teaser__inner{display:grid;grid-template-columns:1.4fr .6fr;gap:clamp(2rem,1rem+4vw,4rem);align-items:center;}
.about-teaser__badge{display:flex;justify-content:center;}
.prose-narrow{max-width:var(--container-narrow);}
.prose-narrow h2{font-family:var(--font-serif);font-size:clamp(1.3rem,1.1rem+.9vw,1.7rem);margin-top:2rem;}
.prose-narrow h2:first-child{margin-top:0;}
.prose-narrow p{color:#2a3b45;}
.about__parent{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);color:var(--muted);}

/* ---------- 17. FAQ ---------- */
.faq__inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.5rem,.5rem+4vw,4rem);align-items:start;}
.faq__list{display:grid;gap:0;border-top:1px solid var(--line);}
.faq__item{border-bottom:1px solid var(--line);}
.faq__q{cursor:pointer;list-style:none;padding:1.15rem 2rem 1.15rem 0;font-weight:600;font-size:1.05rem;position:relative;}
.faq__q::-webkit-details-marker{display:none;}
.faq__q::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:var(--color-slate);}
.faq__item[open] .faq__q::after{content:"\2013";}
.faq__a{padding:0 2rem 1.3rem 0;color:var(--muted);} .faq__a p{margin:0;}

/* ---------- 18. CTA band ---------- */
.cta-band{background:var(--color-charcoal);color:var(--color-cloud);}
.cta-band__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-block:clamp(3rem,2rem+3vw,5rem);}
.cta-band__heading{font-family:var(--font-serif);font-size:var(--step-h2);color:#fff;margin-bottom:.6rem;max-width:18ch;}
.cta-band__body{color:var(--color-river);max-width:46ch;margin:0;}
.cta-band__action{flex:none;}

/* ---------- 19. Contact / forms ---------- */
.page-hero{padding-block:clamp(2.75rem,2rem+3vw,4.5rem) 0;}
.page-title{font-family:var(--font-serif);font-size:var(--step-h1);margin-bottom:.85rem;}
.contact__inner{display:grid;grid-template-columns:1.4fr .6fr;gap:clamp(2rem,1rem+4vw,4rem);align-items:start;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.25rem;margin-bottom:1.5rem;}
.field{display:flex;flex-direction:column;} .field--full{grid-column:1/-1;}
.field label{font-weight:600;font-size:.9rem;margin-bottom:.4rem;}
.field .optional{font-weight:400;color:var(--muted);} .field .req{color:var(--color-copper-strong);}
.inquiry-form input,.inquiry-form select,.inquiry-form textarea{font:inherit;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:.7rem .85rem;width:100%;transition:border-color .2s,box-shadow .2s;}
.inquiry-form input:focus,.inquiry-form select:focus,.inquiry-form textarea:focus{outline:none;border-color:var(--color-slate);box-shadow:0 0 0 3px rgba(73,100,119,.15);}
.inquiry-form textarea{resize:vertical;min-height:3rem;}
.form-note{color:var(--muted);font-size:.9rem;margin:.85rem 0 0;}
.contact__aside h2{font-family:var(--font-serif);font-size:1.3rem;}
.contact__steps{padding-left:1.1rem;color:var(--muted);display:grid;gap:.5rem;}
.contact__direct,.contact__note{color:var(--muted);font-size:.95rem;}
.contact__note{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line);}

/* ---------- 20. Footer ---------- */
.site-footer{background:var(--color-charcoal);color:var(--color-river);}
.site-footer__inner{display:grid;grid-template-columns:1.5fr .8fr .8fr;gap:clamp(1.75rem,1rem+3vw,3.5rem);padding-block:clamp(3rem,2rem+3vw,4.5rem) 2.5rem;}
.footer-lockup{display:inline-flex;align-items:center;gap:.85rem;text-decoration:none;}
.footer-lockup__mark img{width:52px;height:auto;}
.footer-lockup__name{display:block;font-family:var(--font-serif);font-size:1.5rem;color:#fff;line-height:1;}
.footer-lockup__sub{display:block;font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--color-mist);margin-top:.35rem;}
.site-footer__tagline{margin-top:1.1rem;color:var(--color-mist);font-size:.95rem;}
.site-footer__badge{margin-top:.5rem;color:var(--color-mist);font-size:.82rem;letter-spacing:.02em;}
.site-footer__heading{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-mist);font-weight:600;margin-bottom:1rem;}
.site-footer__nav ul,.site-footer__contact ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;}
.site-footer a{color:var(--color-river);text-decoration:none;} .site-footer a:hover{color:#fff;text-decoration:underline;}
.site-footer__base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.5rem;border-top:1px solid rgba(255,255,255,.12);font-size:.88rem;color:var(--color-mist);}
.site-footer__base p{margin:0;}

/* ---------- 21. Responsive ---------- */
@media (max-width:980px){
  .hero__inner,.about-teaser__inner,.faq__inner,.contact__inner{grid-template-columns:1fr;}
  .hero__reel{order:-1;}
  .use-grid,.commission-grid{grid-template-columns:1fr 1fr;}
  .process__list{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:620px){
  .paths__grid,.use-grid,.commission-grid,.process__list,.form-grid{grid-template-columns:1fr;}
  .site-footer__inner{grid-template-columns:1fr;}
  .cta-band__inner{flex-direction:column;align-items:flex-start;}
  .about-teaser__badge{justify-content:flex-start;}
}

/* =====================================================================
   HOME REDESIGN — editorial / art-directed (scoped to body.home)
   ===================================================================== */
.home{--paper:#F0EBE2;--ink:#14242E;--muted:#5A6B75;--rule:rgba(20,36,46,.14);}

.home [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);}
.home [data-reveal].is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.home [data-reveal]{opacity:1;transform:none;transition:none;}}

/* Shared editorial atoms */
.home .rr-kicker{display:inline-flex;align-items:center;gap:.75rem;margin:0 0 1.2rem;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.home .rr-kicker::before{content:"";width:2rem;height:1px;background:currentColor;opacity:.55;}
.home .rr-kicker--light{color:rgba(247,248,246,.78);}
.home .rr-h2{font-family:var(--font-serif);font-weight:700;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.02em;line-height:1.02;color:var(--ink);margin:0;}
.home .rr-link{font-weight:600;text-decoration:none;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:3px;transition:opacity .2s;white-space:nowrap;}
.home .rr-link:hover{opacity:.6;}
.home .rr-link--strong{font-size:1.05rem;}
.home .rr-link--light{color:var(--paper);border-color:rgba(247,248,246,.55);}

/* ---- HERO ---- */
.home .rr-hero{position:relative;display:flex;align-items:flex-end;min-height:clamp(560px,90svh,960px);overflow:hidden;color:var(--paper);}
.home .rr-hero__media{position:absolute;inset:0;z-index:0;}
.home .rr-hero__media img,.home .rr-hero__media video{width:100%;height:100%;object-fit:cover;}
.home .rr-hero__img,.home .rr-hero__video{animation:rrZoom 18s ease-out both;}
@keyframes rrZoom{from{transform:scale(1.08);}to{transform:scale(1);}}
@media (prefers-reduced-motion:reduce){.home .rr-hero__img,.home .rr-hero__video{animation:none;}}
.home .rr-hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,36,46,.34) 0%,rgba(20,36,46,.04) 26%,rgba(20,36,46,.22) 58%,rgba(20,36,46,.8) 100%);}
.home .rr-hero__inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;max-width:var(--container);margin-inline:auto;padding:clamp(1.75rem,3.5vw,3rem) var(--gutter) clamp(2.5rem,5vw,4.5rem);}
.home .rr-hero__coords{margin:0;font-size:.75rem;letter-spacing:.18em;color:rgba(247,248,246,.85);font-variant-numeric:tabular-nums;}
.home .rr-hero__title{margin:0 0 1.75rem;line-height:.9;text-shadow:0 2px 34px rgba(0,0,0,.35);}
.home .rr-hero__l1{display:block;font-family:var(--font-serif);font-weight:600;font-size:clamp(1.4rem,3.2vw,2.6rem);}
.home .rr-hero__l2{display:block;font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:clamp(3.25rem,9vw,7.5rem);letter-spacing:-.02em;margin-top:.06em;}
.home .rr-hero__foot{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1.25rem 3rem;max-width:min(100%,58rem);}
.home .rr-hero__lede{margin:0;max-width:42ch;font-size:1.05rem;color:rgba(247,248,246,.9);}
.home .rr-hero__actions{display:flex;gap:1.75rem;flex-wrap:wrap;margin:0;}
.home .rr-hero__cred{margin:auto 0 1rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,248,246,.8);}
.home .rr-hero__cred span{font-weight:700;color:var(--paper);margin-right:.6em;}

/* ---- GALLERY ---- */
.home .rr-gallery{background:var(--paper);padding-block:clamp(4rem,7vw,8rem);}
.home .rr-gallery__head{max-width:var(--container);margin:0 auto clamp(2rem,4vw,3.5rem);padding-inline:var(--gutter);display:grid;grid-template-columns:1fr auto;grid-template-areas:"k k" "h l";gap:.4rem 2rem;align-items:end;}
.home .rr-gallery__head .rr-kicker{grid-area:k;} .home .rr-gallery__head .rr-h2{grid-area:h;} .home .rr-gallery__head .rr-link{grid-area:l;justify-self:end;align-self:end;}
.home .rr-gallery__grid{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.1rem,2vw,2rem);align-items:start;}
.home .rr-frame{margin:0;}
.home .rr-frame > a{display:block;overflow:hidden;}
.home .rr-frame img{width:100%;height:auto;display:block;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.home .rr-frame:hover img{transform:scale(1.045);}
@media (prefers-reduced-motion:reduce){.home .rr-frame img{transition:none;} .home .rr-frame:hover img{transform:none;}}
.home .rr-frame--01{grid-column:1 / 8;}
.home .rr-frame--01 img{aspect-ratio:3/2;}
.home .rr-frame--02{grid-column:9 / 13;grid-row:1 / 3;margin-top:clamp(2.5rem,6vw,6rem);}
.home .rr-frame--02 img{aspect-ratio:4/5;}
.home .rr-frame--03{grid-column:1 / 4;}
.home .rr-frame--03 img{aspect-ratio:1/1;}
.home .rr-frame--04{grid-column:4 / 8;}
.home .rr-frame--04 img{aspect-ratio:4/3;}
.home .rr-frame figcaption{display:flex;align-items:baseline;gap:.75rem;margin-top:.85rem;font-size:.85rem;}
.home .rr-frame__no{font-family:var(--font-serif);font-size:.95rem;color:var(--ink);opacity:.5;font-variant-numeric:tabular-nums;}
.home .rr-frame__t{color:var(--ink);font-weight:600;}
.home .rr-frame__c{margin-left:auto;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;color:var(--muted);}
.home .rr-bleed{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-top:clamp(3rem,6vw,6rem);overflow:hidden;}
.home .rr-bleed img{width:100%;height:clamp(320px,55vh,640px);object-fit:cover;display:block;}
.home .rr-bleed figcaption{position:absolute;left:var(--gutter);bottom:1.25rem;display:flex;gap:.75rem;align-items:baseline;text-shadow:0 1px 14px rgba(0,0,0,.5);}
.home .rr-bleed .rr-frame__no{color:rgba(247,248,246,.85);opacity:1;} .home .rr-bleed .rr-frame__t{color:var(--paper);}

/* ---- SPLIT ---- */
.home .rr-split{display:grid;grid-template-columns:58% 42%;min-height:clamp(420px,60vh,640px);}
.home .rr-split__visual{position:relative;overflow:hidden;}
.home .rr-split__visual img{width:100%;height:100%;object-fit:cover;}
.home .rr-split__overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:.6rem;padding:clamp(1.75rem,3vw,3rem);background:linear-gradient(180deg,transparent 28%,rgba(20,36,46,.78));color:var(--paper);}
.home .rr-split__overlay p{margin:0;max-width:40ch;color:rgba(247,248,246,.9);}
.home .rr-split__type{background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:center;gap:.85rem;padding:clamp(2rem,4vw,4rem);}
.home .rr-split__type .rr-kicker{color:rgba(247,248,246,.7);}
.home .rr-split__type .rr-kicker::before{background:rgba(247,248,246,.55);}
.home .rr-split__type p{margin:0;color:rgba(247,248,246,.8);max-width:34ch;}
.home .rr-split__h{font-family:var(--font-serif);font-weight:700;font-size:clamp(1.8rem,3.6vw,2.8rem);margin:0;color:#fff;}
.home .rr-split__links{display:flex;gap:1.75rem;margin:.4rem 0 0;}

/* ---- CREDIBILITY (Part 107) ---- */
.home .rr-cred{position:relative;display:flex;align-items:center;min-height:clamp(460px,72vh,760px);overflow:hidden;color:var(--paper);}
.home .rr-cred__media{position:absolute;inset:0;z-index:0;}
.home .rr-cred__media img{width:100%;height:100%;object-fit:cover;}
.home .rr-cred__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,36,46,.86) 0%,rgba(20,36,46,.56) 46%,rgba(20,36,46,.18) 100%);}
.home .rr-cred__numeral{position:absolute;right:clamp(-1rem,1vw,3rem);bottom:-.14em;z-index:1;font-family:var(--font-serif);font-weight:700;font-size:clamp(12rem,32vw,30rem);line-height:.8;color:rgba(247,248,246,.06);pointer-events:none;}
.home .rr-cred__inner{position:relative;z-index:2;width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.home .rr-cred__title{font-family:var(--font-serif);font-weight:700;font-size:clamp(2.2rem,6vw,4.5rem);line-height:1.02;letter-spacing:-.02em;max-width:16ch;margin:0 0 1.1rem;color:#fff;}
.home .rr-cred__body{max-width:46ch;color:rgba(247,248,246,.86);font-size:1.05rem;margin-bottom:1.5rem;}

/* ---- FAQ (quiet editorial) ---- */
.home .rr-faq{max-width:var(--container);margin-inline:auto;padding:clamp(4rem,7vw,8rem) var(--gutter);display:grid;grid-template-columns:.5fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:start;}
.home .rr-faq__list{border-top:1px solid var(--rule);}
.home .rr-faq__item{border-bottom:1px solid var(--rule);}
.home .rr-faq__item summary{list-style:none;cursor:pointer;padding:1.3rem 2rem 1.3rem 0;font-family:var(--font-serif);font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:600;color:var(--ink);position:relative;}
.home .rr-faq__item summary::-webkit-details-marker{display:none;}
.home .rr-faq__item summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:1.4rem;font-weight:300;color:var(--muted);}
.home .rr-faq__item[open] summary::after{content:"\2013";}
.home .rr-faq__a{padding:0 2rem 1.4rem 0;color:var(--muted);max-width:64ch;} .home .rr-faq__a p{margin:0;}

/* ---- FINAL CTA ---- */
.home .rr-final{background:var(--ink);color:var(--paper);}
.home .rr-final__inner{max-width:var(--container);margin-inline:auto;padding:clamp(4.5rem,9vw,9rem) var(--gutter);}
.home .rr-final__title{font-family:var(--font-serif);font-weight:700;font-size:clamp(2.6rem,8vw,6rem);line-height:.98;letter-spacing:-.02em;margin:0 0 1.25rem;color:#fff;}
.home .rr-final__body{max-width:44ch;color:rgba(247,248,246,.85);font-size:1.1rem;margin-bottom:1.75rem;}
.home .rr-final__coords{margin-top:clamp(3rem,6vw,5rem);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,248,246,.5);font-variant-numeric:tabular-nums;}

/* ---- Home responsive ---- */
@media (max-width:900px){
  .home .rr-split,.home .rr-faq{grid-template-columns:1fr;}
  .home .rr-frame--01{grid-column:1 / -1;}
  .home .rr-frame--02{grid-column:1 / 7;grid-row:auto;margin-top:0;}
  .home .rr-frame--03{grid-column:7 / 13;grid-row:2;align-self:end;}
  .home .rr-frame--04{grid-column:1 / -1;}
  .home .rr-frame--04 img{aspect-ratio:16/9;}
}
@media (max-width:600px){
  .home .rr-hero__inner{padding-bottom:clamp(2rem,8vw,3rem);}
  .home .rr-gallery__grid{grid-template-columns:1fr;}
  .home .rr-frame--01,.home .rr-frame--02,.home .rr-frame--03,.home .rr-frame--04{grid-column:1 / -1;grid-row:auto;}
  .home .rr-frame--02 img{aspect-ratio:4/5;} .home .rr-frame--03 img{aspect-ratio:3/2;}
}
.site-banner {
  background: #2F6A9A;   
  color: #fff;
  text-align: center;
  padding: 0.6rem 1rem;
  font-size: 0.95rem;
}
.site-banner p { margin: 0; }