/* ============================================================
   Cutbank Granite Works — design mockup
   Register: Sleek, dark ground.
   Type ladder, written before markup, 7 steps:
     s1 hero      clamp(36px, 6.0vw, 66px)  Archivo 700 uppercase -0.03em
     s2 depth fig clamp(30px, 4.4vw, 52px)  Archivo 700
     s3 heading   27px  Public Sans 300
     s4 lead-in   19px  Public Sans 600
     s5 body      17px  Public Sans 300
     s6 spec      14px  Public Sans 300
     s7 label   11.5px  Public Sans 600 uppercase 0.2em
   H1 / body = 66/17 = 3.88x
   Colours, five:
     ground  #0C0D0E   panel #141618   ink #FFFFFF
     body    rgba(255,255,255,.63)     accent #E2703A
   Measured on #0C0D0E: accent 6.13:1 as text AND 6.13:1 as a fill
   carrying ground-coloured ink. White on the accent is 2.76:1 and is
   never used. Body grey is 7.91:1 on ground, 7.43:1 on panel.
   Radius: 0 everywhere.
   ============================================================ */

@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;
  src:url(font/archivo-700-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:300;font-display:swap;
  src:url(font/publicsans-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url(font/publicsans-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --ground:#0C0D0E;
  --panel:#141618;
  --ink:#ffffff;
  --body:rgba(255,255,255,.63);
  --hot:#E2703A;
  --hair:rgba(226,112,58,.16);
  --hair2:rgba(255,255,255,.10);

  --s1:clamp(36px,6.0vw,66px);
  --s2:clamp(30px,4.4vw,52px);
  --s3:27px;
  --s4:19px;
  --s5:17px;
  --s6:14px;
  --s7:11.5px;

  --wrap:1180px;
  --gut:clamp(20px,5vw,64px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ground);color:var(--body);
  font-family:'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-weight:300;font-size:var(--s5);line-height:1.68;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;width:100%;height:auto}
a{color:var(--hot)}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--hot);outline-offset:3px;
}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}

.skip{position:absolute;left:-9999px;top:0;z-index:80;background:var(--hot);color:var(--ground);
  padding:12px 20px;font-weight:600;text-decoration:none}
.skip:focus{left:0}

/* ---------- honesty banner ---------- */
.mockup{background:var(--hot);color:var(--ground);position:relative;z-index:60}
.mockup p{margin:0;max-width:var(--wrap);margin-inline:auto;padding:11px var(--gut);
  font-size:var(--s6);line-height:1.5;font-weight:300}
.mockup strong{font-weight:600}

/* ---------- masthead ---------- */
.masthead{position:relative;z-index:50;border-bottom:1px solid var(--hair)}
.masthead__in{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;
  justify-content:space-between;padding-block:20px}
.mark__name{display:block;font-family:'Archivo',sans-serif;font-weight:700;color:var(--ink);
  font-size:var(--s4);letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.mark__sub{display:block;font-size:var(--s6);color:var(--body);margin-top:3px}
.mark__tel{font-family:'Archivo',sans-serif;font-size:var(--s4);color:var(--hot);
  text-decoration:none;letter-spacing:.01em;padding:10px 0;min-height:44px;display:inline-flex;align-items:center}
.mark__tel:hover{text-decoration:underline}

/* ---------- shared type ---------- */
.kicker{display:flex;align-items:center;gap:12px;margin:0 0 22px;
  font-size:var(--s7);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--hot)}
.kicker__rule{display:block;width:34px;height:2px;background:var(--hot);flex:none}
h1{margin:0;font-family:'Archivo',sans-serif;font-weight:700;color:var(--ink);
  font-size:var(--s1);line-height:1.02;letter-spacing:-.03em;text-transform:uppercase}
.hot{color:var(--hot)}
h2{margin:0 0 22px;font-size:var(--s3);font-weight:300;color:var(--ink);
  line-height:1.28;letter-spacing:-.01em;max-width:22ch}
h3{margin:0 0 10px;font-size:var(--s4);font-weight:600;color:var(--ink);line-height:1.35}
p{margin:0 0 18px;max-width:66ch}
p:last-child{margin-bottom:0}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;
  background:var(--hot);color:var(--ground);padding:14px 26px;text-decoration:none;
  font-weight:600;font-size:var(--s5);border:0;letter-spacing:.01em;
  transition:background .25s ease}
.btn:hover{background:#f08349}
.btn:active{background:#c85c2c}
.ulink{color:var(--hot);text-decoration:underline;text-underline-offset:4px;
  font-size:var(--s5);display:inline-flex;align-items:center;min-height:44px}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;
  min-height:min(88vh,760px);display:flex;align-items:flex-end;padding-block:clamp(80px,14vh,150px) clamp(48px,8vh,86px)}
.hero__media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:72% 50%}
.hero__scrim{position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(to right,rgba(9,7,6,.96) 0%,rgba(9,7,6,.90) 34%,rgba(9,7,6,.48) 62%,rgba(9,7,6,.20) 100%),
    linear-gradient(to bottom,rgba(9,7,6,.90) 0%,rgba(9,7,6,.42) 34%,rgba(9,7,6,.55) 78%,var(--ground) 100%);}
.hero__in{position:relative;width:100%}
.hero__lede{margin-top:26px;font-size:var(--s4);font-weight:300;color:var(--ink);max-width:44ch;line-height:1.55}
.hero__acts{display:flex;flex-wrap:wrap;gap:18px 30px;align-items:center;margin-top:34px}

/* ---------- generic band ---------- */
.band{padding-block:clamp(64px,9vw,116px);border-top:1px solid var(--hair)}
.band__lede{font-size:var(--s4);color:var(--ink);max-width:56ch;margin-top:-4px}
.band--panel{background:var(--panel)}

.cols{display:grid;grid-template-columns:minmax(0,1fr);gap:34px}
@media(min-width:900px){.cols{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:56px}}
.cols__a p{max-width:52ch}

.rules{margin:0}
.rules__row{border-top:1px dashed rgba(255,255,255,.22);padding:20px 0}
.rules__row:last-child{border-bottom:1px dashed rgba(255,255,255,.22)}
.rules dt{font-size:var(--s7);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--hot);margin-bottom:9px}
.rules dd{margin:0;max-width:62ch}

.quote{margin:44px 0 0;padding:26px 0 0;border-top:2px solid var(--hot);max-width:74ch}
.quote p{font-size:var(--s4);color:var(--ink);line-height:1.55}
.quote footer{font-size:var(--s6);margin-top:12px;color:var(--body)}
.quote footer a{color:var(--hot)}

/* ---------- the drawing ---------- */
.band--section{padding-bottom:clamp(48px,6vw,72px)}
.drawing{margin:clamp(36px,5vw,58px) 0 0}
.drawing__scroll{overflow-x:auto;padding-inline:var(--gut);padding-bottom:8px}
.drawing__svg{display:block;width:100%;min-width:1000px;max-width:1180px;margin-inline:auto;height:auto}
.drawing__cap{max-width:var(--wrap);margin:18px auto 0;padding-inline:var(--gut);
  font-size:var(--s6);color:var(--body)}

/* ---------- the spine ---------- */
.spine{border-top:1px solid var(--hair)}
.dep{padding-block:clamp(56px,7.5vw,92px);border-top:1px dashed rgba(255,255,255,.13)}
.dep:first-child{border-top:0}
.dep--quiet{background:var(--panel)}
.dep__in{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media(min-width:900px){.dep__in{grid-template-columns:300px minmax(0,1fr);gap:64px}}
.dep__num{position:relative}
@media(min-width:900px){.dep__num{position:sticky;top:26px;align-self:start}}
.ticks{display:block;height:11px;margin-bottom:16px;
  background-image:repeating-linear-gradient(to right,var(--hot) 0 1px,transparent 1px 11px);
  opacity:.85}
.dep__fig{display:block;font-family:'Archivo',sans-serif;font-weight:700;color:var(--ink);
  font-size:var(--s2);line-height:.94;letter-spacing:-.03em}
.dep__unit{display:block;margin-top:10px;font-size:var(--s7);font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--hot);line-height:1.5}
.dep__body h2{max-width:24ch}

.note{border-left:2px solid var(--hot);padding:2px 0 2px 20px;margin-top:26px;max-width:62ch}
.note strong{color:var(--ink);font-weight:600}

/* wet-stone aside */
.wet{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;margin-top:32px;
  background:var(--panel);border-top:2px solid var(--hot);padding:28px}
@media(min-width:820px){.wet{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:34px;align-items:stretch;padding:32px}
  .wet__fig{display:flex}
  .wet__fig img{height:100%;min-height:250px;object-fit:cover}}
.wet__txt p{margin-bottom:0;max-width:52ch}
.wet__fig{margin:0}

/* split with photo */
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
@media(min-width:820px){.split{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:38px;align-items:start}}
.split__fig{margin:0}

/* table */
.tblwrap{overflow-x:auto;margin:26px 0;border-top:1px solid var(--hair2);border-bottom:1px solid var(--hair2)}
.tbl{border-collapse:collapse;width:100%;min-width:480px;font-size:var(--s6)}
.tbl caption{text-align:left;font-size:var(--s7);font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--hot);padding:16px 0 12px}
.tbl th,.tbl td{text-align:left;padding:12px 20px 12px 0;border-top:1px dashed rgba(255,255,255,.13)}
.tbl thead th{color:var(--ink);font-weight:600;border-top:0}
.tbl tbody td:last-child{color:var(--ink)}

/* full-bleed figures */
.fullbleed{margin:0;position:relative}
.fullbleed img{width:100%;height:clamp(320px,52vw,600px);object-fit:cover}
.fullbleed figcaption{max-width:var(--wrap);margin:16px auto 0;padding-inline:var(--gut);
  font-size:var(--s6);color:var(--body)}
@media(min-width:900px){.fullbleed figcaption{padding-right:max(var(--gut),34%)}}

/* facts */
.facts{list-style:none;margin:0;padding:0;counter-reset:f}
.facts>li{counter-increment:f;border-top:1px dashed rgba(255,255,255,.2);padding:28px 0;
  display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
.facts>li:last-child{border-bottom:1px dashed rgba(255,255,255,.2)}
@media(min-width:820px){.facts>li{grid-template-columns:64px minmax(0,1fr);gap:0 30px}
  .facts>li::before{content:counter(f,decimal-leading-zero);grid-row:1/span 4;
    font-family:'Archivo',sans-serif;font-weight:700;font-size:var(--s3);color:var(--hot);line-height:1}}
.facts h3{margin-bottom:12px}
.cite{font-size:var(--s6);color:var(--body);font-style:normal;letter-spacing:.01em;opacity:.95}
.reg{margin-top:34px;font-size:var(--s6);max-width:80ch;border-top:1px solid var(--hair2);padding-top:22px}

/* after */
.after{display:grid;grid-template-columns:minmax(0,1fr);gap:34px}
@media(min-width:900px){.after{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 60px}
  .after--wide{grid-column:1/-1;border-top:2px solid var(--hot);padding-top:30px;
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:60px;align-items:start}
  .after--wide h3{margin-bottom:0;font-size:var(--s3);font-weight:300}
  .after--wide__p{max-width:62ch}}
.after article p{max-width:60ch}

/* close */
.close{background:var(--panel);border-top:1px solid var(--hair);padding-block:clamp(64px,9vw,116px)}
.close h2{font-family:'Archivo',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:-.02em;font-size:var(--s2);max-width:16ch;line-height:1.02}
.close__lede{font-size:var(--s4);color:var(--ink);max-width:52ch;margin-top:8px}
.close__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:30px;margin-top:46px;
  border-top:1px dashed rgba(255,255,255,.2);padding-top:34px}
@media(min-width:720px){.close__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.close__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}}
.close__grid h3{font-size:var(--s7);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--hot)}
.close__grid p{font-size:var(--s5);margin:0;color:var(--ink)}
.bigtel{font-family:'Archivo',sans-serif;font-size:var(--s4);color:var(--hot);
  text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.bigtel:hover{text-decoration:underline}

/* footer */
.foot{border-top:1px solid var(--hair);padding-block:44px 56px;font-size:var(--s6)}
.foot p{max-width:92ch;margin-bottom:14px}
.foot strong{color:var(--ink);font-weight:600}
.foot__end{margin-top:22px;padding-top:18px;border-top:1px solid var(--hair2);color:var(--body)}

/* ---------- motion ---------- */
.rv{opacity:0;transform:translateY(22px)}
.rv:focus-within{opacity:1;transform:none}
.rv-in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1)}
.hero__media img{animation:heroz 4.8s cubic-bezier(.22,.61,.36,1) both}
@keyframes heroz{from{transform:scale(1.06)}to{transform:scale(1)}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  .hero__media img{animation:none}
}

/* yard photo sitting in the left column of the rules section */
.yard{margin:28px 0 0}
.yard figcaption{font-size:var(--s6);color:var(--body);margin-top:12px}
.yard img{height:clamp(220px,26vw,300px);object-fit:cover}

/* photo inside an 'after' article */
.after figure{margin:0 0 18px}
.after figure img{height:clamp(200px,22vw,260px);object-fit:cover}
