/* ===========================================================
   Scotgas Technical Services
   -----------------------------------------------------------
   Palette sampled directly from the client's own signage/logo:
     deep aubergine  #1D0C22   panel ground
     brand orange    #D6531E   left of the SCOTGAS wordmark
     brand gold      #E8B033   mid wordmark  -> primary CTA
     brand lemon     #ECDE4F   right of the wordmark
   Every pairing used below was contrast-checked; lowest is 4.53:1,
   so the whole site clears WCAG AA.
   =========================================================== */

:root{
  --ink:        #1D0C22;   /* header, footer, dark sections      */
  --ink-soft:   #2E1637;   /* raised panels on dark              */
  --ink-line:   #472B50;   /* hairlines on dark                  */
  --amber:      #E8B033;   /* brand gold - CTAs, rules, accents  */
  --amber-hi:   #F3C24E;   /* gold hover                         */
  --amber-dk:   #C7440F;   /* deep orange for text on light      */
  --orange:     #D6531E;   /* brand orange - accents on dark     */
  --lemon:      #ECDE4F;   /* brand lemon - accent text on dark  */
  --paper:      #F8F5F1;   /* page ground, warm                  */
  --paper-2:    #F0EAEF;   /* alternate band                     */
  --line:       #E0D6DF;   /* hairlines on light                 */
  --body:       #2A1B31;   /* body text on paper  (14.9:1)       */
  --muted:      #6B5C72;   /* secondary text      (5.7:1)        */
  --white:      #FFFFFF;
  --red:        #B3261E;

  --display: "Barlow Condensed", "Haettenschweiler", "Arial Narrow", sans-serif;
  --text:    "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --wrap: 1140px;
  --gut: clamp(1.15rem, 4vw, 2.5rem);

  --s1: 0.9rem;  --s2: 1.4rem;  --s3: 2.2rem;
  --s4: 3.4rem;  --s5: 5rem;

  --hdr: 64px;
}

@media (min-width: 900px){ :root{ --hdr: 88px; } }

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--text);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  padding-bottom:64px; /* clears mobile call bar */
}
@media (min-width: 760px){ body{ padding-bottom:0; } }

img{ max-width:100%; height:auto; display:block; }

/* ---------- type ---------- */
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:700;
  line-height:1.03;
  letter-spacing:.005em;
  text-transform:uppercase;
  color:var(--ink);
  margin:0 0 .5em;
  text-wrap:balance;
}
h1{ font-size:clamp(2.3rem, 7vw, 4.05rem); }
h2{ font-size:clamp(1.75rem, 4.4vw, 2.75rem); margin-top:0; }
h3{ font-size:clamp(1.22rem, 2.6vw, 1.55rem); letter-spacing:.015em; }
h4{ font-size:1.05rem; letter-spacing:.04em; }

p{ margin:0 0 1.15em; max-width:68ch; }
p:last-child{ margin-bottom:0; }

a{ color:var(--ink); text-underline-offset:3px; text-decoration-thickness:1.5px; }
a:hover{ color:var(--amber-dk); }

strong{ font-weight:600; color:var(--ink); }

.lede{ font-size:clamp(1.1rem,2.2vw,1.28rem); line-height:1.55; color:var(--body); }

.eyebrow{
  font-family:var(--display);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.9rem;
  font-weight:600;
  color:var(--amber-dk);
  margin:0 0 .65rem;
  display:block;
}
.on-ink .eyebrow{ color:var(--amber); }

/* amber rule motif above headings */
.ruled{ position:relative; padding-top:1.35rem; }
.ruled::before{
  content:""; position:absolute; top:0; left:0;
  width:64px; height:5px;
  background:linear-gradient(90deg, var(--orange), var(--amber));
}

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }
.wrap--narrow{ max-width:760px; }

.section{ padding-block:clamp(2.75rem, 7vw, 5.25rem); }
.section--tight{ padding-block:clamp(2rem, 4.5vw, 3rem); }
.section--alt{ background:var(--paper-2); }
.section--ink{ background:var(--ink); color:#E3D8E7; }
.section--ink h2,.section--ink h3,.section--ink h4{ color:var(--white); }
.section--ink strong{ color:var(--white); }
.section--ink a{ color:var(--amber); }

.skip{
  position:absolute; left:-9999px; top:0; background:var(--amber); color:var(--ink);
  padding:.75rem 1.15rem; font-weight:600; z-index:200;
}
.skip:focus{ left:.5rem; top:.5rem; }

:where(a,button,summary,input,textarea,select):focus-visible{
  outline:3px solid var(--amber); outline-offset:2px; border-radius:2px;
}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--ink);
  border-bottom:0;
}
.site-header::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:linear-gradient(90deg, var(--orange) 0%, var(--amber) 55%, var(--lemon) 100%);
}
.site-header__in{
  display:flex; align-items:center; gap:1rem;
  min-height:var(--hdr);
  max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut);
}
.brand{ display:flex; flex-direction:column; justify-content:center; gap:.18rem;
  text-decoration:none; margin-right:auto; padding-block:.5rem; }
.brand__logo{ height:auto; width:168px; }
.brand__sub{
  font-family:var(--display); text-transform:uppercase; letter-spacing:.24em;
  font-size:.6rem; font-weight:600; color:var(--amber); line-height:1;
  padding-left:.12rem;
}
@media (min-width:900px){
  .brand__logo{ width:230px; }
  .brand__sub{ font-size:.74rem; letter-spacing:.3em; }
}
.brand__txt{ font-family:var(--display); text-transform:uppercase; line-height:1; color:var(--white); }
.brand__txt b{ display:block; font-size:1.3rem; font-weight:700; letter-spacing:.02em; }
.brand__txt span{ display:block; font-size:.72rem; font-weight:500; letter-spacing:.17em; color:var(--amber); margin-top:.18rem; }
@media (min-width:900px){ .brand__txt b{ font-size:1.65rem; } .brand__txt span{ font-size:.78rem; } }

.nav{ display:none; }
@media (min-width:1000px){
  .nav{ display:flex; align-items:stretch; gap:.35rem; align-self:stretch; }
  .nav__item{ position:relative; display:flex; }
  .nav__link, .nav__top{
    display:inline-flex; align-items:center; gap:.3rem;
    font-family:var(--display); text-transform:uppercase; letter-spacing:.07em;
    font-size:1.02rem; font-weight:600; color:#CFC0D4; text-decoration:none;
    padding:.4rem .7rem; background:none; border:0; cursor:pointer;
    border-bottom:3px solid transparent; font-size:1.02rem; line-height:1;
  }
  .nav__top svg{ width:15px; height:15px; transition:transform .18s ease; }
  .nav__link:hover, .nav__top:hover,
  .nav__link[aria-current="page"], .nav__top.is-active{
    color:var(--white); border-bottom-color:var(--amber);
  }
  .nav__item:hover .nav__top svg,
  .nav__top[aria-expanded="true"] svg{ transform:rotate(180deg); }

  .sub{
    position:absolute; top:100%; left:0; min-width:300px; z-index:130;
    background:var(--ink-soft); border:1px solid var(--ink-line);
    border-top:3px solid var(--amber);
    box-shadow:0 18px 40px rgba(0,0,0,.45);
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:opacity .16s ease, transform .16s ease, visibility .16s;
  }
  .nav__item:hover .sub, .nav__item:focus-within .sub,
  .nav__top[aria-expanded="true"] + .sub{
    opacity:1; visibility:visible; transform:translateY(0);
  }
  .sub ul{ list-style:none; margin:0; padding:.35rem; }
  .sub a{
    display:block; padding:.6rem .75rem; text-decoration:none; border-radius:3px;
  }
  .sub b{
    display:block; font-family:var(--display); text-transform:uppercase;
    letter-spacing:.03em; font-size:1.06rem; font-weight:600; color:var(--white);
    line-height:1.15;
  }
  .sub span{ display:block; font-size:.86rem; color:#B29FB9; line-height:1.35; margin-top:.15rem; }
  .sub a:hover, .sub a:focus-visible{ background:var(--ink); }
  .sub a:hover b, .sub a:focus-visible b{ color:var(--lemon); }
  .sub a[aria-current="page"]{ background:var(--ink); }
  .sub a[aria-current="page"] b{ color:var(--amber); }
}

.hdr-call{
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--amber); color:var(--ink);
  font-family:var(--display); font-weight:700; text-transform:uppercase;
  letter-spacing:.03em; font-size:1.05rem;
  padding:.6rem .9rem; border-radius:3px; text-decoration:none; white-space:nowrap;
}
.hdr-call:hover{ background:var(--amber-hi); color:var(--ink); }
.hdr-call svg{ width:18px; height:18px; flex:none; }
.hdr-call .n{ display:none; }
@media (min-width:560px){ .hdr-call .n{ display:inline; } }
@media (min-width:1000px){ .hdr-call{ font-size:1.22rem; padding:.7rem 1.1rem; } }

/* menu toggle (mobile) */
.menu-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; background:transparent; border:1.5px solid var(--ink-line);
  color:var(--white); border-radius:3px; cursor:pointer; padding:0;
}
@media (min-width:1000px){ .menu-btn{ display:none; } }
.menu-btn svg{ width:22px; height:22px; }
.drawer{ display:none; background:var(--ink-soft); border-top:1px solid var(--ink-line); }
.drawer.open{ display:block; }
@media (min-width:1000px){ .drawer{ display:none !important; } }
.drawer ul{ list-style:none; margin:0; padding:.5rem var(--gut) 1.25rem; max-width:var(--wrap); margin-inline:auto; }
.drawer li{ border-bottom:1px solid var(--ink-line); }
.drawer__h{
  font-family:var(--display); text-transform:uppercase; letter-spacing:.16em;
  font-size:.76rem; font-weight:600; color:var(--amber);
  padding:1.1rem 0 .35rem; border-bottom:0 !important;
}
.drawer__h + li{ border-top:1px solid var(--ink-line); }
.drawer li:last-child{ border-bottom:0; }
.drawer a{
  display:block; padding:.85rem 0; color:var(--white); text-decoration:none;
  font-family:var(--display); text-transform:uppercase; letter-spacing:.06em; font-size:1.12rem; font-weight:600;
}
.drawer a:hover{ color:var(--amber); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.045em;
  font-size:1.16rem; line-height:1;
  padding:1rem 1.6rem; border-radius:3px; border:3px solid transparent;
  text-decoration:none; cursor:pointer; min-height:52px; text-align:center;
}
.btn svg{ width:19px; height:19px; flex:none; }
.btn--primary{ background:var(--amber); color:var(--ink); border-color:var(--amber); }
.btn--primary:hover{ background:var(--amber-hi); border-color:var(--amber-hi); color:var(--ink); }
.btn--ghost{ background:transparent; color:var(--white); border-color:rgba(255,255,255,.5); }
.btn--ghost:hover{ background:var(--white); color:var(--ink); border-color:var(--white); }
.btn--dark{ background:var(--ink); color:var(--white); border-color:var(--ink); }
.btn--dark:hover{ background:var(--ink-soft); border-color:var(--ink-soft); color:var(--white); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.75rem; }

/* ---------- hero ---------- */
.hero{ position:relative; background:var(--ink); color:#E3D8E7; overflow:hidden; }
.hero__media{ position:absolute; inset:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(29,12,34,.94) 0%, rgba(29,12,34,.88) 42%, rgba(29,12,34,.52) 100%);
}
.hero__in{
  position:relative; z-index:2;
  max-width:var(--wrap); margin-inline:auto; padding:clamp(2.5rem,7vw,5.5rem) var(--gut) clamp(2.25rem,5vw,4rem);
}
.hero__body{ max-width:660px; }
.hero h1{ color:var(--white); margin-bottom:.45em; }
.hero h1 em{ font-style:normal; color:var(--lemon); display:block; }
.hero p{ color:#D2C4D7; font-size:clamp(1.06rem,2.1vw,1.24rem); line-height:1.55; }
.hero__strap{
  display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; margin-top:1.6rem; padding-top:1.3rem;
  border-top:1px solid var(--ink-line); list-style:none; padding-left:0;
}
.hero__strap li{
  display:flex; align-items:center; gap:.45rem;
  font-family:var(--display); text-transform:uppercase; letter-spacing:.06em;
  font-size:.96rem; font-weight:600; color:var(--white);
}
.hero__strap svg{ width:17px; height:17px; color:var(--amber); flex:none; }

/* page header (interior pages) */
.phead{ background:var(--ink); color:#D2C4D7; padding-block:clamp(1.9rem,4.5vw,3.1rem); }
.phead h1{ color:var(--white); margin-bottom:.35em; }
.phead p{ color:#D2C4D7; font-size:clamp(1.04rem,2vw,1.2rem); max-width:62ch; }

/* ---------- breadcrumbs ---------- */
.crumbs{ font-size:.88rem; padding-block:.85rem; border-bottom:1px solid var(--line); background:var(--paper); }
.crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; margin:0; padding:0; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }
.crumbs li{ display:flex; gap:.4rem; align-items:center; color:var(--muted); }
.crumbs li+li::before{ content:"/"; color:var(--line); }
.crumbs a{ color:var(--muted); }
.crumbs [aria-current]{ color:var(--body); font-weight:500; }

/* ---------- trust strip ---------- */
.trust{ background:var(--ink-soft); color:var(--white); border-top:1px solid var(--ink-line); }
.trust ul{
  list-style:none; margin:0 auto; padding:1.1rem var(--gut); max-width:var(--wrap);
  display:grid; gap:.85rem 2rem; grid-template-columns:1fr;
}
@media (min-width:640px){ .trust ul{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .trust ul{ grid-template-columns:repeat(4,1fr); padding-block:1.3rem; } }
.trust li{ display:flex; align-items:center; gap:.65rem; font-size:.97rem; line-height:1.3; }
.trust svg{ width:26px; height:26px; color:var(--amber); flex:none; }
.trust b{ display:block; font-family:var(--display); text-transform:uppercase; letter-spacing:.05em; font-size:1.04rem; color:var(--white); }
.trust span{ color:#B29FB9; font-size:.86rem; }

/* ---------- split / asymmetric ---------- */
.split{ display:grid; gap:clamp(1.75rem,4vw,3.25rem); align-items:start; }
@media (min-width:900px){
  .split{ grid-template-columns:1fr 1fr; align-items:center; }
  .split--wide-l{ grid-template-columns:1.25fr 1fr; }
  .split--wide-r{ grid-template-columns:1fr 1.25fr; }
  .split--flip > *:first-child{ order:2; }
}

/* ---------- photo placeholder ---------- */
.photo-slot{
  border:2px dashed #B5A8BC; background:var(--paper-2);
  display:flex; flex-direction:column; justify-content:center; gap:.5rem;
  padding:1.5rem; min-height:230px; aspect-ratio:4/3; color:var(--muted);
}
.section--ink .photo-slot, .hero .photo-slot{ background:var(--ink-soft); border-color:var(--ink-line); color:#B29FB9; }
.photo-slot b{
  font-family:var(--display); text-transform:uppercase; letter-spacing:.09em;
  font-size:.82rem; color:var(--amber-dk); display:block;
}
.section--ink .photo-slot b{ color:var(--amber); }
.photo-slot span{ font-size:.94rem; line-height:1.45; }
.photo-slot--wide{ aspect-ratio:16/9; }

/* ---------- lists ---------- */
.ticks{ list-style:none; padding:0; margin:0 0 1.3rem; display:grid; gap:.68rem; }
.ticks li{ display:grid; grid-template-columns:22px 1fr; gap:.7rem; align-items:start; line-height:1.5; }
.ticks svg{ width:22px; height:22px; color:var(--amber-dk); margin-top:.16rem; }
.section--ink .ticks svg{ color:var(--amber); }

.numbered{ counter-reset:n; list-style:none; padding:0; margin:0; display:grid; gap:1.4rem; }
.numbered li{ counter-increment:n; display:grid; grid-template-columns:44px 1fr; gap:1rem; align-items:start; }
.numbered li::before{
  content:counter(n,decimal-leading-zero);
  font-family:var(--display); font-size:1.5rem; font-weight:700; color:var(--amber-dk);
  line-height:1; padding-top:.15rem; border-top:4px solid var(--amber);
}
.section--ink .numbered li::before{ color:var(--amber); }
.numbered h3{ margin-bottom:.3em; }
.numbered p{ margin-bottom:0; font-size:.99rem; }

/* ---------- panels ---------- */
.panel{ background:var(--white); border:1px solid var(--line); border-left:5px solid var(--amber); padding:clamp(1.25rem,3vw,1.9rem); }
.section--ink .panel{ background:var(--ink-soft); border-color:var(--ink-line); border-left-color:var(--amber); }
.panel h3{ margin-top:0; }
.panel--note{ border-left-color:var(--ink); background:var(--paper-2); }

.stack{ display:grid; gap:1.1rem; }

/* service / link lists — deliberately not a card grid */
.linklist{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.section--ink .linklist{ border-color:var(--ink-line); }
.linklist li{ border-bottom:1px solid var(--line); }
.section--ink .linklist li{ border-color:var(--ink-line); }
.linklist a{
  display:grid; grid-template-columns:1fr 24px; gap:1rem; align-items:center;
  padding:1.15rem .25rem; text-decoration:none;
}
.linklist a:hover{ background:var(--paper-2); }
.section--ink .linklist a:hover{ background:var(--ink-soft); }
.linklist b{ font-family:var(--display); text-transform:uppercase; letter-spacing:.03em; font-size:1.3rem; font-weight:700; color:var(--ink); display:block; line-height:1.1; }
.section--ink .linklist b{ color:var(--white); }
.linklist span{ font-size:.97rem; color:var(--muted); display:block; margin-top:.25rem; }
.section--ink .linklist span{ color:#B29FB9; }
.linklist svg{ width:24px; height:24px; color:var(--amber-dk); }
.section--ink .linklist svg{ color:var(--amber); }

/* ---------- faq ---------- */
.faq{ border-top:2px solid var(--ink); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  cursor:pointer; padding:1.15rem 2.25rem 1.15rem 0; position:relative; list-style:none;
  font-family:var(--display); text-transform:uppercase; letter-spacing:.02em;
  font-size:1.18rem; font-weight:600; color:var(--ink); line-height:1.25;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:.35rem; top:1.45rem;
  width:13px; height:13px; border-right:3px solid var(--amber-dk); border-bottom:3px solid var(--amber-dk);
  transform:rotate(45deg); transition:transform .18s ease;
}
.faq details[open] summary::after{ transform:rotate(-135deg); top:1.6rem; }
.faq .a{ padding:0 0 1.35rem; }
.faq .a p{ font-size:.99rem; }

/* ---------- coverage ---------- */
.towns{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.towns a{
  display:block; padding:.85rem 1rem; background:var(--ink-soft); border:1px solid var(--ink-line);
  color:var(--white); text-decoration:none; border-radius:3px;
  font-family:var(--display); text-transform:uppercase; letter-spacing:.05em; font-size:1.12rem; font-weight:600;
}
.towns a:hover{ background:var(--amber); color:var(--ink); border-color:var(--amber); }
.postcodes{ font-size:.95rem; color:#B29FB9; margin-top:1.1rem; }

/* ---------- quote band ---------- */
.band{ background:var(--amber); color:var(--ink); }
.band .wrap{ display:grid; gap:1.25rem; padding-block:clamp(2rem,5vw,3.1rem); }
@media (min-width:860px){ .band .wrap{ grid-template-columns:1.4fr auto; align-items:center; gap:2.5rem; } }
.band h2{ color:var(--ink); margin-bottom:.3em; }
.band p{ margin-bottom:0; color:#3D2405; font-size:1.06rem; }
.band .btn-row{ margin-top:0; }
.band .btn--dark{ border-color:var(--ink); }

/* ---------- contact ---------- */
.contact-grid{ display:grid; gap:2rem; }
@media (min-width:900px){ .contact-grid{ grid-template-columns:1fr 1fr; gap:3.25rem; } }
.cdetail{ list-style:none; margin:0 0 1.75rem; padding:0; display:grid; gap:1.15rem; }
.cdetail li{ display:grid; grid-template-columns:26px 1fr; gap:.85rem; align-items:start; }
.cdetail svg{ width:26px; height:26px; color:var(--amber-dk); margin-top:.15rem; }
.cdetail b{ display:block; font-family:var(--display); text-transform:uppercase; letter-spacing:.06em; font-size:.87rem; color:var(--muted); font-weight:600; }
.cdetail a, .cdetail .v{ font-size:1.25rem; font-family:var(--display); font-weight:700; color:var(--ink); text-decoration:none; letter-spacing:.01em; }
.cdetail a:hover{ color:var(--amber-dk); }

.form label{ display:block; font-weight:600; font-size:.94rem; margin-bottom:.35rem; color:var(--ink); }
.form input,.form select,.form textarea{
  width:100%; padding:.8rem .9rem; border:1.5px solid var(--line); background:var(--white);
  font:inherit; font-size:1rem; color:var(--body); border-radius:3px; margin-bottom:1.1rem;
}
.form textarea{ min-height:130px; resize:vertical; }
.form input:focus,.form select:focus,.form textarea:focus{ border-color:var(--ink); }

/* ---------- todo marker ---------- */
.todo{
  display:inline-block; background:#FBEFD8; color:#6B3A00;
  border:1.5px dashed var(--amber-dk); border-radius:3px;
  padding:.1rem .45rem; font-size:.88em; font-weight:600; font-family:var(--text);
  text-transform:none; letter-spacing:0;
}
.section--ink .todo, .hero .todo, .trust .todo{ background:rgba(245,179,1,.14); color:#F5D98A; }
.todo-block{ display:block; margin:1.1rem 0; padding:.85rem 1rem; line-height:1.5; }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:#B29FB9; border-top:5px solid transparent;
  border-image:linear-gradient(90deg, var(--orange), var(--amber), var(--lemon)) 1; padding-block:clamp(2.25rem,5vw,3.25rem); font-size:.95rem; }
.site-footer h2{ color:var(--white); font-size:.92rem; letter-spacing:.13em; margin-bottom:1rem; }
.foot-grid{ display:grid; gap:2rem; }
@media (min-width:760px){ .foot-grid{ grid-template-columns:1.3fr 1fr 1fr; gap:2.5rem; } }
@media (min-width:1040px){ .foot-grid{ grid-template-columns:1.5fr 1fr 1fr 1fr; } }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.site-footer a{ color:#CFC0D4; text-decoration:none; }
.site-footer a:hover{ color:var(--amber); text-decoration:underline; }
.foot-note{ margin-top:2.25rem; padding-top:1.4rem; border-top:1px solid var(--ink-line); font-size:.87rem; color:#937F9B; display:grid; gap:.5rem; }
@media (min-width:760px){ .foot-note{ grid-template-columns:1fr auto; align-items:center; } }
.foot-logo{ width:200px; height:auto; margin-bottom:.9rem; }
.site-footer address{ font-style:normal; line-height:1.55; margin:0 0 1.15em; color:#CFC0D4; }
.foot-call{ font-family:var(--display); font-size:1.7rem; font-weight:700; color:var(--amber); text-decoration:none; display:inline-block; margin-bottom:.4rem; letter-spacing:.01em; }
.foot-call:hover{ color:var(--amber-hi); }

/* ---------- mobile call bar ---------- */
.callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:110;
  display:grid; grid-template-columns:1fr 1fr; border-top:3px solid var(--amber);
}
@media (min-width:760px){ .callbar{ display:none; } }
.callbar a{
  display:flex; align-items:center; justify-content:center; gap:.5rem; min-height:60px;
  font-family:var(--display); text-transform:uppercase; letter-spacing:.05em;
  font-size:1.1rem; font-weight:700; text-decoration:none;
}
.callbar svg{ width:19px; height:19px; }
.callbar .c1{ background:var(--amber); color:var(--ink); }
.callbar .c2{ background:var(--ink); color:var(--white); }

/* ---------- misc ---------- */
.spec{ width:100%; border-collapse:collapse; margin:0 0 1.4rem; font-size:.97rem; }
.spec th,.spec td{ text-align:left; padding:.72rem .85rem; border-bottom:1px solid var(--line); vertical-align:top; }
.spec th{ font-family:var(--display); text-transform:uppercase; letter-spacing:.05em; font-size:.95rem; color:var(--ink); width:38%; font-weight:600; }
.spec tr:first-child th,.spec tr:first-child td{ border-top:2px solid var(--ink); }
.tblwrap{ overflow-x:auto; }

.pullquote{
  border-left:5px solid var(--amber); padding:.4rem 0 .4rem 1.35rem; margin:1.75rem 0;
  font-size:clamp(1.12rem,2.3vw,1.35rem); line-height:1.45; color:var(--ink); font-weight:500;
}
.section--ink .pullquote{ color:var(--white); }

.meta{ font-size:.88rem; color:var(--muted); }
.section--ink .meta{ color:#937F9B; }

/* hero with no photo supplied yet — overlay off so the placeholder reads */
.hero--nophoto .hero__media::after{ background:transparent; }
.hero--nophoto .hero__media{ opacity:.5; }
.photo-slot--fill{ height:100%; aspect-ratio:auto; min-height:0; border-width:2px; }
@media (min-width:900px){
  .hero--nophoto .hero__media{ left:auto; width:42%; opacity:1; }
  .hero--nophoto .hero__media::after{
    background:linear-gradient(90deg, rgba(29,12,34,1) 0%, rgba(29,12,34,0) 22%);
  }
}
.hero__strap .todo{ font-size:.82em; }

/* ---------- layout fallbacks while no photography is supplied ---------- */
/* A split left with a single child spans the full width rather than
   sitting in a half-width column next to nothing. */
.split > :only-child{ grid-column:1 / -1; }
.hero--solid .hero__body{ max-width:760px; }
.hero--solid{
  border-bottom:1px solid var(--ink-line);
}
.hero--solid .hero__in{ padding-block:clamp(3rem,9vw,6.5rem) clamp(2.5rem,6vw,4.5rem); }

/* ---------- form status messages ---------- */
.form-msg{
  border-left:5px solid var(--amber); background:var(--paper-2);
  padding:.9rem 1.1rem; margin:0 0 1.25rem; line-height:1.5; font-size:.98rem;
}
.form-msg strong{ display:block; margin-bottom:.15rem; }
.form-msg a{ font-weight:600; white-space:nowrap; }
.form-msg--bad{ border-left-color:var(--red); }

/* ---------- photography ---------- */
.ph{
  width:100%; height:auto; display:block;
  border:1px solid var(--line);
}
.section--ink .ph{ border-color:var(--ink-line); }
