@import url("fonts.css");

/* ==========================================================================
   PRAVAHA INTERNATIONAL — core design system
   Two colours only, plus their own tints:
     Kesar Crimson  #A61E2D
     Zafran Ivory   #FAF6EF
   ========================================================================== */
:root{
  --crimson:#A61E2D;
  --crimson-deep:#6E1220;
  --crimson-dark:#3A0A12;
  --crimson-ink:#1E0709;
  --crimson-soft:#F2DFE1;
  --crimson-mist:#FBEFF0;

  --ivory:#FAF6EF;
  --ivory-warm:#F3ECE0;
  --ivory-deep:#E4D9C7;
  --ivory-shade:#CFC2AC;
  --ivory-dim:#9C8F7C;

  --shell:88rem;
  --ease:cubic-bezier(.22,.75,.28,1);
  --slow:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--ivory);color:var(--crimson-ink);
  font-family:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  position:relative;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-family:"Fraunces",Georgia,serif;font-weight:500;line-height:1.06;letter-spacing:-.02em}
p{margin:0}
::selection{background:var(--crimson);color:var(--ivory)}
:focus-visible{outline:2px solid var(--crimson);outline-offset:3px}

/* ---------- 47. paper grain ---------- */
body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.032;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}

.shell{width:min(100% - 2.5rem,var(--shell));margin-inline:auto}
.shell-narrow{width:min(100% - 2.5rem,58rem);margin-inline:auto}
.eyebrow{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  color:var(--crimson);display:flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:1.6rem;height:1px;background:currentColor;opacity:.6}
.eyebrow.on-dark{color:var(--ivory-shade)}
.lede{font-size:1.06rem;color:color-mix(in srgb,var(--crimson-ink) 66%,transparent);max-width:46ch}
.lede.on-dark{color:color-mix(in srgb,var(--ivory) 62%,transparent)}
.tnum{font-variant-numeric:tabular-nums}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--slow),transform .8s var(--slow)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.09s}
.rv[data-d="2"]{transition-delay:.18s}
.rv[data-d="3"]{transition-delay:.27s}
.rv[data-d="4"]{transition-delay:.36s}
.rv[data-d="5"]{transition-delay:.45s}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important}
  .cursor-dot{display:none !important}
}

/* ---------- buttons ---------- */
.btn{
  --bg:var(--crimson);--fg:var(--ivory);--bd:var(--crimson);
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.92rem 1.7rem;border:1px solid var(--bd);background:var(--bg);color:var(--fg);
  border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  cursor:pointer;position:relative;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.btn span{position:relative;z-index:1}
.btn::after{content:"";position:absolute;inset:0;background:var(--crimson-deep);
  transform:translateY(101%);transition:transform .45s var(--slow)}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px -12px rgba(110,18,32,.55)}
.btn:hover::after{transform:translateY(0)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.btn.ghost{--bg:transparent;--fg:var(--crimson-ink);--bd:color-mix(in srgb,var(--crimson-ink) 22%,transparent)}
.btn.ghost:hover{--fg:var(--ivory)}
.btn.ghost::after{background:var(--crimson-ink)}
.btn.on-dark{--bg:transparent;--fg:var(--ivory);--bd:color-mix(in srgb,var(--ivory) 32%,transparent)}
.btn.on-dark::after{background:var(--ivory)}
.btn.on-dark:hover{--fg:var(--crimson-ink)}
.btn.sm{padding:.62rem 1.15rem;font-size:.68rem}

/* ---------- 44. custom cursor ---------- */
.cursor-dot{
  position:fixed;top:0;left:0;width:34px;height:34px;border-radius:50%;z-index:9998;
  border:1px solid var(--crimson);pointer-events:none;opacity:0;
  transform:translate(-50%,-50%) scale(.6);
  transition:opacity .3s,transform .25s var(--ease),background .25s;
  will-change:transform;
}
.cursor-dot.on{opacity:.7}
.cursor-dot.grab{transform:translate(-50%,-50%) scale(1.35);background:color-mix(in srgb,var(--crimson) 16%,transparent)}
@media (hover:none){.cursor-dot{display:none}}

/* ==========================================================================
   TOP STRIP + NAV  (shared by every page)
   ========================================================================== */
.strip{background:var(--crimson-ink);color:color-mix(in srgb,var(--ivory) 74%,transparent);
  font-size:.72rem;letter-spacing:.03em}
.strip .shell{display:flex;align-items:center;gap:1.6rem;height:2.6rem;justify-content:space-between}
.strip-l,.strip-r{display:flex;align-items:center;gap:1.5rem;min-width:0}
.strip a:hover{color:var(--ivory)}
.strip .dot{width:5px;height:5px;border-radius:50%;background:var(--crimson);display:inline-block;
  margin-right:.5rem;vertical-align:middle;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(166,30,45,.55)}50%{opacity:.75;box-shadow:0 0 0 5px rgba(166,30,45,0)}}
.strip-hide{display:none}
@media(min-width:900px){.strip-hide{display:inline-flex;align-items:center}}

.nav{position:sticky;top:0;z-index:70;
  background:color-mix(in srgb,var(--ivory) 88%,transparent);
  backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);
  border-bottom:1px solid color-mix(in srgb,var(--crimson-ink) 8%,transparent)}
.nav .shell{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:5.2rem;
  transition:height .4s var(--ease)}
.nav.tight .shell{height:4.2rem}
.brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.brand-mark{width:2.5rem;height:2.5rem;border-radius:.7rem;background:var(--crimson);color:var(--ivory);
  display:grid;place-items:center;font-family:"Fraunces",serif;font-size:1.3rem;font-weight:600;
  box-shadow:0 6px 18px -8px rgba(166,30,45,.7);flex-shrink:0}
.brand-txt b{display:block;font-family:"Fraunces",serif;font-size:1.16rem;font-weight:600;letter-spacing:-.01em}
.brand-txt i{display:block;font-style:normal;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ivory-dim);margin-top:.15rem}
.nav-links{display:none;align-items:center;gap:1.7rem;font-size:.83rem;font-weight:500}
@media(min-width:1140px){.nav-links{display:flex}}
.nav-links>a,.nav-drop>button{position:relative;padding:.35rem 0;background:none;border:0;cursor:pointer;
  color:color-mix(in srgb,var(--crimson-ink) 78%,transparent);font-weight:500}
.nav-links>a::after,.nav-drop>button::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--crimson);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--slow)}
.nav-links>a:hover,.nav-drop>button:hover{color:var(--crimson)}
.nav-links>a:hover::after,.nav-drop>button:hover::after{transform:scaleX(1);transform-origin:left}

.nav-drop{position:relative}
.nav-drop-menu{
  position:absolute;top:calc(100% + 1.1rem);left:50%;transform:translateX(-50%) translateY(8px);
  background:var(--ivory);border:1px solid var(--ivory-deep);border-radius:.8rem;padding:.6rem;
  min-width:16rem;box-shadow:0 24px 50px -26px rgba(30,7,9,.42);
  opacity:0;pointer-events:none;transition:opacity .28s var(--ease),transform .28s var(--ease);z-index:5;
}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav-drop-menu a{display:block;padding:.55rem .8rem;border-radius:.5rem;font-size:.84rem;
  transition:background .2s,color .2s}
.nav-drop-menu a:hover{background:var(--crimson-mist);color:var(--crimson-deep)}
.nav-drop-menu a small{display:block;font-size:.68rem;color:var(--ivory-dim)}

.nav-cta{display:flex;align-items:center;gap:.7rem;flex-shrink:0}
.nav-cta .btn{display:none;padding:.72rem 1.25rem;font-size:.7rem}
@media(min-width:620px){.nav-cta .btn{display:inline-flex}}
.burger{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:.6rem;
  border:1px solid color-mix(in srgb,var(--crimson-ink) 15%,transparent);background:none;cursor:pointer}
@media(min-width:1140px){.burger{display:none}}
.burger i{display:block;width:16px;height:1.5px;background:var(--crimson-ink);position:relative;transition:.3s}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:16px;height:1.5px;
  background:var(--crimson-ink);transition:.3s}
.burger i::before{top:-5px}.burger i::after{top:5px}
.burger.x i{background:transparent}
.burger.x i::before{top:0;transform:rotate(45deg)}
.burger.x i::after{top:0;transform:rotate(-45deg)}

.drawer{position:fixed;inset:0;z-index:69;background:var(--crimson-ink);color:var(--ivory);
  overflow-y:auto;padding:5.5rem 1.5rem 3rem;opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
.drawer.open{opacity:1;pointer-events:auto}
.drawer-inner{max-width:34rem;margin-inline:auto;display:grid;gap:.15rem}
.drawer a{font-family:"Fraunces",serif;font-size:clamp(1.25rem,5vw,1.8rem);padding:.3rem 0;
  transition:color .25s}
.drawer a:hover{color:var(--crimson-soft)}
.drawer h5{font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory-dim);
  margin:1.4rem 0 .4rem;font-family:"Inter Tight",sans-serif;font-weight:600}
.drawer-foot{margin-top:1.8rem;padding-top:1.2rem;font-size:.8rem;color:var(--ivory-dim);line-height:1.9;
  border-top:1px solid color-mix(in srgb,var(--ivory) 12%,transparent)}

/* ==========================================================================
   SECTION FRAME
   ========================================================================== */
.sec{padding:5.5rem 0;position:relative}
@media(min-width:900px){.sec{padding:7.5rem 0}}
.sec-sm{padding:3.5rem 0}
.sec-dark{background:var(--crimson-ink);color:var(--ivory)}
.sec-warm{background:var(--ivory-warm)}
.sec-head{display:grid;gap:1.1rem;margin-bottom:3rem;max-width:56rem}
.sec-head h2{font-size:clamp(1.9rem,4vw,3.1rem);font-weight:400}
.sec-head h2 em{font-style:italic;color:var(--crimson)}
.sec-dark .sec-head h2 em{color:var(--crimson-soft)}
.sec-no{font-family:"Fraunces",serif;font-size:.8rem;letter-spacing:.2em;color:var(--crimson);font-weight:600}
.sec-dark .sec-no{color:var(--crimson-soft)}

/* ---------- 46. scroll progress + section rail ---------- */
.scroll-bar{position:fixed;top:0;left:0;height:2px;background:var(--crimson);z-index:100;width:0;
  transition:width .12s linear}
.rail{display:none}
@media(min-width:1280px){
  .rail{display:grid;gap:.85rem;position:fixed;left:1.4rem;top:50%;transform:translateY(-50%);z-index:60}
  .rail a{display:flex;align-items:center;gap:.6rem;font-size:.6rem;letter-spacing:.12em;font-weight:600;
    color:var(--ivory-dim);text-transform:uppercase;transition:color .3s}
  .rail i{display:block;width:14px;height:1px;background:currentColor;transition:width .3s var(--ease),background .3s}
  .rail a span{opacity:0;transform:translateX(-4px);transition:opacity .3s,transform .3s;white-space:nowrap}
  .rail a:hover span,.rail a.on span{opacity:1;transform:none}
  .rail a:hover,.rail a.on{color:var(--crimson)}
  .rail a.on i{width:26px;background:var(--crimson)}
}

/* ==========================================================================
   CARDS / GRIDS (shared)
   ========================================================================== */
.g2{display:grid;gap:1.25rem}
@media(min-width:760px){.g2{grid-template-columns:1fr 1fr}}
.g3{display:grid;gap:1.25rem}
@media(min-width:720px){.g3{grid-template-columns:repeat(3,1fr)}}
.g4{display:grid;gap:1.2rem}
@media(min-width:700px){.g4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.g4{grid-template-columns:repeat(4,1fr)}}

.card{border:1px solid var(--ivory-deep);border-radius:1rem;background:var(--ivory);overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
  display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);border-color:var(--crimson);
  box-shadow:0 22px 44px -26px rgba(110,18,32,.42)}
.card-pic{aspect-ratio:4/3;overflow:hidden;background:var(--ivory-deep)}
.card-pic img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--slow)}
.card:hover .card-pic img{transform:scale(1.07)}
.card-body{padding:1.2rem 1.3rem 1.4rem;display:grid;gap:.45rem;flex:1;align-content:start}
.card-body b{font-family:"Fraunces",serif;font-size:1.05rem;font-weight:600}
.card-body p{font-size:.83rem;color:color-mix(in srgb,var(--crimson-ink) 62%,transparent)}
.card-body .tag{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--crimson);font-weight:700}
.card-body .more{margin-top:auto;padding-top:.6rem;font-size:.74rem;font-weight:600;color:var(--crimson)}
.card-body .more::after{content:" →";transition:.3s}

.chip{padding:.55rem 1rem;border-radius:999px;border:1px solid var(--ivory-deep);background:var(--ivory);
  font-size:.78rem;font-weight:500;cursor:pointer;transition:.28s var(--ease)}
.chip:hover{border-color:var(--crimson)}
.chip[aria-pressed="true"],.chip.on{background:var(--crimson);border-color:var(--crimson);color:var(--ivory);font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}

.pill{font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  padding:.42rem .8rem;border:1px solid color-mix(in srgb,var(--crimson) 26%,transparent);
  border-radius:999px;color:var(--crimson-deep);background:var(--crimson-mist);display:inline-block}

.note{font-size:.74rem;line-height:1.6;color:var(--ivory-dim);border-left:2px solid var(--crimson);
  padding-left:.9rem}
.sec-dark .note{color:color-mix(in srgb,var(--ivory) 55%,transparent)}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:.86rem}
.tbl th,.tbl td{text-align:left;padding:.65rem .6rem;border-bottom:1px solid var(--ivory-deep);vertical-align:top}
.tbl th{font-weight:500;color:var(--ivory-dim);font-size:.78rem}
.tbl td{font-weight:600}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* forms */
.fld{display:grid;gap:.45rem}
.fld label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ivory-dim)}
.fld select,.fld input,.fld textarea{width:100%;padding:.85rem 1rem;border-radius:.65rem;background:var(--ivory);
  border:1px solid var(--ivory-deep);font-size:.92rem;transition:border-color .3s,box-shadow .3s}
.fld select:focus,.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--crimson);
  box-shadow:0 0 0 3px var(--crimson-mist)}
.fld-2{display:grid;gap:1.3rem}
@media(min-width:560px){.fld-2{grid-template-columns:1fr 1fr}}
.form-msg{font-size:.85rem;font-weight:600;padding:.85rem 1rem;border-radius:.6rem;display:none}
.form-msg.ok{display:block;background:var(--crimson-mist);color:var(--crimson-deep);border:1px solid var(--crimson-soft)}
.form-msg.err{display:block;background:var(--ivory-warm);color:var(--crimson-deep);border:1px solid var(--ivory-shade)}

/* ==========================================================================
   MODAL (shared)
   ========================================================================== */
.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1.25rem;
  background:rgba(30,7,9,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;transition:opacity .35s var(--ease)}
.modal.open{opacity:1;pointer-events:auto}
.modal-box{background:var(--ivory);border-radius:1.1rem;padding:2rem;width:min(100%,38rem);
  max-height:88vh;overflow:auto;transform:translateY(14px) scale(.98);transition:transform .4s var(--slow)}
.modal.open .modal-box{transform:none}
.modal-box h3{font-size:1.45rem;margin-bottom:.4rem}
.modal-box .mtag{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--crimson);
  font-weight:700;margin-bottom:.8rem}
.modal-box p{font-size:.9rem;color:color-mix(in srgb,var(--crimson-ink) 68%,transparent);margin-bottom:1rem}
.modal-list{display:grid;gap:.5rem;margin-bottom:1.4rem}
.modal-list div{display:flex;justify-content:space-between;gap:1rem;font-size:.84rem;padding:.5rem 0;
  border-bottom:1px solid var(--ivory-deep)}
.modal-list span{color:var(--ivory-dim)}
.modal-list b{font-weight:600;text-align:right}
.modal-x{position:absolute;top:1.1rem;right:1.1rem;width:2.4rem;height:2.4rem;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--ivory) 26%,transparent);background:rgba(250,246,239,.1);
  color:var(--ivory);cursor:pointer;font-size:1.1rem;line-height:1;display:grid;place-items:center}
.modal-x:hover{background:var(--ivory);color:var(--crimson-ink)}

/* ==========================================================================
   FOOTER (shared)
   ========================================================================== */
.foot{background:var(--crimson-ink);color:color-mix(in srgb,var(--ivory) 62%,transparent);padding:4rem 0 0}
.foot-grid{display:grid;gap:2.4rem;padding-bottom:3rem}
@media(min-width:860px){.foot-grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:3rem}}
.foot h4{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory);margin-bottom:1rem;
  font-family:"Inter Tight",sans-serif;font-weight:600}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem;font-size:.86rem}
.foot a:hover{color:var(--ivory)}
.foot-brand .brand-mark{margin-bottom:1rem}
.foot-brand p{font-size:.88rem;max-width:34ch;margin-bottom:1.2rem}
.foot-bar{border-top:1px solid color-mix(in srgb,var(--ivory) 10%,transparent);padding:1.4rem 0;
  display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;justify-content:space-between;font-size:.76rem}
.lang-row{display:flex;gap:.8rem;align-items:center}
.lang-row a{padding:.2rem .5rem;border-radius:.3rem;border:1px solid transparent}
.lang-row a[aria-current="true"]{border-color:color-mix(in srgb,var(--ivory) 26%,transparent);color:var(--ivory)}

.wa-float{position:fixed;right:1.1rem;bottom:1.1rem;z-index:90;width:3.4rem;height:3.4rem;border-radius:50%;
  background:var(--crimson);color:var(--ivory);display:grid;place-items:center;
  box-shadow:0 14px 34px -12px rgba(166,30,45,.75);transition:transform .35s var(--ease)}
.wa-float:hover{transform:scale(1.08) translateY(-2px)}
.wa-float svg{width:1.6rem;height:1.6rem;fill:currentColor}

/* 29. whatsapp quick replies */
.wa-panel{position:fixed;right:1.1rem;bottom:5.4rem;z-index:91;width:min(20rem,calc(100vw - 2.2rem));
  background:var(--ivory);border:1px solid var(--ivory-deep);border-radius:1rem;padding:1.1rem;
  box-shadow:0 26px 60px -28px rgba(30,7,9,.6);opacity:0;pointer-events:none;transform:translateY(10px);
  transition:opacity .3s var(--ease),transform .3s var(--ease)}
.wa-panel.open{opacity:1;pointer-events:auto;transform:none}
.wa-panel b{display:block;font-family:"Fraunces",serif;font-size:1rem;margin-bottom:.2rem}
.wa-panel p{font-size:.76rem;color:var(--ivory-dim);margin-bottom:.8rem}
.wa-panel a{display:block;padding:.6rem .8rem;border-radius:.6rem;border:1px solid var(--ivory-deep);
  font-size:.8rem;margin-bottom:.4rem;transition:.25s}
.wa-panel a:hover{border-color:var(--crimson);background:var(--crimson-mist);color:var(--crimson-deep)}

/* visually hidden until focused. NOT left:-999px — in an RTL document that
   negative offset counts toward scrollWidth and creates a 1000px overflow. */
.skip{
  position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;
  background:var(--crimson);color:var(--ivory);padding:0;z-index:200;
}
.skip:focus{
  width:auto;height:auto;overflow:visible;clip-path:none;
  inset-inline-start:.5rem;top:.5rem;padding:.7rem 1.1rem;
}

/* ==========================================================================
   PAGE HEADER (inner pages)
   ========================================================================== */
.phead{position:relative;padding:4rem 0 3.5rem;background:var(--ivory-warm);overflow:hidden;
  border-bottom:1px solid var(--ivory-deep)}
.phead.dark{background:var(--crimson-ink);color:var(--ivory);border-bottom:none}
.phead-grid{display:grid;gap:2rem;align-items:center}
@media(min-width:960px){.phead-grid{grid-template-columns:1.15fr .85fr;gap:3rem}}
.phead h1{font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:400;letter-spacing:-.03em;margin:.9rem 0 1rem}
.phead h1 em{font-style:italic;color:var(--crimson)}
.phead.dark h1 em{color:var(--crimson-soft)}
.phead-pic{border-radius:1.1rem;overflow:hidden;aspect-ratio:4/3}
.phead-pic img{width:100%;height:100%;object-fit:cover}
.crumb{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.72rem;color:var(--ivory-dim)}
.crumb a:hover{color:var(--crimson)}
.crumb span::after{content:"/";margin-left:.45rem;opacity:.5}

/* prose */
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.5rem,3vw,2.1rem);margin:2.6rem 0 .9rem}
.prose h3{font-size:1.2rem;margin:2rem 0 .6rem}
.prose p{margin-bottom:1rem;color:color-mix(in srgb,var(--crimson-ink) 74%,transparent)}
.prose ul,.prose ol{margin:0 0 1.2rem;padding-left:1.1rem;color:color-mix(in srgb,var(--crimson-ink) 74%,transparent)}
.prose li{margin-bottom:.45rem}
.prose a{color:var(--crimson);text-decoration:underline;text-underline-offset:3px}
.prose strong{color:var(--crimson-ink)}

/* checklist */
.ticks{display:grid;gap:.75rem;padding:0;margin:0;list-style:none}
/* NOT flex — inline <b> inside an li would become its own flex column and
   break the text flow. Absolute-positioned tick keeps the copy as one run. */
.ticks li{position:relative;padding-left:1.95rem;font-size:.92rem;line-height:1.55}
.ticks li::before{content:"";position:absolute;left:0;top:.26rem;
  width:1.15rem;height:1.15rem;border-radius:50%;
  background:var(--crimson);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/62% 62% no-repeat,
          linear-gradient(#000,#000);
  -webkit-mask-composite:xor;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/62% 62% no-repeat,
       linear-gradient(#000,#000);
  mask-composite:exclude;
}
.sec-dark .ticks li::before{background:var(--crimson-soft)}

/* ==========================================================================
   45. VIEW TRANSITIONS
   ========================================================================== */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vtOut .28s var(--ease) both}
  ::view-transition-new(root){animation:vtIn .34s var(--ease) both}
}
@keyframes vtOut{to{opacity:0}}
@keyframes vtIn{from{opacity:0;transform:translateY(8px)}}

/* ==========================================================================
   48. PRINT — spec sheets print clean straight from the browser
   ========================================================================== */
@media print{
  @page{margin:14mm}
  body{background:#fff;color:#000;font-size:11pt;overflow:visible}
  body::after,.cursor-dot,.scroll-bar,.rail,.wa-float,.wa-panel,.burger,.drawer,
  .nav-cta,.strip,.modal,.skip,.no-print,video,.quote-acts,.hero-media{display:none !important}
  .nav{position:static;border-bottom:2px solid #000;background:#fff}
  .nav .shell{height:auto;padding:8mm 0}
  .sec,.sec-dark,.sec-warm{background:#fff !important;color:#000 !important;padding:6mm 0;
    page-break-inside:avoid}
  .sec-dark *,.sec-dark h2,.sec-dark h3{color:#000 !important}
  .rv{opacity:1 !important;transform:none !important}
  .card,.modal-box{border:1px solid #999;box-shadow:none;page-break-inside:avoid}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#555}
  .tbl th,.tbl td{border-bottom:1px solid #bbb}
  .print-only{display:block !important}
  h1,h2,h3{page-break-after:avoid}
}
.print-only{display:none}
