/* ==========================================================================
   معهد التقوى — Al-Taqwa Institute
   DIRECTION B · الفاخر الهادئ · Editorial
   Restraint, white space, hairlines, one controlled image.
   ========================================================================== */

/* Fonts are loaded via <link> in each page's head, not @import. An @import here
   chains style.css -> fonts.googleapis.com, delaying first paint and causing a
   layout shift when the faces swap in. Same faces, same weights — see
   build-seo.py, which writes the link tag. */

:root{
  --navy:      #001544;
  --navy-ink:  #061B49;
  --gold:      #D4B042;
  --gold-deep: #7C620F;   /* AA-safe gold for small text on cream */
  --gold-wash: #F2E6C4;

  --paper:     #FBF9F4;
  --paper-2:   #F4F0E6;
  --paper-3:   #EDE7D8;
  --ink:       #14171F;
  --body:      #3D4453;
  --muted:     #616878;   /* AA-safe on paper and paper-2 */
  --hair:      #E2DBCB;
  --hair-soft: #EFEADD;

  --f-head: 'Noto Kufi Arabic','Cormorant Garamond',serif;
  --f-body: 'IBM Plex Sans Arabic','Inter',system-ui,sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow: 0 30px 80px -34px rgba(0,21,68,.30);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
/* The browser's own [hidden] rule is only as specific as a single class, so any
   `.thing{display:flex}` silently defeats it. This keeps the attribute honest. */
[hidden]{display:none !important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--f-body);font-weight:300;font-size:16.5px;line-height:1.95;
  color:var(--body);background:var(--paper);overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body[dir="ltr"]{font-family:'Inter',system-ui,sans-serif;line-height:1.8}
h1,h2,h3,h4,h5{font-family:var(--f-head);color:var(--navy);font-weight:400;line-height:1.48}
body[dir="ltr"] h1,body[dir="ltr"] h2,body[dir="ltr"] h3{
  font-family:'Cormorant Garamond',serif;font-weight:400;line-height:1.24}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
img{height:auto}   /* keeps the intrinsic width/height attributes from distorting */
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--gold-wash);color:var(--navy)}

.wrap{max-width:1280px;margin-inline:auto;padding-inline:40px}
.narrow{max-width:840px;margin-inline:auto;padding-inline:40px}
section{padding:120px 0;position:relative}
.tight{padding:88px 0}

/* ─────────────────────────────────────────────── editorial primitives ── */
.kicker{
  display:block;color:var(--gold-deep);font-family:var(--f-body);font-weight:500;
  font-size:.73rem;letter-spacing:.26em;margin-bottom:22px
}
.hair{height:1px;background:var(--hair);width:100%;transform-origin:inline-start}
.hair-gold{height:1px;background:var(--gold);width:64px}
.rv .hair-gold,.rv .hair{transform:scaleX(0);transition:transform 1s .2s var(--ease)}
.rv.in .hair-gold,.rv.in .hair{transform:scaleX(1)}

.display{font-size:clamp(1.85rem,3.5vw,3.05rem);line-height:1.42;font-weight:300;
         letter-spacing:-.008em;color:var(--navy)}
.display em{font-style:normal;font-weight:600;
  background:linear-gradient(transparent 64%,var(--gold-wash) 64%)}
.lede{font-size:1.06rem;color:var(--muted);font-weight:300;max-width:52ch}

.num{font-family:var(--f-head);color:var(--gold-deep);font-size:.76rem;
     letter-spacing:.22em;font-weight:500;display:block;margin-bottom:16px}

.ico{width:20px;height:20px;stroke:currentColor;stroke-width:1.35;fill:none;
     stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico-lg{width:26px;height:26px;stroke-width:1.1}

/* ─────────────────────────────────────────────────────────── buttons ── */
.btn{display:inline-flex;align-items:center;gap:11px;padding:15px 32px;
     font-family:var(--f-body);font-weight:400;font-size:.93rem;letter-spacing:.02em;
     position:relative;overflow:hidden;white-space:nowrap;
     transition:color .4s var(--ease),border-color .4s}
.btn::after{content:'';position:absolute;inset:0;z-index:0;transform:scaleX(0);
            transform-origin:inline-start;transition:transform .5s var(--ease)}
.btn>*{position:relative;z-index:1}
.btn:hover::after{transform:scaleX(1)}
.btn-navy{background:var(--navy);color:var(--paper)}
.btn-navy::after{background:var(--gold)}
.btn-navy:hover{color:var(--navy)}
.btn-line{border:1px solid var(--navy);color:var(--navy)}
.btn-line::after{background:var(--navy)}
.btn-line:hover{color:var(--paper)}
.btn-gold{background:var(--gold);color:var(--navy);font-weight:500}
.btn-gold::after{background:var(--navy)}
.btn-gold:hover{color:var(--gold)}
.btn-ghost{border:1px solid rgba(212,176,66,.5);color:var(--gold)}
.btn-ghost::after{background:var(--gold)}
.btn-ghost:hover{color:var(--navy);border-color:var(--gold)}

.link{display:inline-flex;align-items:center;gap:10px;color:var(--gold-deep);
      font-size:.9rem;font-weight:500;position:relative;padding-bottom:3px}
.link::after{content:'';position:absolute;bottom:0;inset-inline-start:0;height:1px;width:100%;
             background:var(--gold);transform:scaleX(0);transform-origin:inline-end;
             transition:transform .45s var(--ease)}
.link:hover::after{transform:scaleX(1);transform-origin:inline-start}
.link .ico{width:15px;height:15px;transition:transform .4s var(--ease)}
.link:hover .ico{transform:translateX(-5px)}
body[dir="ltr"] .link:hover .ico{transform:translateX(5px)}

/* ─────────────────────────────────────────────────────────── topbar ── */
.topbar{border-bottom:1px solid var(--hair);font-size:.78rem;color:var(--muted);
        background:var(--paper)}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;
              gap:18px;flex-wrap:wrap;min-height:46px}
.topbar-info{display:flex;gap:30px;flex-wrap:wrap}
.topbar-info span{display:inline-flex;align-items:center;gap:9px}
.topbar .ico{width:14px;height:14px;stroke:var(--gold-deep)}
.lang{border:1px solid var(--hair);color:var(--navy);padding:5px 16px;
      font-size:.74rem;letter-spacing:.12em;display:inline-flex;align-items:center;gap:8px;
      transition:.35s var(--ease)}
.lang:hover{background:var(--navy);color:var(--paper);border-color:var(--navy)}

/* ─────────────────────────────────────────────────────────── header ── */
.site-head{position:sticky;top:0;z-index:80;background:rgba(251,249,244,.93);
           backdrop-filter:saturate(180%) blur(16px);
           border-bottom:1px solid var(--hair);transition:border-color .4s}
.site-head.scrolled{border-color:var(--hair)}
.site-head .wrap{display:flex;align-items:center;gap:40px;
                 padding-top:18px;padding-bottom:18px;transition:padding .4s var(--ease)}
.site-head.scrolled .wrap{padding-top:11px;padding-bottom:11px}
.brand{display:flex;align-items:center;gap:16px;flex:none}
.brand img{height:54px;width:auto;transition:height .4s var(--ease)}
.site-head.scrolled .brand img{height:42px}
.brand .div{width:1px;height:36px;background:var(--hair);transition:height .4s}
.site-head.scrolled .brand .div{height:28px}
.brand b{display:block;font-family:var(--f-head);font-weight:600;font-size:1.16rem;
         color:var(--navy);line-height:1.3}
.brand small{display:block;font-size:.65rem;color:var(--muted);letter-spacing:.17em;font-weight:400}

.nav{margin-inline-start:auto;display:flex;align-items:center;gap:36px}
.nav a{font-size:.92rem;font-weight:300;color:var(--body);position:relative;padding:8px 0}
.nav a::after{content:'';position:absolute;bottom:3px;inset-inline-start:0;height:1px;width:0;
              background:var(--gold);transition:width .42s var(--ease)}
.nav a:hover::after,.nav a.on::after{width:100%}
.nav a.on{color:var(--navy);font-weight:500}
.burger{display:none;margin-inline-start:auto;color:var(--navy);padding:6px}

/* ─────────────────────────────────────────────────────────────── hero ── */
.hero{border-bottom:1px solid var(--hair)}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;min-height:min(660px,82vh)}
.hero-txt{padding:96px 40px 96px 0;display:flex;flex-direction:column;justify-content:center;
          max-width:660px;margin-inline-start:auto;width:100%}
body[dir="ltr"] .hero-txt{padding:96px 0 96px 40px}
.hero-txt .display{margin-bottom:26px}
.hero-txt .lede{margin-bottom:34px}
.hero-acts{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.hero-img{position:relative;overflow:hidden;background:var(--paper-2)}
.hero-img img{width:100%;height:100%;object-fit:cover;
              filter:grayscale(.42) contrast(1.06) brightness(1.02);
              transform:scale(1.06);transition:transform 1.6s var(--ease),filter .8s;
              animation:slowdrift 30s ease-in-out infinite alternate}
@keyframes slowdrift{from{transform:scale(1.04)}to{transform:scale(1.13)}}
.hero-img::after{content:'';position:absolute;inset:26px;border:1px solid rgba(255,255,255,.42);
                 pointer-events:none;opacity:0;transition:opacity 1.2s .5s var(--ease)}
.hero-img.in::after{opacity:1}
.hero-img::before{content:'';position:absolute;inset:0;z-index:2;background:var(--paper);
                  transform-origin:inline-end;animation:wipe 1.3s .15s var(--ease) forwards}
@keyframes wipe{to{transform:scaleX(0)}}

/* small stat rail under hero */
.rail{border-bottom:1px solid var(--hair)}
.rail .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.rail div{padding:34px 30px;border-inline-start:1px solid var(--hair);text-align:center}
.rail div:first-child{border-inline-start:none}
.rail b{display:block;font-family:var(--f-head);font-size:1.75rem;color:var(--navy);
        font-weight:400;line-height:1.2;margin-bottom:4px}
.rail span{font-size:.79rem;color:var(--muted);letter-spacing:.06em}

/* ────────────────────────────────────────────────────── section head ── */
.shead{max-width:620px;margin-bottom:70px}
.shead.center{margin-inline:auto;text-align:center}
.shead h2{font-size:clamp(1.5rem,2.8vw,2.25rem);font-weight:300;margin-bottom:20px}
.shead h2 em{font-style:normal;font-weight:600}
.shead p{color:var(--muted);font-size:1rem}
.shead .hair-gold{margin-bottom:26px}
.shead.center .hair-gold{margin-inline:auto}

/* ───────────────────────────────────────────────────── streams (cols) ── */
.cols{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair)}
.cols > *{padding:52px 40px;border-inline-start:1px solid var(--hair);
          transition:background .55s var(--ease)}
.cols > *:first-child{border-inline-start:none}
.cols > *:hover{background:var(--paper-2)}
.cols .ico-lg{stroke:var(--gold-deep);margin-bottom:24px}
.cols h3{font-size:1.14rem;font-weight:500;margin-bottom:12px}
.cols p{font-size:.94rem;color:var(--muted);margin-bottom:22px}

/* ──────────────────────────────────────────────── editorial course rows ── */
.rows{border-top:1px solid var(--hair)}
.row{display:grid;grid-template-columns:60px 150px 1fr 220px 44px;gap:26px;align-items:center;
     padding:26px 20px;border-bottom:1px solid var(--hair);
     transition:background .5s var(--ease),padding .5s var(--ease)}
.row:hover{background:var(--paper-2);padding-inline:32px}
.row-thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-3)}
.row-thumb img{width:100%;height:100%;object-fit:cover;
  filter:grayscale(.55) contrast(1.06);
  transition:transform 1.1s var(--ease),filter .7s var(--ease)}
.row:hover .row-thumb img{transform:scale(1.07);filter:grayscale(0) contrast(1.02)}
.row-thumb::after{content:'';position:absolute;inset:0;
  border:1px solid rgba(255,255,255,.35);pointer-events:none}
.row .r-num{font-family:var(--f-head);color:var(--gold-deep);font-size:.86rem;
            letter-spacing:.14em;transition:color .4s}
.row:hover .r-num{color:var(--navy)}
.row h3{font-size:1.12rem;font-weight:500;margin-bottom:7px;line-height:1.55}
.row p{font-size:.9rem;color:var(--muted);max-width:56ch}
.row .r-meta{display:flex;flex-direction:column;gap:7px;font-size:.82rem;color:var(--muted)}
.row .r-meta span{display:inline-flex;align-items:center;gap:8px}
.row .r-meta .ico{width:14px;height:14px;stroke:var(--gold-deep)}
.row .r-go{width:44px;height:44px;border:1px solid var(--hair);border-radius:50%;
           display:grid;place-items:center;color:var(--navy);
           transition:.45s var(--ease);justify-self:end}
body[dir="ltr"] .row .r-go{justify-self:start}
.row:hover .r-go{background:var(--navy);border-color:var(--navy);color:var(--gold)}
.row .r-go .ico{width:16px;height:16px}
.r-tag{display:inline-block;font-size:.68rem;letter-spacing:.16em;color:var(--gold-deep);
       border:1px solid var(--hair);padding:3px 11px;margin-bottom:10px}

/* ────────────────────────────────────────────────────────── feature 2col ── */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;
       border-block:1px solid var(--hair)}
.split-txt{padding:88px 64px;display:flex;flex-direction:column;justify-content:center}
.split-img{position:relative;overflow:hidden;min-height:520px;background:var(--paper-2)}
.split-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) contrast(1.05)}
.split-img::after{content:'';position:absolute;inset:24px;border:1px solid rgba(255,255,255,.4)}

/* ─────────────────────────────────────────────────────── numbered list ── */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair)}
.steps > div{padding:44px 32px;border-inline-start:1px solid var(--hair)}
.steps > div:first-child{border-inline-start:none}
.steps h3{font-size:1.03rem;font-weight:500;margin-bottom:11px}
.steps p{font-size:.9rem;color:var(--muted)}

/* ────────────────────────────────────────────────────────── director ── */
.dir{display:grid;grid-template-columns:400px 1fr;gap:80px;align-items:center}
.dir-photo{position:relative}
.dir-photo img{width:100%;filter:grayscale(.5) contrast(1.05)}
.dir-photo::after{content:'';position:absolute;inset-inline-end:-22px;bottom:-22px;
                  width:150px;height:150px;border:1px solid var(--gold);z-index:-1}
.dir blockquote{font-family:var(--f-head);font-size:clamp(1.08rem,1.55vw,1.34rem);
                font-weight:300;line-height:2;color:var(--navy);margin:26px 0 34px}
.dir .sig strong{display:block;font-family:var(--f-head);color:var(--navy);
                 font-size:1.04rem;font-weight:600}
.dir .sig span{color:var(--muted);font-size:.87rem}

/* ─────────────────────────────────────────────────────────── dark band ── */
.band{background:var(--navy);color:#B7C4E0;border:none}
.band h2,.band h3,.band h4{color:#fff}
.band .kicker{color:var(--gold)}
.band .hair-gold{background:var(--gold)}
.band-grid{display:grid;grid-template-columns:1.4fr auto;gap:56px;align-items:center}
.band-acts{display:flex;gap:14px;flex-wrap:wrap}

/* ─────────────────────────────────────────────────────────────── forms ── */
.panel{border:1px solid var(--hair);background:#fff;padding:52px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.field{display:flex;flex-direction:column;gap:10px}
.field.full{grid-column:1/-1}
.field label{font-size:.8rem;color:var(--navy);font-weight:500;letter-spacing:.05em}
.field label i{color:#B4423B;font-style:normal}
.field input,.field select,.field textarea{
  font-family:inherit;font-size:.95rem;font-weight:300;color:var(--ink);
  padding:13px 2px;border:none;border-bottom:1px solid var(--hair);
  background:transparent;transition:border-color .4s;width:100%}
.field textarea{resize:vertical;min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-bottom-color:var(--gold)}
.field ::placeholder{color:#6E7482}   /* 4.68:1 on white — AA; #B2B7C2 was 2.01:1 */
.hint{font-size:.78rem;color:var(--muted)}
.form-ok{border:1px solid #C6DCC9;background:#F3F9F4;color:#265F3B;padding:18px 22px;
         margin-bottom:28px;display:flex;gap:12px;align-items:center;font-size:.92rem}
.form-ok .ico{stroke:#3C8055}
.form-err{border:1px solid #E6C3C0;background:#FDF5F4;color:#8C332C;padding:18px 22px;
          margin-bottom:28px;display:flex;gap:12px;align-items:center;font-size:.92rem}
.form-err .ico{stroke:#B4423B;flex:none}

/* per-field validation */
.field .err{font-size:.78rem;color:#B4423B}
.field [aria-invalid="true"]{border-bottom-color:#B4423B}
.field.full .err{grid-column:1/-1}

/* honeypot — reachable by bots, never by people or screen readers */
.hp{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;
    clip-path:inset(50%);white-space:nowrap;border:0}

/* visible keyboard focus — the form fields suppress the default outline */
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{
  outline:2px solid var(--gold-deep);outline-offset:2px}
.btn:focus-visible{outline-offset:2px}

.infolist{list-style:none}
.infolist li{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--hair-soft)}
.infolist li:last-child{border-bottom:none}
.infolist .ico{stroke:var(--gold-deep);margin-top:4px}
.infolist strong{display:block;font-family:var(--f-head);color:var(--navy);
                 font-size:.93rem;font-weight:500;margin-bottom:2px}
.infolist span{font-size:.91rem;color:var(--muted)}
.map{border:1px solid var(--hair);aspect-ratio:4/3;display:grid;place-items:center;
     text-align:center;padding:34px;background:var(--paper-2)}
.map .ico-lg{stroke:var(--gold-deep);margin:0 auto 14px}

/* ────────────────────────────────────────────────── course detail page ── */
.detail{display:grid;grid-template-columns:1fr 340px;gap:72px;align-items:start}
.aside{position:sticky;top:120px;display:flex;flex-direction:column;gap:26px}
.spec{border:1px solid var(--hair);background:#fff}
.spec-top{padding:28px 30px;border-bottom:1px solid var(--hair);background:var(--paper-2)}
.spec-top b{display:block;font-family:var(--f-head);font-size:1.24rem;color:var(--navy);
            font-weight:500}
.spec-top small{color:var(--muted);font-size:.83rem}
.spec ul{list-style:none;padding:6px 30px}
.spec li{display:flex;align-items:center;gap:12px;padding:14px 0;
         border-bottom:1px solid var(--hair-soft);font-size:.89rem;color:var(--muted)}
.spec li:last-child{border-bottom:none}
.spec .ico{width:16px;height:16px;stroke:var(--gold-deep)}
.spec b{margin-inline-start:auto;color:var(--navy);font-weight:500}
.spec-act{padding:22px 30px 30px;display:flex;flex-direction:column;gap:12px}
.spec-act .btn{justify-content:center}

.prose h2{font-size:1.22rem;font-weight:500;margin:48px 0 16px}
.prose p{margin-bottom:16px}
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.checks li{display:flex;gap:13px;align-items:flex-start;font-size:.94rem;color:var(--body)}
.checks .ico{width:17px;height:17px;stroke:var(--gold-deep);margin-top:7px}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{border:1px solid var(--hair);padding:7px 17px;font-size:.84rem;color:var(--body)}

.plan{list-style:none;counter-reset:d;border-top:1px solid var(--hair)}
.plan > li{counter-increment:d;border-bottom:1px solid var(--hair)}
.plan summary{list-style:none;cursor:pointer;padding:24px 4px;display:flex;
              align-items:center;gap:20px;font-family:var(--f-head);font-weight:500;
              color:var(--navy);font-size:1.02rem;transition:padding .4s var(--ease)}
.plan summary:hover{padding-inline:14px}
.plan summary::-webkit-details-marker{display:none}
.plan summary::before{content:counter(d,decimal-leading-zero);font-family:var(--f-head);
  font-size:.78rem;color:var(--gold-deep);letter-spacing:.12em;flex:none;min-width:26px}
.plan .chev{margin-inline-start:auto;transition:transform .4s var(--ease);
            stroke:var(--muted);width:17px;height:17px}
.plan details[open] .chev{transform:rotate(180deg)}
.plan .inner{padding:0 4px 26px 46px}
body[dir="ltr"] .plan .inner{padding:0 46px 26px 4px}
.plan .inner ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.plan .inner li{display:flex;gap:12px;align-items:flex-start;color:var(--muted);font-size:.92rem}
.plan .inner .ico{width:15px;height:15px;stroke:var(--gold-deep);margin-top:6px}

/* page hero */
.phead{border-bottom:1px solid var(--hair);padding:70px 0 64px}
.crumb{display:flex;gap:11px;align-items:center;font-size:.79rem;color:var(--muted);
       margin-bottom:22px;flex-wrap:wrap}
.crumb a:hover{color:var(--gold-deep)}
.crumb .sep{color:var(--gold-deep)}
.phead h1{font-size:clamp(1.7rem,3.2vw,2.6rem);font-weight:300;margin-bottom:16px}
.phead p{color:var(--muted);max-width:58ch}

/* misc */
.ph{color:#A99C7E;font-style:italic}
.note{border:1px solid var(--gold);background:#FFFDF6;padding:22px 26px;
      font-size:.88rem;color:#6B5A1E;margin-top:52px}

/* footer */
footer{background:var(--navy);color:#8B99BA;font-size:.9rem;font-weight:300;padding-top:80px}
.fgrid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.2fr;gap:48px;padding-bottom:56px}
footer h2{color:#fff;font-family:var(--f-head);font-size:.94rem;font-weight:500;
          margin-bottom:22px;letter-spacing:.03em}
footer ul{list-style:none;display:flex;flex-direction:column;gap:13px}
footer a{transition:color .35s}
footer a:hover{color:var(--gold)}
.fbrand{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.fbrand img{height:60px;width:auto}
.fbrand .div{width:1px;height:38px;background:rgba(212,176,66,.3)}
.fbrand b{color:#fff;font-family:var(--f-head);font-size:1.14rem;font-weight:600}
.social{display:flex;gap:12px;margin-top:24px}
.social a{width:38px;height:38px;border:1px solid rgba(212,176,66,.28);
          display:grid;place-items:center;color:var(--gold);transition:.4s var(--ease)}
.social a:hover{background:var(--gold);color:var(--navy);transform:translateY(-3px)}
.copy{border-top:1px solid rgba(255,255,255,.08);padding:24px 0;text-align:center;font-size:.82rem}

/* reveal */
.rv{opacity:0;transform:translateY(24px);
    transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.2s}
.rv-d3{transition-delay:.3s}.rv-d4{transition-delay:.4s}
.rv-x{transform:translateX(30px)}
body[dir="ltr"] .rv-x{transform:translateX(-30px)}
.rv-x.in{transform:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;
    animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .rv{opacity:1;transform:none}
  .hero-img::before{display:none}
}

/* responsive */
@media(max-width:1100px){
  .wrap,.narrow{padding-inline:28px}
  /* the nav collapses into a panel under the sticky header, opened by .burger */
  .nav{display:none;position:absolute;top:100%;inset-inline:0;flex-direction:column;
       align-items:stretch;gap:0;margin-inline-start:0;padding:6px 28px 18px;
       background:var(--paper);border-bottom:1px solid var(--hair)}
  .nav.open{display:flex}
  .nav a{padding:15px 0;border-bottom:1px solid var(--hair-soft);font-size:.98rem}
  .nav a:last-child{border-bottom:none}
  .nav a::after{display:none}
  .burger{display:block}
  /* the brand and the burger already fill a phone header; the quote button was
     being squeezed to 64px and clipping its own label. The hero CTA sits one
     screen below, and the menu carries navigation. */
  .site-head .wrap{gap:16px}
  .site-head > .wrap > .btn{display:none}
  .hero-grid{grid-template-columns:1fr}
  .hero-txt{padding:72px 0;max-width:none}
  .hero-img{min-height:340px;order:-1}
  .split{grid-template-columns:1fr}
  .split-txt{padding:64px 28px}
  .split-img{min-height:360px}
  .dir{grid-template-columns:1fr;gap:44px}
  .dir-photo{max-width:340px}
  .detail{grid-template-columns:1fr;gap:48px}
  .aside{position:static}
  .band-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .row{grid-template-columns:110px 1fr 40px;gap:20px}
  .row .r-meta,.row .r-num{display:none}
  section{padding:84px 0}
}
@media(max-width:700px){
  body{font-size:16px}
  .wrap,.narrow{padding-inline:22px}
  .cols,.steps,.form,.checks{grid-template-columns:1fr}
  .cols > *,.steps > div{border-inline-start:none;border-top:1px solid var(--hair)}
  .cols > *:first-child,.steps > div:first-child{border-top:none}
  .rail .wrap{grid-template-columns:1fr 1fr}
  .rail div:nth-child(3){border-inline-start:none}
  .rail div:nth-child(n+3){border-top:1px solid var(--hair)}
  .fgrid{grid-template-columns:1fr;gap:36px}
  .panel{padding:30px 24px}
  section{padding:62px 0}
  .topbar-info span:nth-child(n+3){display:none}
  .row{padding:22px 4px;grid-template-columns:84px 1fr;gap:16px}
  .row:hover{padding-inline:10px}
  .row .r-go{display:none}
}
