@charset "utf-8";

/* =========================================================================
   ONESOURCE DEPOT INC — wholesale distribution
   Direction: trade catalogue / yard ledger. Ink on paper, heavy rules,
   flush plates, spec tables. Grotesque for structure, Georgia for prose.
   ========================================================================= */

:root{
  --paper:#f2efe8;
  --chalk:#fbfaf6;
  --ink:#17191a;
  --body:#2c3134;
  --muted:#5a615c;
  --blue:#173f5f;
  --blue-deep:#0f2c43;
  --blue-lit:#2a6f9e;
  --tan:#d8bd93;
  --tan-soft:#e7dcc6;
  --rule:#17191a;
  --rule-soft:#cbc5b6;
  --rule-mid:#8d8877;

  --sans:"Helvetica Neue",Helvetica,Arial,"Liberation Sans",sans-serif;
  --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;

  --page:1340px;
  --gutter:clamp(18px,4vw,54px);
  --sec:clamp(46px,5.4vw,84px);
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font:400 16px/1.62 var(--serif);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;height:auto}
a{color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:rgba(23,63,95,.4)}
a:hover{text-decoration-color:currentColor}

h1,h2,h3,h4{
  font-family:var(--sans);
  color:var(--ink);
  margin:0;
  text-transform:uppercase;
  letter-spacing:-.015em;
  line-height:.98;
  font-weight:700;
  text-wrap:balance;
}

p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}

::selection{background:var(--tan);color:var(--ink)}

.wrap{max-width:var(--page);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--ink);color:#fff;padding:12px 18px;
  font:700 13px/1 var(--sans);text-transform:uppercase;letter-spacing:.1em;text-decoration:none;
}
.skip-link:focus{left:12px;top:12px}

.visually-hidden{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.on-dark :focus-visible,
.cta-end :focus-visible,
.site-foot :focus-visible{outline-color:#fff}

/* ---------- small type devices ---------- */

.kicker{
  font:700 11px/1.35 var(--sans);
  text-transform:uppercase;
  letter-spacing:.19em;
  color:var(--blue);
  display:flex;align-items:flex-start;gap:12px;
  margin:0 0 18px;
}
.kicker::before{content:"";width:34px;height:2px;background:var(--blue);flex:none;margin-top:6px}
.kicker--plain::before{display:none}

.meta{
  font:400 12px/1.5 var(--sans);
  letter-spacing:.06em;
  color:var(--muted);
}

.lede{
  font-size:clamp(17px,1.55vw,20px);
  line-height:1.6;
  color:var(--body);
}

/* =========================================================================
   MASTHEAD
   ========================================================================= */

.masthead{
  background:var(--chalk);
  border-bottom:3px solid var(--rule);
  position:relative;
  z-index:30;
}
.mast-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding-top:15px;
  padding-bottom:15px;
}

.wordmark{display:flex;align-items:center;gap:13px;text-decoration:none;flex:none}
.wordmark .mark{
  width:40px;height:40px;flex:none;
  background:var(--blue);color:#fff;
  display:grid;place-items:center;
  font:700 15px/1 var(--sans);letter-spacing:.04em;
}
.wm-text{display:flex;flex-direction:column;gap:5px}
.wm-text b{
  font:700 19px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.115em;
  color:var(--ink);
}
.wm-text i{
  font:400 10.5px/1 var(--sans);
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--muted);
}

.mast-contact{display:flex;align-items:center;gap:26px}
.mast-phone{text-decoration:none;display:flex;flex-direction:column;gap:5px;text-align:right}
.mast-phone b{font:700 16px/1 var(--sans);letter-spacing:.02em;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.mast-phone span{font:400 10px/1 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.mast-phone:hover b{color:var(--blue)}

.menu-btn{
  display:none;
  width:44px;height:44px;
  border:1px solid var(--rule);
  background:transparent;
  padding:0;cursor:pointer;
  position:relative;
}
.menu-btn span{
  position:absolute;left:11px;right:11px;height:2px;background:var(--ink);
  transition:transform .2s ease,opacity .2s ease;
}
.menu-btn span:nth-child(1){top:14px}
.menu-btn span:nth-child(2){top:21px}
.menu-btn span:nth-child(3){top:28px}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.site-nav{display:flex;align-items:center;gap:0}
.site-nav a{
  font:600 12px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.13em;
  color:var(--ink);
  text-decoration:none;
  padding:10px 13px;
  border-left:1px solid var(--rule-soft);
}
.site-nav a:first-child{border-left:0}
.site-nav a:hover{color:var(--blue);background:var(--tan-soft)}
.site-nav a[aria-current="page"]{color:var(--blue);box-shadow:inset 0 -3px 0 var(--blue)}
.site-nav .nav-quote{
  background:var(--blue);color:#fff;margin-left:12px;white-space:nowrap;
  border-left:0;padding:12px 18px;
}
.site-nav .nav-quote:hover{background:var(--blue-deep);color:#fff}

/* ---------- department strip ---------- */

.departments{background:var(--paper);border-bottom:1px solid var(--rule)}
.dept-inner{display:flex;align-items:stretch;overflow-x:auto;scrollbar-width:none}
.dept-inner::-webkit-scrollbar{display:none}
.dept-inner a{
  font:600 10px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.135em;
  color:var(--body);
  text-decoration:none;
  padding:13px 13px 12px;
  white-space:nowrap;
  border-left:1px solid var(--rule-soft);
  transition:background .15s ease,color .15s ease;
}
.dept-inner a:first-child{border-left:0;padding-left:0}
.dept-inner a:hover{color:var(--blue);background:var(--tan-soft)}

/* =========================================================================
   HERO
   ========================================================================= */

.hero{padding-top:clamp(30px,4vw,54px);padding-bottom:clamp(34px,4.5vw,62px);background:var(--paper)}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(24px,3.6vw,58px);
  align-items:start;
}

.hero h1{
  font-size:clamp(38px,6.1vw,79px);
  letter-spacing:-.028em;
  margin:0 0 22px;
}
.hero h1 em{font-style:normal;color:var(--blue)}
.hero-lede{
  font-size:clamp(16px,1.4vw,18.5px);
  line-height:1.58;
  max-width:37ch;
  color:var(--body);
}

.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  font:700 12px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.13em;
  text-decoration:none;
  padding:15px 22px;
  border:2px solid var(--ink);
  background:var(--ink);color:#fff;
  cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.btn:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn--blue{background:var(--blue);border-color:var(--blue)}
.btn--blue:hover{background:var(--blue-deep);border-color:var(--blue-deep)}

/* ---------- plates (photographic figures) ---------- */

.plate{margin:0;background:var(--chalk);border:1px solid var(--rule)}
.plate img{width:100%;object-fit:cover;display:block}
.plate--hero img{aspect-ratio:5/4;object-position:center 55%}
.plate--tall img{aspect-ratio:4/5;object-position:center 40%}
.plate--wide img{aspect-ratio:16/7;object-position:center 72%}
.plate--square img{aspect-ratio:1/1}
.plate--bleed{border-left:0;border-right:0}
.plate--bleed figcaption{padding-left:var(--gutter);padding-right:var(--gutter)}
.plate figcaption{
  border-top:1px solid var(--rule);
  padding:11px 14px 12px;
  font:400 11px/1.45 var(--sans);
  letter-spacing:.045em;
  color:var(--muted);
  display:flex;flex-wrap:wrap;gap:4px 12px;
}
.plate figcaption b{
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--blue);
  font-size:10.5px;
}
.plate figcaption span.credit{margin-left:auto;opacity:.9}

/* =========================================================================
   ORDER-UNIT STRIP
   ========================================================================= */

.units{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--chalk)}
.units-inner{display:grid;grid-template-columns:repeat(4,1fr)}
.units-inner > div{
  padding:17px 20px 18px;
  border-left:1px solid var(--rule-soft);
  display:flex;flex-direction:column;gap:5px;
}
.units-inner > div:first-child{border-left:0;padding-left:0}
.units-inner b{
  font:700 13px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--ink);
}
.units-inner span{font:400 12.5px/1.4 var(--sans);color:var(--muted)}

/* =========================================================================
   SECTIONS
   ========================================================================= */

.section{padding-top:var(--sec);padding-bottom:var(--sec)}
.section--chalk{background:var(--chalk);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.section--tight{padding-top:clamp(38px,4.5vw,62px);padding-bottom:clamp(38px,4.5vw,62px)}

.sec-head{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(20px,4vw,64px);
  align-items:end;
  padding-bottom:26px;
  border-bottom:3px solid var(--rule);
  margin-bottom:clamp(26px,3.4vw,44px);
}
.sec-head h2{font-size:clamp(26px,3.5vw,45px);letter-spacing:-.022em}
.sec-head .sec-note{font-size:15.5px;color:var(--body);max-width:44ch}

/* ---------- department index ---------- */

.dept-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--rule);
}
.dept{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:6px 16px;
  padding:22px 26px 24px 0;
  border-bottom:1px solid var(--rule-soft);
  text-decoration:none;
  color:inherit;
  transition:background .16s ease,padding-left .16s ease;
}
.dept:nth-child(even){border-left:1px solid var(--rule-soft);padding-left:26px}
.dept:hover{background:var(--tan-soft)}
.dept-no{
  font:700 12px/1 var(--sans);
  letter-spacing:.1em;
  color:#fff;
  background:var(--blue);
  width:26px;height:26px;
  display:grid;place-items:center;
  margin-top:2px;
  grid-column:1;
  grid-row:1;
}
.dept h3{grid-column:2;grid-row:1}
.dept p{grid-column:2;grid-row:2}
.dept-meta{grid-row:3}
.dept h3{
  font-size:16.5px;
  letter-spacing:.005em;
  text-transform:none;
  line-height:1.25;
  margin-bottom:7px;
}
.dept p{font-size:14.5px;line-height:1.5;color:var(--body);margin:0 0 9px}
.dept-meta{
  font:400 10.5px/1.4 var(--sans);
  text-transform:uppercase;
  letter-spacing:.11em;
  color:var(--muted);
  grid-column:2;
}
.dept:hover .dept-meta{color:var(--blue)}

/* ---------- stone block ---------- */

.stone-block{background:var(--chalk);border-top:3px solid var(--rule);padding-top:var(--sec);padding-bottom:var(--sec)}
.stone-grid{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(26px,4vw,64px);
  align-items:start;
}
.grid-a{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.grid-b{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
.grid-c{grid-template-columns:minmax(0,1.28fr) minmax(0,.72fr)}

.stone-body h2{font-size:clamp(26px,3.4vw,43px);margin-bottom:20px}
.stone-body > p{font-size:16px;max-width:52ch}

.mat-list{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--rule)}
.mat-list li{
  display:grid;
  grid-template-columns:minmax(0,.42fr) minmax(0,1fr);
  gap:16px;
  padding:12px 0;
  border-bottom:1px solid var(--rule-soft);
  align-items:baseline;
}
.mat-list b{
  font:400 19px/1.2 var(--serif);
  font-weight:700;
  color:var(--ink);
  letter-spacing:-.01em;
}
.mat-list span{font-size:14px;line-height:1.45;color:var(--body)}

/* ---------- tan band: nominal vs actual ---------- */

.band-nominal{
  background:var(--tan);
  border-top:3px solid var(--rule);
  border-bottom:3px solid var(--rule);
  padding-top:clamp(40px,5vw,70px);
  padding-bottom:clamp(40px,5vw,70px);
  color:var(--ink);
}
.nominal-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(24px,4vw,60px);
  align-items:center;
}
.dim{
  display:flex;align-items:center;gap:clamp(12px,2vw,26px);
  font-family:var(--sans);
  flex-wrap:wrap;
}
.dim span{
  font-weight:700;
  font-size:clamp(38px,6.6vw,86px);
  line-height:.86;
  letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
}
.dim span.nominal{opacity:.52}
.dim b{font-size:clamp(24px,3vw,40px);line-height:1;font-weight:400}
.dim small{
  display:block;width:100%;
  font:600 10.5px/1 var(--sans);
  text-transform:uppercase;letter-spacing:.18em;
  margin-top:14px;
}
.nominal-copy h2{font-size:clamp(24px,3.1vw,38px);margin-bottom:16px}
.nominal-copy p{font-size:15.5px;line-height:1.55;max-width:48ch;color:#2a2418}
.nominal-copy p b{color:var(--ink)}

/* ---------- docket ---------- */

.docket{
  list-style:none;margin:0;padding:0;
  border:1px solid var(--rule);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:var(--chalk);
}
.docket > li{
  padding:22px 22px 26px;
  border-left:1px solid var(--rule);
}
.docket > li:first-child{border-left:0}
.docket b{
  display:inline-grid;place-items:center;
  width:26px;height:26px;
  background:var(--ink);color:#fff;
  font:700 11.5px/1 var(--sans);
  letter-spacing:.04em;
  margin-bottom:14px;
}
.docket h3{font-size:15px;letter-spacing:.02em;text-transform:none;line-height:1.2;margin-bottom:8px}
.docket p{font-size:14px;line-height:1.5;color:var(--body);margin:0}
.docket-head{
  border:1px solid var(--rule);border-bottom:0;
  background:var(--ink);color:#fff;
  font:700 10.5px/1 var(--sans);
  text-transform:uppercase;letter-spacing:.18em;
  padding:11px 22px;
  display:flex;justify-content:space-between;gap:16px;
  flex-wrap:wrap;
}

/* =========================================================================
   TABLES
   ========================================================================= */

.table-wrap{overflow-x:auto;margin:0}
table.spec{
  width:100%;
  border-collapse:collapse;
  border-top:3px solid var(--rule);
  font-family:var(--sans);
  font-size:14px;
  text-align:left;
}
table.spec caption{
  caption-side:top;
  text-align:left;
  font:700 10.5px/1.4 var(--sans);
  text-transform:uppercase;
  letter-spacing:.15em;
  color:var(--blue);
  padding-bottom:11px;
}
table.spec th,
table.spec td{padding:11px 16px 12px 0;vertical-align:top;border-bottom:1px solid var(--rule-soft)}
table.spec thead th{
  font-size:10.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--ink);
  border-bottom:2px solid var(--rule);
  white-space:nowrap;
}
table.spec tbody th{
  font-weight:600;
  color:var(--ink);
  width:31%;
}
table.spec tbody td{color:var(--body);font-size:13.5px;line-height:1.5}
table.spec tbody tr:nth-child(even){background:rgba(203,197,182,.22)}
table.spec tbody tr:last-child th,
table.spec tbody tr:last-child td{border-bottom:1px solid var(--rule)}
table.spec .num{font-variant-numeric:tabular-nums;white-space:nowrap}
table.spec td .u{font-family:var(--mono);font-size:12px;letter-spacing:-.01em}

/* =========================================================================
   PROSE BLOCKS / SPLITS
   ========================================================================= */

.split{
  display:grid;
  grid-template-columns:minmax(0,.36fr) minmax(0,1fr);
  gap:clamp(22px,4vw,60px);
  align-items:start;
  margin-top:clamp(28px,3.4vw,44px);
}
.aside-note{
  font:700 10.5px/1.5 var(--sans);
  text-transform:uppercase;
  letter-spacing:.17em;
  color:var(--blue);
  border-top:2px solid var(--rule);
  padding-top:11px;
  margin:0;
}
.split-body{max-width:64ch}
.split-body > p{font-size:16px;line-height:1.64}
.split-body > p:first-child{font-size:17.5px;color:var(--ink)}

.pull{
  border-left:4px solid var(--blue);
  padding:4px 0 4px 22px;
  margin:28px 0;
  font-size:clamp(18px,2vw,23px);
  line-height:1.45;
  color:var(--ink);
  font-style:italic;
}
.pull cite{
  display:block;
  margin-top:10px;
  font:400 11px/1 var(--sans);
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.15em;
  color:var(--muted);
}

.text-link{
  display:inline-flex;align-items:center;gap:9px;
  font:700 11.5px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--blue);
  text-decoration:none;
  border-bottom:2px solid var(--blue);
  padding-bottom:6px;
}
.text-link:hover{color:var(--blue-deep);border-bottom-color:var(--blue-deep)}

/* ---------- callout / note panels ---------- */

.note{
  border:1px solid var(--rule);
  border-left:6px solid var(--blue);
  background:var(--chalk);
  padding:20px 24px 22px;
}
.note h3{font-size:13px;letter-spacing:.09em;text-transform:uppercase;margin-bottom:10px;color:var(--blue)}
.note p{font-size:14.5px;line-height:1.55;margin:0}
.note ul{margin:8px 0 0;padding-left:18px;font-size:14.5px;line-height:1.55}
.note li{margin-bottom:6px}

/* ---------- swatch row (stone finishes) ---------- */

.swatches{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:1px;
  background:var(--rule-soft);
  border:1px solid var(--rule-soft);
  margin:0;
}
.swatches > div{background:var(--chalk);padding:0 0 12px}
.swatches .chip{display:block;height:56px;border-bottom:1px solid var(--rule-soft);margin-bottom:0}
.swatches dt{
  font:700 10px/1.4 var(--sans);
  text-transform:uppercase;
  letter-spacing:.13em;
  padding:10px 12px 3px;
  color:var(--ink);
}
.swatches dd{
  margin:0;
  font:400 11.5px/1.4 var(--sans);
  color:var(--muted);
  padding:0 12px;
}

/* =========================================================================
   PAGE HERO (interior)
   ========================================================================= */

.page-hero{
  background:var(--chalk);
  border-bottom:3px solid var(--rule);
  padding-top:clamp(30px,4vw,50px);
  padding-bottom:clamp(30px,4vw,50px);
}
.page-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(24px,4vw,60px);
  align-items:end;
}
.page-hero h1{
  font-size:clamp(32px,4.9vw,64px);
  letter-spacing:-.026em;
  margin-bottom:20px;
}
.page-hero .lede{max-width:50ch;color:var(--body)}
.page-hero-side{
  border-top:2px solid var(--rule);
  padding-top:14px;
  font:400 13px/1.6 var(--sans);
  color:var(--muted);
}
.page-hero-side b{
  display:block;
  font:700 10.5px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--blue);
  margin-bottom:9px;
}

/* ---------- ledger list ---------- */

.ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.ledger li{
  display:grid;
  grid-template-columns:minmax(0,.3fr) minmax(0,1fr);
  gap:clamp(14px,2.6vw,40px);
  padding:18px 0 19px;
  border-bottom:1px solid var(--rule-soft);
  align-items:baseline;
}
.ledger b{font:700 13px/1.35 var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
.ledger p{font-size:14.8px;line-height:1.55;margin:0;color:var(--body)}

/* =========================================================================
   CTA
   ========================================================================= */

.cta-end{
  background:var(--blue);
  color:#fff;
  padding-top:clamp(44px,5.4vw,76px);
  padding-bottom:clamp(44px,5.4vw,76px);
  border-top:3px solid var(--rule);
}
.cta-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.86fr);
  gap:clamp(24px,4vw,56px);
  align-items:end;
}
.cta-end .kicker{color:#c9dbe7}
.cta-end .kicker::before{background:#c9dbe7}
.cta-end h2{
  color:#fff;
  font-size:clamp(26px,3.9vw,50px);
  letter-spacing:-.024em;
  margin-bottom:18px;
}
.cta-end p{color:#d5e3ec;font-size:15.5px;max-width:44ch}
.cta-phone{display:block;text-decoration:none;color:#fff;text-align:right}
.cta-phone b{
  display:block;
  font:700 clamp(30px,5.4vw,60px)/1 var(--sans);
  letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.cta-phone span{
  display:block;
  font:400 10.5px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.19em;
  color:#b9d0df;
  margin-bottom:11px;
}
.cta-phone:hover b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.cta-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:20px}
.cta-links .btn{border-color:#fff;background:transparent;color:#fff}
.cta-links .btn:hover{background:#fff;color:var(--blue)}
.cta-links .btn--solid{background:#fff;color:var(--blue)}
.cta-links .btn--solid:hover{background:var(--tan);border-color:var(--tan);color:var(--ink)}

/* =========================================================================
   FOOTER
   ========================================================================= */

.site-foot{background:var(--ink);color:#c3c8c4;border-top:3px solid var(--rule)}
.foot-inner{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(0,.85fr);
  gap:clamp(24px,4vw,56px);
  padding-top:clamp(34px,4vw,52px);
  padding-bottom:clamp(30px,3.6vw,44px);
}
.foot-brand .wordmark{margin-bottom:18px}
.foot-brand .wm-text b{color:#fff}
.foot-brand .wm-text i{color:#9aa39d}
.foot-brand p{font-size:14px;line-height:1.6;color:#a9b0ab;max-width:36ch}

.foot-addr{
  font-family:var(--sans);
  font-size:13.5px;
  line-height:1.75;
  color:#d7dbd7;
  font-style:normal;
  border-top:1px solid #3a3f3c;
  padding-top:16px;
  margin-top:22px;
  max-width:34ch;
}
.foot-addr b{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.16em;color:#8d968f;margin-bottom:7px}
.foot-addr a{color:#fff;text-decoration:none;border-bottom:1px solid #5c645e}
.foot-addr a:hover{border-bottom-color:#fff}

.foot-col h3{
  font:700 10.5px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.17em;
  color:#8d968f;
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid #3a3f3c;
}
.foot-col a{
  display:block;
  font:400 13.5px/1 var(--sans);
  color:#d7dbd7;
  text-decoration:none;
  padding:7px 0;
}
.foot-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.foot-cols-2{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}

.foot-bottom{
  border-top:1px solid #3a3f3c;
  padding-top:16px;
  padding-bottom:22px;
  display:flex;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  font:400 11px/1.5 var(--sans);
  letter-spacing:.05em;
  color:#8d968f;
}

/* =========================================================================
   FORMS (enquiry builder)
   ========================================================================= */

.form-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:clamp(24px,4vw,52px);
  align-items:start;
}
form.enquiry{padding-top:2px}
.field{margin-bottom:16px}
.field label{
  display:block;
  font:700 10.5px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--ink);
  margin-bottom:7px;
}
.field label .opt{font-weight:400;letter-spacing:.04em;text-transform:none;color:var(--muted);font-size:11px}
.field input,
.field select,
.field textarea{
  width:100%;
  font:400 15px/1.45 var(--sans);
  color:var(--ink);
  background:var(--chalk);
  border:1px solid var(--rule-mid);
  border-left:4px solid var(--rule);
  padding:11px 13px;
  border-radius:0;
  appearance:none;
}
.field textarea{min-height:104px;resize:vertical;font-family:var(--sans)}
.field input:focus,
.field select:focus,
.field textarea:focus{border-color:var(--blue);border-left-color:var(--blue);outline:2px solid var(--blue);outline-offset:0}
.field select{
  background-image:
    linear-gradient(45deg,transparent 50%,var(--ink) 50%),
    linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 18px) 19px,calc(100% - 12px) 19px;
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
  padding-right:38px;
}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form.enquiry .btn{margin-top:6px}
.form-hint{font:400 11.5px/1.5 var(--sans);color:var(--muted);margin-top:12px}

.output{
  border:1px solid var(--rule);
  background:var(--chalk);
  padding:22px 24px 24px;
}
.output h3{
  font:700 10.5px/1 var(--sans);
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--blue);
  margin-bottom:14px;
  padding-bottom:11px;
  border-bottom:1px solid var(--rule-soft);
}
.output pre{
  margin:0;
  font:400 12.5px/1.62 var(--mono);
  white-space:pre-wrap;
  word-break:break-word;
  color:var(--ink);
  max-height:340px;
  overflow:auto;
}
.output-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.output-actions .btn{padding:12px 16px;font-size:11px}
.output-empty{font-size:14px;color:var(--muted);font-style:italic}
.output ul{margin:0;padding-left:17px;font:400 13.5px/1.7 var(--sans);color:var(--body)}
.output li{margin-bottom:7px}
.output li:last-child{margin-bottom:0}
.output--idle{background:transparent;border-style:dashed;border-color:var(--rule-mid)}

/* =========================================================================
   LEGAL
   ========================================================================= */

.legal{padding-top:clamp(30px,4vw,48px);padding-bottom:clamp(40px,5vw,72px);background:var(--paper)}
.legal-grid{display:grid;grid-template-columns:minmax(0,.3fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:start}
.legal-toc{
  position:sticky;top:20px;
  border-top:2px solid var(--rule);
  padding-top:12px;
}
.legal-toc h2{font:700 10.5px/1 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:12px}
.legal-toc a{display:block;font:400 13px/1.4 var(--sans);padding:6px 0;text-decoration:none;color:var(--body);border-bottom:1px solid var(--rule-soft)}
.legal-toc a:hover{color:var(--blue)}
.legal-body h2{font-size:19px;text-transform:none;letter-spacing:0;margin:34px 0 12px;padding-top:16px;border-top:1px solid var(--rule-soft)}
.legal-body h2:first-of-type{border-top:0;padding-top:0;margin-top:0}
.legal-body h3{font:700 12px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.09em;margin:22px 0 8px;color:var(--ink)}
.legal-body p,.legal-body li{font-size:15px;line-height:1.65}
.legal-body ul{padding-left:20px}
.legal-body li{margin-bottom:7px}

.draft-banner{
  background:var(--tan);
  border-bottom:1px solid var(--rule);
  color:var(--ink);
  font:600 12px/1.5 var(--sans);
  letter-spacing:.03em;
  padding:11px 0;
}
.draft-banner b{text-transform:uppercase;letter-spacing:.14em;font-size:10.5px;margin-right:8px}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */

@media (max-width:1080px){
  .dept-inner a{padding-left:12px;padding-right:12px;font-size:10px}
  .site-nav a{padding:10px 11px;font-size:11px}
  .mast-contact .mast-phone{display:none}
}

@media (max-width:940px){
  .hero-grid{grid-template-columns:1fr;gap:30px}
  .hero h1{font-size:clamp(34px,7.6vw,58px)}
  .plate--hero img{aspect-ratio:16/9}
  .page-hero-grid{grid-template-columns:1fr;align-items:start;gap:26px}
  .stone-grid,.grid-a,.grid-b,.grid-c{grid-template-columns:1fr}
  .stone-grid .plate{max-width:420px}
  .nominal-grid{grid-template-columns:1fr;gap:28px}
  .docket{grid-template-columns:repeat(2,1fr)}
  .docket > li:nth-child(3){border-left:0}
  .docket > li:nth-child(3),
  .docket > li:nth-child(4){border-top:1px solid var(--rule)}
  .cta-grid{grid-template-columns:1fr;align-items:start}
  .cta-phone{text-align:left}
  .cta-links{justify-content:flex-start}
  .sec-head{grid-template-columns:1fr;align-items:start;gap:16px}
  .split{grid-template-columns:1fr;gap:14px}
  .form-grid{grid-template-columns:1fr}
  .legal-grid{grid-template-columns:1fr}
  .legal-toc{position:static}
  .legal-toc a{display:inline-block;border-bottom:0;margin-right:16px}
}

@media (max-width:820px){
  .menu-btn{display:block}
  .mast-inner{padding-top:12px;padding-bottom:12px;gap:16px}
  .site-nav{
    display:none;
    position:absolute;
    left:0;right:0;top:100%;
    background:var(--chalk);
    border-bottom:3px solid var(--rule);
    flex-direction:column;
    align-items:stretch;
    padding:6px 0 10px;
  }
  .site-nav.is-open{display:flex}
  .site-nav a{
    border-left:0;
    border-top:1px solid var(--rule-soft);
    padding:15px var(--gutter);
    font-size:13px;
  }
  .site-nav a:first-child{border-top:0}
  .site-nav a[aria-current="page"]{box-shadow:inset 4px 0 0 var(--blue);background:var(--tan-soft)}
  .site-nav .nav-quote{margin:10px var(--gutter) 0;padding:15px 18px}
  .masthead{position:relative}
  .units-inner{grid-template-columns:1fr 1fr}
  .units-inner > div:nth-child(3){border-left:0}
  .units-inner > div:nth-child(3),
  .units-inner > div:nth-child(4){border-top:1px solid var(--rule-soft)}
  .foot-inner{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
}

@media (max-width:720px){
  body{font-size:15.5px}
  .dept-grid{grid-template-columns:1fr}
  .dept:nth-child(even){border-left:0;padding-left:0}
  .dept{padding-right:0}
  .ledger li{grid-template-columns:1fr;gap:5px}
  .mat-list li{grid-template-columns:1fr;gap:2px}

  /* stacked spec tables */
  table.spec thead{display:none}
  table.spec,
  table.spec tbody,
  table.spec tr,
  table.spec th,
  table.spec td{display:block;width:100%}
  table.spec{border-top:3px solid var(--rule)}
  table.spec tr{
    border-bottom:1px solid var(--rule);
    padding:12px 0 14px;
    background:none !important;
  }
  table.spec tbody tr:last-child{border-bottom:1px solid var(--rule)}
  table.spec th,
  table.spec td{border:0;padding:0 0 6px}
  table.spec tbody th{width:auto}
  table.spec tbody th{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--blue);
  }
  table.spec tbody td::before{
    content:attr(data-label);
    display:block;
    font:700 10px/1.4 var(--sans);
    text-transform:uppercase;
    letter-spacing:.13em;
    color:var(--muted);
    margin-bottom:3px;
  }
  table.spec tbody td:last-child{padding-bottom:0}
  table.spec caption{display:block;width:100%;padding-bottom:14px}
}

@media (max-width:560px){
  .docket{grid-template-columns:1fr}
  .docket > li{border-left:0;border-top:1px solid var(--rule)}
  .docket > li:first-child{border-top:0}
  .field-row{grid-template-columns:1fr}
  .foot-inner{grid-template-columns:1fr;gap:28px}
  .foot-cols-2{grid-template-columns:1fr 1fr}
  .hero-actions .btn{width:100%;justify-content:center}
  .wm-text i{display:none}
  .wm-text b{font-size:16px;letter-spacing:.09em}
  .wordmark .mark{width:34px;height:34px;font-size:13px}
  .dim small{margin-top:10px}
  .plate figcaption{font-size:10.5px}
  .units-inner > div{padding:14px 14px 15px}
  .units-inner > div:first-child{padding-left:0}
}

@media (max-width:560px){
  .output-actions{flex-direction:column;align-items:stretch}
  .output-actions .btn{justify-content:center}
}

@media (max-width:400px){
  .units-inner{grid-template-columns:1fr}
  .units-inner > div{border-left:0;border-top:1px solid var(--rule-soft);padding-left:0}
  .units-inner > div:first-child{border-top:0}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.001ms !important;animation-duration:.001ms !important}
}

@media print{
  .masthead,.departments,.cta-end,.site-foot,.menu-btn{display:none}
  body{background:#fff;font-size:11pt}
  a{color:#000}
}

/* ---------- live contact channel ---------- */
.cta-mail{text-align:right;margin:14px 0 0;font:400 12px/1.5 var(--sans);color:#b9d0df}
.cta-mail a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.cta-mail a:hover{text-decoration-thickness:2px}
.foot-addr a[href^="mailto:"]{letter-spacing:.01em}
.spec a[href^="mailto:"]{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.output .btn{text-decoration:none}
@media (max-width:940px){
  .cta-mail{text-align:left}
}
