/* Barclay Consulting Engineers - shared styles for inner pages.
   Same system as the homepage: navy room, Imbue display, Albert Sans text, one blue action. */

@font-face{font-family:'Imbue';src:url(../fonts/imbue-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Albert Sans';src:url(../fonts/albert-sans-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Albert Sans';src:url(../fonts/albert-sans-latin-500-normal.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}

:root{
  --bg:#0F2233;
  --surface:#1B3A55;
  --deep:#0B1A28;
  --ink:#EEF2F6;
  --muted:#C3CEDA;
  --accent:#6AA8F5;
  --accent-deep:#8FC0FF;
  --on-accent:#0F2233;
  --field-line:#46637F;
  --m:clamp(20px,3vw,40px);
  --gap:20px;
  --sec:clamp(110px,13vw,190px);
  --disp:'Imbue','Times New Roman',serif;
  --text:'Albert Sans',-apple-system,'Segoe UI',sans-serif;
  --step-small:clamp(0.8125rem,0.79rem + 0.1vw,0.875rem);
  --step-body:clamp(1.0625rem,1rem + 0.25vw,1.1875rem);
  --step-lead:clamp(1.25rem,1rem + 1.1vw,2.25rem);
  --step-head:clamp(2rem,1.3rem + 3.2vw,4rem);
  --step-hero:clamp(3rem,1.6rem + 5.6vw,7.5rem);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);scroll-padding-top:24px}
body{font-family:var(--text);font-size:var(--step-body);line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
p{max-width:62ch}
h1,h2{font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:-0.01em;line-height:.92}
h3,h4{font-family:var(--text);font-weight:500;line-height:1.25}
h3{font-size:var(--step-lead)}
h4{font-size:var(--step-body)}
.muted{color:var(--muted)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
::selection{background:var(--accent);color:var(--on-accent)}

/* grid */
.g{display:grid;grid-template-columns:repeat(12,1fr);gap:0 var(--gap);padding-left:var(--m);padding-right:var(--m)}
.sec{padding-top:var(--sec)}
.sec h2{font-size:var(--step-head);grid-column:1/11;margin-bottom:28px}
.intro{grid-column:1/8;color:var(--ink);margin-bottom:56px;font-size:var(--step-body)}
.c-l{grid-column:1/6}
.c-r{grid-column:7/13}
.c-wide{grid-column:1/13}

/* buttons and links: one shape, square corners */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;background:var(--accent);color:var(--on-accent);text-decoration:none;font:500 var(--step-small) var(--text);border:0;cursor:pointer;transition:background-color .2s,transform .2s var(--ease)}
.btn:hover{background:var(--accent-deep);transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn[disabled]{opacity:.7;cursor:progress;transform:none}
.tlink{font-weight:500;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;transition:color .2s,text-underline-offset .2s}
.tlink:hover{color:#fff;text-underline-offset:8px}
.actions{display:flex;flex-wrap:wrap;gap:16px 26px;align-items:center;margin-top:30px}

/* navigation */
.nav{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:26px var(--m)}
.nav-l{display:flex;align-items:center;gap:34px}
.nav-l img{height:28px;width:auto}
.links{display:flex;gap:26px;font-size:15px;font-weight:500}
.links a{text-decoration:none;color:var(--ink);transition:color .2s}
.links a:hover,.links a[aria-current]{color:#fff;text-decoration:underline;text-underline-offset:6px}
.nav-r{display:flex;align-items:center;gap:16px}
.menu-word{display:none;background:none;border:0;color:var(--ink);font:500 15px var(--text);cursor:pointer;min-height:44px;padding:0 4px}

/* page hero: the headline leads */
.phero{min-height:min(84svh,860px);display:flex;flex-direction:column}
.phero .g{margin-top:auto;padding-bottom:56px;align-items:end;padding-top:12svh}
.phero h1{grid-column:1/10;font-size:var(--step-hero);line-height:.86}
.phero .side{grid-column:10/13;padding-bottom:12px}
.phero .side p{color:var(--ink)}
.phero .side p+p{margin-top:12px}
.phero .lead-row{grid-column:1/8;margin-top:32px;font-size:clamp(1.125rem,1rem + .5vw,1.5rem);line-height:1.4}
.phero .lead-row p{max-width:46ch}
.checks{list-style:none;display:grid;gap:8px;margin-top:18px}
.checks li{position:relative;padding-left:22px;color:var(--ink)}
.checks li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;background:var(--accent)}

/* facts row */
.facts{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:28px var(--gap);grid-column:1/13;padding-top:48px}
.facts b{display:block;font-weight:500;font-size:var(--step-lead);line-height:1.2;margin-bottom:6px}
.facts span{color:var(--muted)}

/* panel: one step lighter */
.panel{background:var(--surface);margin:var(--sec) 20px 0;padding:clamp(40px,5vw,72px) clamp(22px,4vw,56px)}
.panel .g{padding:0}

/* term lists */
.terms{display:grid;grid-template-columns:repeat(2,1fr);gap:40px 56px}
.terms h4,.terms dt{font-weight:500;margin-bottom:6px}
.terms p,.terms dd{color:var(--ink)}
.terms.one{grid-template-columns:1fr;gap:26px}
.terms .key h4::before{content:"";display:inline-block;width:9px;height:9px;background:var(--accent);margin-right:10px;vertical-align:.12em}

/* two-ended rows */
.rows{list-style:none}
.rows li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;min-height:52px;padding:12px 0}
.rows li span:first-child{font-size:clamp(1.125rem,1rem + .4vw,1.375rem)}
.rows li span:last-child{color:var(--muted);font-size:var(--step-small);white-space:nowrap;text-align:right}
.rows li.strong span{color:var(--ink)}

/* ordered steps: order shown by position */
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:40px var(--gap);grid-column:1/13}
.steps li{padding-top:22px;border-top:4px solid var(--accent)} /* taste-skill-ignore: a filled bar, not a hairline */
.steps h3{font-size:var(--step-lead);margin-bottom:10px}
.steps p{color:var(--ink)}

/* quotations */
.quotes{grid-column:1/13;columns:2;column-gap:56px}
.quotes figure{break-inside:avoid;margin:0 0 48px}
.quotes blockquote{margin-bottom:12px}
.quotes figcaption{font-size:var(--step-small);color:var(--muted)}
.statement{font-size:clamp(1.125rem,1rem + .5vw,1.5rem);line-height:1.4;max-width:48ch}

/* figures */
.figs{grid-column:1/13;display:grid;grid-template-columns:1.45fr 1fr;gap:var(--gap);align-items:end}
.figs figure{margin:0}
.figs img{width:100%;aspect-ratio:3/4;object-fit:cover}
.figs figcaption,.cap{margin-top:12px;font-size:var(--step-small);color:var(--muted)}
.diagram{grid-column:1/13;margin-top:64px}
.diagram .scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.diagram svg{min-width:640px;width:100%;height:auto}
.diagram h3{margin-bottom:18px}

/* thermal trio */
.trio{grid-column:1/13;display:grid;grid-template-columns:repeat(3,1fr);gap:40px var(--gap);margin-top:24px}
.trio figure{margin:0}
.trio img{width:100%;aspect-ratio:4/3;object-fit:cover}
.trio h4{margin:16px 0 6px}
.trio p{color:var(--ink)}

/* faq */
.faq{grid-column:1/10;list-style:none}
.faq details{padding:6px 0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;align-items:baseline;min-height:56px;padding:12px 0;font-size:clamp(1.125rem,1rem + .4vw,1.375rem);transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:1.4em;line-height:1;transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:#fff}
.faq details p{color:var(--ink);padding:0 0 20px;max-width:64ch}
.faq details[open] p{animation:rise .4s var(--ease)}

/* contact and form */
.contact .g{align-items:start}
.contact h2{grid-column:1/13}
.contact .info{grid-column:1/5}
.contact .info p{color:var(--ink);margin-bottom:28px}
.contact dl{display:grid;gap:16px}
.contact dt{color:var(--muted);font-size:var(--step-small)}
.contact dd a{text-decoration:none}
.contact dd a:hover{text-decoration:underline}
.form{grid-column:6/13;background:var(--surface);padding:clamp(24px,3.4vw,44px)}
.form h3{margin-bottom:6px}
.form .sub{color:var(--muted);margin-bottom:24px}
.field{margin-bottom:18px}
.field label{display:block;font-weight:500;margin-bottom:8px;font-size:var(--step-small)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;background:var(--bg);color:var(--ink);border:1px solid var(--field-line);border-radius:0;font:inherit;font-size:16px}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23EEF2F6' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px}
.form .files{color:var(--muted);font-size:var(--step-small);margin:6px 0 22px}
.form .files a{color:var(--ink)}
.form .btn{width:100%;min-height:52px;font-size:var(--step-body)}
.form .note{color:var(--muted);font-size:var(--step-small);margin-top:14px;text-align:center;max-width:none}
.hp{position:absolute;left:-9999px}

/* closing call */
.close{padding:28svh var(--m) 18svh}
.close .say{font-size:var(--step-lead);line-height:1.25;max-width:34ch}
.close .reach{margin-top:26px;color:var(--muted)}
.close .reach a{color:var(--ink)}

/* prose (privacy) */
.prose{grid-column:1/9}
.prose h2{font-size:var(--step-head);margin-bottom:12px}
.prose h3{margin:48px 0 12px}
.prose p,.prose ul{margin-bottom:16px;color:var(--ink)}
.prose ul{padding-left:22px}
.prose li{margin-bottom:6px}
.prose a{color:var(--ink)}

/* footer: links, then the logo */
.foot{color:#fff;background:var(--surface);padding:40px var(--m) 48px;margin-top:var(--sec)}
.foot-top{display:flex;justify-content:space-between;gap:30px}
.foot-top ul{list-style:none;display:grid;gap:6px}
.foot-top a{text-decoration:none}
.foot-top a:hover{text-decoration:underline;text-underline-offset:5px}
.foot-top .r{text-align:right}
.foot-name{margin-top:clamp(80px,10vw,140px)}
.foot-logo{width:min(520px,72vw);height:auto}
.foot-name .legal{margin-top:22px;font-size:1rem;max-width:62ch;color:#fff}
.close + .foot{margin-top:0}


/* motion */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.js [data-reveal].is-in{opacity:1;transform:none}
.trio img,.figs img{transition:transform .6s var(--ease)}
.trio figure:hover img,.figs figure:hover img{transform:scale(1.03)}
.trio figure,.figs figure{overflow:hidden}

@media (max-width:900px){
  .links{display:none}
  .menu-word{display:block}
  .nav-l{gap:14px}
  .nav.open .links{display:flex;position:absolute;top:84px;left:0;right:0;flex-direction:column;gap:0;background:var(--surface);padding:8px var(--m) 16px}
  .nav.open .links a{padding:12px 0;font-size:17px}
  .nav-r .btn{padding:0 14px}

  .g{display:block}
  .phero{min-height:auto}
  .phero .g{padding-top:14svh;padding-bottom:40px}
  .phero h1{font-size:clamp(3rem,13vw,5.5rem);margin-bottom:24px}
  .phero .lead-row{margin-top:0;margin-bottom:24px}
  .intro{margin-bottom:40px}
  .facts{grid-template-columns:1fr 1fr;padding-top:24px}
  .c-r,.contact .info{margin-top:44px}
  .contact .info{margin-top:0;margin-bottom:40px}
  .terms{grid-template-columns:1fr;gap:28px}
  .steps{grid-template-columns:1fr;gap:32px}
  .quotes{columns:1}
  .figs{grid-template-columns:1.45fr 1fr;gap:10px}
  .trio{grid-template-columns:1fr;gap:44px}
  .panel{margin:var(--sec) 10px 0}
  .rows li{flex-wrap:wrap;gap:2px 20px}
  .foot-top{flex-direction:column;gap:22px}
  .foot-top .r{text-align:left}
  .foot-name{margin-top:64px}
  .close{padding:18svh var(--m) 12svh}
}
@media (max-width:560px){
  .facts{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js [data-reveal]{opacity:1;transform:none}
}

/* case study links and steps with smaller titles */
.hub{display:block;text-decoration:none;padding:4px 0}
.hub h3{margin-bottom:12px;transition:color .2s}
.hub p{margin-bottom:12px}
.hub:hover h3{color:#fff}
.steps h4{font-size:var(--step-lead);margin-bottom:10px;line-height:1.25}
@media (max-width:900px){.hub + .hub{margin-top:56px}.figs.c-r{margin-top:32px}}

.diagram .hint{display:none}
@media (max-width:700px){.diagram .hint{display:block;font-size:var(--step-small);color:var(--muted);margin-bottom:10px}}
.phero h1{grid-row:1}
.phero .lead-row{grid-row:2}
.phero .side{grid-row:1/3;align-self:end}
.phero .facts{grid-row:3}

/* supplied drawings: in the flow, never over text */
.drawing{margin:0}
.drawing img{display:block;width:100%;max-width:880px;height:auto}
.panel .drawing img{max-width:480px}
.drawing figcaption{max-width:62ch}
