/*
 * Lake Electrical — design system and block layout.
 *
 * Part one is the concept's stylesheet, values unchanged: tokens, type scale,
 * buttons, and the components the design names (.hdr, .strip/.exp, .wy, .steps,
 * .zz, .gtile, .slot, .faq, .acc, .tok, .field, .ft).
 *
 * Part two turns the inline styles the concept carried on each section into
 * block classes, same numbers, so a section rendered by an ACF block lands
 * pixel-identical to the .dc.html it came from.
 *
 * Part three is the responsive layer. The concept was drawn desktop-first at
 * 1320px and never had breakpoints written; these are ours.
 *
 * @package lake
 */

@import url("fonts.css");

/* ==========================================================================
   1. Design system — from the concept
   ========================================================================== */

:root{
  --bg:#F4F7F9; --bg2:#EAF1F5; --bg3:#ffffff;
  --ink:#0E1C2B; --body:#51677a; --mute:#5a7080; --dim:#7d92a1;
  --line:rgba(14,28,43,.1); --line2:rgba(14,28,43,.18);
  --accent:#22D3EE; --deep:#0B8FB0;
  --shadow:0 26px 54px -40px rgba(8,40,55,.5);
  --wrap:1320px;
  --gutter:40px;
}
*{box-sizing:border-box;}
body{margin:0;}
a{text-decoration:none;color:var(--deep);}
a:hover{color:var(--ink);}
::selection{background:#22D3EE;color:#06222B;}
img{max-width:100%;height:auto;}

@keyframes riseIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes lcFlow{to{stroke-dashoffset:-1000;}}
@keyframes lcPulse{0%,100%{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}}
@keyframes lcWire{0%{left:-200px}100%{left:100%}}

.page{background:var(--bg);color:var(--body);font-family:'Hanken Grotesk',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}

.h1{font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:clamp(38px,5vw,74px);line-height:.98;letter-spacing:-.02em;margin:0;color:var(--ink);text-transform:uppercase;}
.h2{font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:clamp(26px,3vw,42px);line-height:1.04;letter-spacing:-.018em;margin:0;color:var(--ink);text-transform:uppercase;}
.h3{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:19px;line-height:1.2;margin:0;color:var(--ink);}
.lede{font-size:18px;line-height:1.62;color:#4a6070;margin:0;}
.p{font-size:16.5px;line-height:1.68;color:var(--body);margin:0;}
.sm{font-size:14px;line-height:1.6;color:var(--mute);}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--deep);}

.btn{display:inline-flex;align-items:center;gap:9px;background:var(--accent);color:#06222B;padding:14px 24px;font-weight:600;font-size:15px;border-radius:8px;box-shadow:0 12px 26px -12px rgba(34,211,238,.7);transition:background .25s ease,box-shadow .25s ease,transform .25s ease;}
.btn:hover{background:#3fe0f5;box-shadow:0 0 30px rgba(34,211,238,.5);transform:translateY(-2px);color:#06222B;}
.btn-line{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line2);color:var(--ink);padding:13px 22px;font-weight:600;font-size:15px;border-radius:8px;transition:background .25s ease,border-color .25s ease;}
.btn-line:hover{background:rgba(34,211,238,.12);border-color:var(--accent);color:var(--ink);}
.btn-ghost{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:600;font-size:15px;font-family:'Space Grotesk',system-ui,sans-serif;}
.btn-ghost .ar{color:var(--deep);transition:transform .3s ease;display:inline-block;}
.btn-ghost:hover{color:var(--ink);}
.btn-ghost:hover .ar{transform:translateX(5px);}
.tel{font-family:'IBM Plex Mono',monospace;font-size:14px;letter-spacing:.04em;color:var(--ink);}

.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);}

/* header */
.hdr{position:sticky;top:0;z-index:60;background:rgba(244,247,249,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.hdr-wire{position:relative;height:2px;overflow:hidden;background:rgba(14,28,43,.06);}
.hdr-wire span{position:absolute;top:0;height:2px;width:160px;left:-200px;background:linear-gradient(90deg,transparent,#22D3EE,transparent);animation:lcWire 7s linear infinite;}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-top:17px;padding-bottom:17px;}
.nav{display:flex;gap:26px;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;align-items:center;}
.nav a{color:#51677a;transition:color .2s ease;}
.nav a:hover{color:var(--ink);}
.nav a.on{color:var(--ink);}
.navitem{position:relative;display:flex;align-items:center;}
.navitem>a::after{content:"";display:inline-block;width:4px;height:4px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:7px;opacity:.7;}
.drop{position:absolute;top:100%;left:-16px;padding-top:16px;min-width:280px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:70;}
.navitem:hover .drop,.navitem:focus-within .drop,.navitem.open .drop{opacity:1;visibility:visible;transform:none;}
.drop-in{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 30px 60px -34px rgba(8,40,55,.55);padding:8px;display:flex;flex-direction:column;overflow:hidden;}
.drop-in a{display:block;padding:10px 14px;border-radius:8px;color:#51677a;font-size:11.5px;letter-spacing:.06em;transition:color .18s ease,background .18s ease;}
.drop-in a:hover{color:var(--ink);background:var(--bg2);}
.drop-all{border-top:1px solid var(--line);margin-top:6px;padding-top:12px !important;color:var(--deep) !important;}

/* page bar */
.pagebar{border-bottom:1px solid var(--line);background:var(--bg2);}
.pagebar-in{padding-top:30px;padding-bottom:30px;display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;}
.pagebar h1{font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:22px;letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);margin:0;}
.crumb{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);}
.crumb a{color:var(--deep);}

/* expanding dark tile strip */
.strip{position:relative;display:flex;height:440px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.exp{flex:1;position:relative;overflow:hidden;transition:flex .55s cubic-bezier(.2,.7,.2,1);min-width:0;border-right:1px solid rgba(0,0,0,.5);}
.exp:last-child{border-right:0;}
.exp:hover{flex:2.4;}
.exp .exp-img{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(.55) brightness(.45);transition:filter .6s ease,transform 1s ease;transform:scale(1.05);}
.exp:hover .exp-img{filter:grayscale(0) brightness(.9);transform:scale(1);}
.exp .veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,15,24,.94),rgba(7,15,24,.15));}
.exp .exp-top{position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);z-index:3;transform:scaleX(0);transform-origin:left;transition:transform .5s ease;}
.exp:hover .exp-top{transform:scaleX(1);}
.exp .exp-body{position:absolute;left:20px;right:20px;bottom:22px;z-index:2;}
.exp .exp-kick{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--accent);}
.exp .exp-t{font-family:'Archivo',system-ui,sans-serif;font-weight:700;font-size:21px;color:#fff;text-transform:uppercase;margin-top:6px;line-height:1.05;}
.exp .exp-deep{font-size:13.5px;color:#a9c2cb;margin-top:8px;line-height:1.45;max-width:250px;opacity:0;transform:translateY(8px);transition:opacity .5s ease .1s,transform .5s ease .1s;}
.exp:hover .exp-deep{opacity:1;transform:none;}

/* numbered checklist card */
.wy{overflow:hidden;}
.wy.wide{display:grid;grid-template-columns:1fr 1fr;}
.wy.wide .wy-head{grid-column:1/-1;}
.wy.wide .wy-item:nth-of-type(even){border-left:1px solid rgba(14,28,43,.07);}
.wy-head{padding:20px 26px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);}
.wy-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px rgba(34,211,238,.7);animation:lcPulse 2.6s ease-in-out infinite;}
.wy-item{display:grid;grid-template-columns:34px 1fr;gap:18px;align-items:start;padding:20px 26px;border-top:1px solid rgba(14,28,43,.07);transition:background .25s ease;}
.wy-item:first-of-type{border-top:0;}
.wy-item:hover{background:rgba(34,211,238,.06);}
.wy-num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--deep);border:1px solid rgba(34,211,238,.45);border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;transition:all .25s ease;}
.wy-item:hover .wy-num{color:#06222B;background:var(--accent);border-color:var(--accent);box-shadow:0 0 16px rgba(34,211,238,.45);}
.wy-t{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:17px;color:var(--ink);margin-bottom:5px;}

/* process steps */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.steps svg{position:absolute;top:17px;left:0;width:100%;height:4px;pointer-events:none;}
.pnum{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid rgba(34,211,238,.5);background:var(--bg);color:var(--deep);font-family:'IBM Plex Mono',monospace;font-size:13px;margin-bottom:20px;transition:all .3s ease;}
.pstep{position:relative;}
.pstep:hover .pnum{color:#06222B;background:var(--accent);border-color:var(--accent);box-shadow:0 0 18px rgba(34,211,238,.45);}

/* zigzag feature row */
.zz{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:440px;border-top:1px solid var(--line);}
.zz-top{position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);z-index:4;transform:scaleX(0);transform-origin:left;transition:transform .6s ease;}
.zz:hover .zz-top{transform:scaleX(1);}
.zz-media{position:relative;overflow:hidden;}
.zz-img{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(.45) brightness(.72);transform:scale(1.05);transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .7s ease;}
.zz:hover .zz-img{transform:scale(1.1);filter:grayscale(0) brightness(.9);}
.zz-text{padding:58px 7vw 58px 56px;display:flex;flex-direction:column;justify-content:center;}
.zz-text.right{padding:58px 56px 58px 7vw;}

/* gallery tile */
.gtile{position:relative;border-radius:12px;overflow:hidden;display:block;color:inherit;box-shadow:0 24px 50px -34px rgba(8,40,55,.5);}
.gimg{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(.5) brightness(.6);transform:scale(1.05);transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s ease;}
.gtile:hover .gimg{transform:scale(1.12);filter:grayscale(0) brightness(.92);}
.gveil{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,15,24,.92),rgba(7,15,24,.05));}
.gtop{position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s ease;}
.gtile:hover .gtop{transform:scaleX(1);}
.gbody{position:absolute;left:20px;right:20px;bottom:20px;}
.gkick{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;color:var(--accent);}
.gt{font-family:'Archivo',system-ui,sans-serif;font-weight:700;font-size:20px;color:#fff;text-transform:uppercase;margin-top:5px;line-height:1.1;}
.gcap{font-size:13.5px;color:#bcd0d8;margin-top:8px;line-height:1.45;transform:translateY(8px);opacity:.85;transition:transform .4s ease,opacity .4s ease;}
.gtile:hover .gcap{transform:none;opacity:1;}

/* image slot placeholder */
.slot{position:relative;border-radius:12px;overflow:hidden;background:repeating-linear-gradient(135deg,rgba(14,28,43,.03) 0 12px,rgba(14,28,43,.06) 12px 24px);border:1px dashed var(--line2);}
.slot.img{border:1px solid var(--line);background-size:cover;background-position:center;}
.slot::after{content:attr(data-placeholder);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;color:var(--dim);text-align:center;padding:0 16px;}
.slot.img::after{left:auto;top:auto;right:12px;bottom:12px;transform:none;color:#dbe7ec;background:rgba(7,15,24,.7);padding:5px 9px;border-radius:5px;max-width:70%;}
.slot:not([data-placeholder])::after{content:none;}

/* faq */
details.faq{border-bottom:1px solid rgba(14,28,43,.14);}
details.faq>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:18.5px;color:var(--ink);}
details.faq>summary::-webkit-details-marker{display:none;}
details.faq p{font-size:15.5px;line-height:1.65;color:var(--body);margin:0;padding:0 0 24px;max-width:760px;}
details.faq[open] .pl{transform:rotate(45deg);}
.pl{flex:none;font-family:'IBM Plex Mono',monospace;font-size:22px;color:var(--deep);transition:transform .3s ease;}

/* accreditation */
.acc{border:1px solid var(--line);border-radius:12px;padding:24px 22px;display:flex;flex-direction:column;gap:14px;background:#fff;transition:border-color .3s ease,background .3s ease;}
.acc:hover{border-color:var(--accent);background:var(--bg2);}
.acc .tick{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid rgba(34,211,238,.5);border-radius:8px;color:var(--deep);font-size:14px;}
.acc-t{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:18px;color:var(--ink);}
.acc-s{font-size:13px;margin-top:4px;}

/* token — an unresolved content query from the design, left visible on purpose */
.tok{display:block;border:1px dashed var(--line2);background:rgba(34,211,238,.05);border-radius:10px;padding:14px 16px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;line-height:1.6;color:var(--mute);}

/* form */
.field{width:100%;background:var(--bg);border:1px solid rgba(14,28,43,.14);border-radius:8px;padding:14px;color:var(--ink);font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:15px;}
.field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,211,238,.15);}

/* footer */
.ft{background:#0B1722;color:#8ba3ad;}
.ft-in{padding-top:70px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:48px;}
.ft .lbl{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#4f6671;margin-bottom:18px;}
.ft .col{display:flex;flex-direction:column;gap:11px;font-size:14.5px;}
.ft a{color:#8ba3ad;transition:color .2s ease;}
.ft a:hover{color:#fff;}
.ft-base{margin-top:54px;padding-top:28px;padding-bottom:28px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}

/* ==========================================================================
   2. Block layer — the concept's per-section inline styles, as classes
   ========================================================================== */

.lk-section{border-top:1px solid var(--line);}
.lk-section--bg2{background:var(--bg2);}
.lk-section--bg3{background:var(--bg3);}
.lk-section--flush{border-top:0;}

.lk-pad{padding-top:78px;padding-bottom:78px;}
.lk-measure{max-width:960px;}
.lk-rail{max-width:1120px;}

/* Heading + note row: heading left, content query right */
.lk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;}
.lk-head__aside{max-width:440px;}
.lk-head--wide{gap:48px;margin-bottom:38px;}
.lk-head--wide .h2{max-width:640px;}
.lk-head--wide .lk-head__aside{max-width:420px;}
.lk-head--wide .lk-head__aside>p{font-size:15.5px;line-height:1.68;color:var(--body);margin:0 0 12px;}
.lk-head--wide .lk-head__aside>p:last-child{margin-bottom:0;}

/* The accent word the hero heading lifts out */
.lk-accent{color:#15B6D6;}

/* Emphasis inside body copy reads as ink, not heavier body grey */
.lk-prose__body strong,.lk-split__body strong,.lk-media__body strong,
.lk-head__aside strong,.lk-contact__body strong,.lk-rows__intro strong,
.lk-related__body strong,details.faq strong,.lk-accred__intro strong,
.lk-hero__intro strong,.lk-list__intro strong{color:var(--ink);font-weight:600;}

.lk-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;}

/*
 * The concept wraps its content queries differently in each section, and the
 * section's height depends on which. These restate each one.
 */
.lk-notes{margin-top:20px;display:flex;flex-direction:column;gap:12px;}
.lk-list .lk-notes{margin-top:18px;}
.lk-accred .lk-notes{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;max-width:none;}
/* In these two the query sits straight after the copy, with no wrapper at all. */
.lk-media .lk-notes,.lk-split .lk-notes{display:contents;}

/* Inline unresolved phone/address reference inside body copy */
.lk-ref{font-family:'IBM Plex Mono',monospace;font-size:.86em;color:var(--deep);border-bottom:1px dashed var(--line2);}

/* --- hero ---------------------------------------------------------------- */
.lk-hero{position:relative;}
/*
 * The concept bottom-aligns these two columns, which was composed against the
 * home page, where the H1 is the taller of the two. On the other nineteen pages
 * the copy column is taller — up to 825px on Contact — so a bottom-aligned H1
 * ended up sitting under as much as 746px of empty space. Both columns start on
 * the same top edge instead, and the copy simply runs longer where there is
 * more of it. Section heights are unchanged either way: the row is as tall as
 * its taller column.
 */
.lk-hero__in{padding-top:60px;padding-bottom:34px;display:flex;justify-content:space-between;align-items:flex-start;gap:44px;flex-wrap:wrap;}
.lk-hero__h{max-width:800px;animation:riseIn .8s ease both;}
.lk-hero__aside{max-width:360px;animation:riseIn .8s ease both;animation-delay:.15s;}
.lk-hero__lede{margin-bottom:14px;}
.lk-hero__intro>p{font-size:15.5px;line-height:1.68;color:var(--body);margin:0 0 14px;}
.lk-hero__intro>p:last-child{margin-bottom:0;}
.lk-hero__actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:26px;}
.lk-hero__note{margin-top:20px;}
.lk-hero__rail{position:absolute;top:0;left:0;width:100%;height:20px;pointer-events:none;z-index:5;}
.lk-flow{filter:drop-shadow(0 0 5px #22D3EE);animation:lcFlow 6s linear infinite;}

/* --- prose --------------------------------------------------------------- */
.lk-prose__body{margin-top:20px;}
.lk-prose__body>*{max-width:780px;}
.lk-prose__body>p{font-size:16.5px;line-height:1.68;color:var(--body);margin:0 0 15px;}
.lk-prose__body>p:first-child{font-size:18px;line-height:1.62;color:#4a6070;}
.lk-prose__body>p:last-child{margin-bottom:0;}
.lk-prose__body ul,.lk-prose__body ol{margin:0 0 15px;padding-left:22px;font-size:16.5px;line-height:1.68;}
.lk-prose__body li{margin-bottom:7px;}
.lk-prose .lk-notes{max-width:780px;}

/* --- split (heading in the narrow rail, body beside it) ------------------ */
.lk-split__in{display:grid;grid-template-columns:.8fr 1.45fr;gap:60px;align-items:start;}
.lk-split .h2{font-size:clamp(24px,2.5vw,34px);}
/* The trailing margin is the concept's, and the section height depends on it. */
.lk-split__body>p{font-size:16.5px;line-height:1.68;color:var(--body);margin:0 0 15px;break-inside:avoid;}
.lk-split__body ul,.lk-split__body ol{margin:0 0 15px;padding-left:22px;font-size:16.5px;line-height:1.68;}
.lk-split__body--2{columns:2;column-gap:46px;}

/* --- media and text ------------------------------------------------------ */
.lk-media__in{align-items:stretch;}
.lk-media__text{display:flex;flex-direction:column;justify-content:center;}
.lk-media__body>p{font-size:16.5px;line-height:1.68;color:var(--body);margin:15px 0 0;}
.lk-media__body>p:first-child{margin-top:20px;}
.lk-media__body ul,.lk-media__body ol{margin:15px 0 0;padding-left:22px;font-size:16.5px;line-height:1.68;}
.lk-media__slot{min-height:420px;}
.lk-media--right .lk-media__text{order:1;}
.lk-media--right .lk-media__slot{order:2;}
.lk-media--left .lk-media__text{order:2;}
.lk-media--left .lk-media__slot{order:1;}

/* --- checklist ----------------------------------------------------------- */
.lk-list__h{max-width:760px;margin-bottom:34px;}
.lk-list__in{display:grid;grid-template-columns:.85fr 1.35fr;gap:60px;align-items:start;}
.lk-list__aside .h2{font-size:clamp(24px,2.5vw,34px);}
.lk-list__intro{margin-top:18px;}

/* --- process steps ------------------------------------------------------- */
.lk-steps{padding-top:80px;padding-bottom:80px;}
.lk-steps__h{margin-bottom:44px;}
.lk-steps__t{margin-bottom:8px;}

/* --- accent-topped cards ------------------------------------------------- */
.lk-cards__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 40px;}
.lk-cards__grid--3{grid-template-columns:repeat(3,1fr);}
.lk-card{border-top:2px solid var(--accent);padding-top:20px;}
.lk-card .h3{margin-bottom:10px;}

/* --- titled rows --------------------------------------------------------- */
.lk-rows .h2{max-width:700px;}
.lk-rows__intro{margin-top:18px;max-width:720px;}
.lk-rows__intro>p{font-size:16.5px;line-height:1.68;color:var(--body);margin:0 0 15px;}
.lk-rows__intro>p:last-child{margin-bottom:0;}
.lk-rows__intro .btn-ghost{font-size:14.5px;}
.lk-rows__list{margin-top:30px;border-bottom:1px solid var(--line);}
.lk-rows__row{display:grid;grid-template-columns:.42fr 1fr;gap:40px;padding:24px 0;border-top:1px solid var(--line);align-items:start;}
.lk-rows__row .h3{font-size:18px;}
.lk-rows__row .p{font-size:15.5px;max-width:640px;}
.lk-rows__row .btn-ghost{font-size:14.5px;}

/* --- gallery ------------------------------------------------------------- */
.lk-gallery{padding-top:80px;padding-bottom:80px;}
.lk-gallery .lk-head{margin-bottom:26px;}
.lk-gallery__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;}
.lk-gallery__lead{height:380px;}
.lk-gallery__stack{display:grid;grid-template-rows:1fr 1fr;gap:18px;}
.lk-gallery__grid--even{grid-template-columns:repeat(2,1fr);}
.lk-gallery__grid--even .gtile{height:300px;}
.lk-gallery__grid--single{grid-template-columns:1fr;}
.lk-gallery__grid--single .gtile{height:380px;}

/* --- testimonials -------------------------------------------------------- */
.lk-quotes{padding-top:74px;padding-bottom:74px;}
.lk-quotes .lk-head{margin-bottom:24px;}
.lk-quote{margin:0;padding:24px 26px;display:flex;flex-direction:column;gap:10px;}
.lk-quote__stars{color:#F5B400;font-size:14px;letter-spacing:2px;}
.lk-quote blockquote{margin:0;font-size:15px;}
.lk-quote figcaption{font-size:12.5px;}
.lk-quote__org{color:var(--dim);}

/* --- accreditations ------------------------------------------------------ */
.lk-accred__intro>p{font-size:16.5px;line-height:1.68;color:var(--body);margin:18px 0 0;max-width:780px;}
.lk-accred__grid{margin-top:32px;gap:18px;}

/* --- faq ----------------------------------------------------------------- */
.lk-faq{padding-top:84px;padding-bottom:84px;}
.lk-faq__in{display:grid;grid-template-columns:.7fr 1.3fr;gap:56px;align-items:start;}
.lk-faq__list{border-top:1px solid rgba(14,28,43,.14);}

/* --- related ------------------------------------------------------------- */
.lk-related{padding-top:56px;padding-bottom:56px;}
.lk-related__card{padding:30px 34px;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;}
.lk-related__card .h2{font-size:24px;}
.lk-related__body{margin-top:12px;}
.lk-related__body>p{font-size:15.5px;line-height:1.68;color:var(--body);margin:0 0 12px;}
.lk-related__body>p:last-child{margin-bottom:0;}
.lk-related__links{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;}

/* --- contact ------------------------------------------------------------- */
.lk-contact__in{padding-top:90px;padding-bottom:90px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.lk-contact .h2{font-size:clamp(30px,3.6vw,50px);}
.lk-contact__lede{margin-top:18px;font-size:18px;line-height:1.62;color:#4a6070;max-width:480px;}
.lk-contact__body>p{font-size:16.5px;line-height:1.68;color:var(--body);margin:14px 0 0;max-width:480px;}
.lk-contact .lk-notes{margin-top:22px;max-width:520px;}
.lk-form{padding:32px;}
.lk-form__label{margin-bottom:18px;}
.lk-form__pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.lk-form .field{margin-bottom:14px;}
.lk-form__pair .field{margin-bottom:0;}
.lk-form textarea.field{resize:vertical;margin-bottom:18px;}
.lk-form .btn{justify-content:center;width:100%;}
.lk-form__foot{margin-top:14px;text-align:center;}

/* Gravity Forms, dressed as the concept's form card */
.lk-form .gform_wrapper{margin:0;}
.lk-form .gform_wrapper form{margin:0;}
/*
 * Gravity Forms ships its own field metrics, so the concept's are restated at
 * higher weight. The numbers are the design's: 14px padding, 15px type, a 14px
 * gutter, and a three-row message box.
 */
/*
 * Gravity Forms lays fields out on a twelve-column grid and spans each one, so
 * that grid is left alone and only the gutter is restated: 14px, as designed.
 * Name and phone span six each, the rest span twelve.
 */
.lk-form .gform_wrapper .gform_fields{column-gap:14px !important;row-gap:14px !important;}
.lk-form .gform_wrapper .gfield{min-width:0;padding:0 !important;margin:0 !important;}
/*
 * The concept's form is placeholder-only. Keeping that look without dropping the
 * label would leave the field unnamed to a screen reader, so the label stays in
 * the document and is taken out of the visual flow instead of deleted.
 */
.lk-form .gform_wrapper .gfield_label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
.lk-form .gform_wrapper .gfield_required{color:var(--deep);}
.lk-form .gform_wrapper input[type=text],
.lk-form .gform_wrapper input[type=email],
.lk-form .gform_wrapper input[type=tel],
.lk-form .gform_wrapper textarea{width:100% !important;background:var(--bg) !important;border:1px solid rgba(14,28,43,.14) !important;border-radius:8px !important;padding:14px !important;color:var(--ink);font-family:'Hanken Grotesk',system-ui,sans-serif !important;font-size:15px !important;line-height:normal !important;margin:0 !important;}
/*
 * Left inline-block, as the concept's textarea is: the descender under it is
 * part of the card's height in the design, so removing it would shorten the
 * section by five pixels.
 */
.lk-form .gform_wrapper textarea{resize:vertical;height:90px !important;min-height:90px;}
.lk-form .gform_wrapper input:focus,.lk-form .gform_wrapper textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,211,238,.15);}
.lk-form .gform_wrapper .gform_footer{margin:18px 0 0 !important;padding:0 !important;display:block !important;}
.lk-form .gform_wrapper .gform_footer input{margin-bottom:0 !important;}
/*
 * inline-flex, not block: the concept's submit is an anchor sitting in a line
 * box, and that line box is part of the card's height. Matching the display
 * mode reproduces it without a magic number.
 */
.lk-form .gform_wrapper .gform_button{display:inline-flex;align-items:center;justify-content:center;width:100%;background:var(--accent);color:#06222B;padding:14px 24px !important;font-weight:600;font-size:15px !important;line-height:21px;border:0;border-radius:8px;box-shadow:0 12px 26px -12px rgba(34,211,238,.7);cursor:pointer;font-family:'Hanken Grotesk',system-ui,sans-serif;transition:background .25s ease,box-shadow .25s ease,transform .25s ease;}
.lk-form .gform_wrapper .gform_button:hover{background:#3fe0f5;box-shadow:0 0 30px rgba(34,211,238,.5);transform:translateY(-2px);}
.lk-form .gform_wrapper .gfield_description,.lk-form .gform_wrapper .gform_validation_errors,.lk-form .gform_wrapper .validation_message{font-size:13px;line-height:1.5;}
.lk-form .gform_wrapper .validation_message{color:#B4232A;margin-top:6px;}
.lk-form .gform_wrapper .gform_validation_errors{border:1px solid rgba(180,35,42,.3);background:rgba(180,35,42,.06);border-radius:8px;padding:12px 14px;margin-bottom:16px;color:#B4232A;}
.lk-form .gform_wrapper .gform_validation_errors h2{font-size:14px;margin:0;font-family:'Hanken Grotesk',system-ui,sans-serif;text-transform:none;letter-spacing:0;color:#B4232A;}
.lk-form .gform_confirmation_message{font-size:16px;line-height:1.6;color:var(--ink);}
.lk-form .gform_wrapper .gform_required_legend{display:none;}

/* --- header and footer chrome ------------------------------------------- */
.lk-logo{display:flex;align-items:center;}
.lk-logo img{height:30px;width:auto;display:block;}
.lk-hdr__cta{padding:11px 18px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;}
.lk-burger{display:none;width:42px;height:38px;border:1px solid var(--line2);border-radius:8px;background:transparent;cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:4px;}
.lk-burger span{display:block;width:18px;height:1.5px;background:var(--ink);transition:transform .25s ease,opacity .25s ease;}
.lk-burger[aria-expanded=true] span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.lk-burger[aria-expanded=true] span:nth-child(2){opacity:0;}
.lk-burger[aria-expanded=true] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}
.lk-mnav{display:none;border-top:1px solid var(--line);background:var(--bg2);}
.lk-mnav.open{display:block;}
.lk-mnav__in{padding-top:18px;padding-bottom:24px;display:flex;flex-direction:column;}
/* :not(.btn) so the drawer's quote button keeps its own padding and colour. */
.lk-mnav a:not(.btn){display:block;padding:12px 0;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);}
.lk-mnav__sub{padding-left:16px;border-left:1px solid var(--line2);margin:6px 0 10px;}
.lk-mnav__sub a{border-bottom:0;padding:8px 0;color:#51677a;text-transform:none;letter-spacing:.04em;font-size:12px;}
.lk-mnav__foot{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:20px;}
.lk-mnav__foot a:not(.btn){border-bottom:0;padding:0;}

.lk-ft__brand{margin-bottom:18px;}
.lk-ft__brand img{height:30px;width:auto;display:block;filter:brightness(0) invert(1);}
.lk-ft__blurb{font-size:15px;line-height:1.6;color:#7e93a5;max-width:320px;margin:0;}
.lk-ft__nap{font-size:14.5px;line-height:1.7;}
.lk-ft__addr{color:#6f8a96;}
.lk-ft__tel{color:#fff;display:block;margin:8px 0;font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.04em;}
.lk-ft__hours{color:#6f8a96;font-size:13px;}
.lk-ft__link{display:inline-block;margin-top:14px;color:#22D3EE;font-size:13px;font-family:'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;}
.lk-ft__accred{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;color:#4f6671;}
.lk-ft__legal{display:flex;gap:22px;font-size:12.5px;color:#6f8a96;flex-wrap:wrap;}
.lk-ft__legal a{color:#6f8a96;}
.lk-ft .tok{border-color:rgba(255,255,255,.18);background:rgba(34,211,238,.06);color:#8ba3ad;}

/* --- editorial and utility --------------------------------------------- */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);color:#06222B;padding:12px 18px;border-radius:0 0 8px 0;font-weight:600;}
.skip:focus{left:0;}
.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal;}
:where(a,button,summary,input,textarea,select):focus-visible{outline:2px solid var(--deep);outline-offset:2px;}

/* Editor and archive furniture, in the same voice as the design */
.lk-empty{border:1px dashed var(--line2);border-radius:12px;padding:26px 24px;display:flex;flex-direction:column;gap:8px;background:rgba(34,211,238,.04);}
.lk-empty__tag{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);}
.lk-empty__msg{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:17px;color:var(--ink);}

.lk-entry{border-top:1px solid var(--line);padding:26px 0;display:grid;grid-template-columns:.32fr 1fr;gap:40px;align-items:start;}
.lk-entry__meta{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);}
.lk-entry__t{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:20px;color:var(--ink);margin:0 0 8px;}
.lk-pager{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px;}
.lk-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;border:1px solid var(--line2);border-radius:8px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--ink);}
.lk-pager .page-numbers.current{background:var(--accent);border-color:var(--accent);color:#06222B;}
.lk-search{display:flex;gap:12px;flex-wrap:wrap;max-width:520px;}
.lk-search .field{flex:1 1 220px;width:auto;}

/* Prose from the classic editor / core blocks inside a page */
.lk-content>*+*{margin-top:18px;}
.lk-content h2{font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:clamp(26px,3vw,42px);line-height:1.04;letter-spacing:-.018em;color:var(--ink);text-transform:uppercase;}
.lk-content h3{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:19px;color:var(--ink);}
.lk-content p,.lk-content li{font-size:16.5px;line-height:1.68;color:var(--body);}
.lk-content ul,.lk-content ol{padding-left:22px;}
.lk-content img{border-radius:12px;}
.lk-content blockquote{margin:0;padding-left:22px;border-left:2px solid var(--accent);}

/* Core alignment support */
.alignfull{width:100%;}
.alignwide{max-width:1120px;margin-left:auto;margin-right:auto;}
.aligncenter{display:block;margin-left:auto;margin-right:auto;}

/* WordPress admin bar must not hide behind the sticky header */
body.admin-bar .hdr{top:32px;}
@media screen and (max-width:782px){body.admin-bar .hdr{top:46px;}}

/* ==========================================================================
   3. Responsive — ours; the concept was drawn desktop-first at 1320px
   ========================================================================== */

@media (max-width:1180px){
  .lk-rows__row{grid-template-columns:.5fr 1fr;gap:32px;}
  .lk-faq__in{grid-template-columns:.8fr 1.2fr;gap:44px;}
  .lk-split__in{grid-template-columns:.9fr 1.35fr;gap:48px;}
  .lk-list__in{grid-template-columns:1fr 1.2fr;gap:44px;}
  .grid2{gap:40px;}
  .ft-in{gap:36px;}
}

@media (max-width:1024px){
  :root{--gutter:28px;}
  .nav{display:none;}
  .lk-burger{display:inline-flex;}
  .lk-hdr__cta{display:none;}
  .strip{height:380px;}
  .exp .exp-deep{opacity:1;transform:none;}
  .grid4{grid-template-columns:repeat(2,1fr);}
  .ft-in{grid-template-columns:1fr 1fr;}
  .lk-gallery__grid{grid-template-columns:1fr;}
  .lk-gallery__lead{height:320px;}
  .lk-gallery__stack{grid-template-rows:auto auto;}
  .lk-gallery__stack .gtile{height:240px;}
  .lk-related__card{grid-template-columns:1fr;gap:24px;}
  .lk-related__links{justify-content:flex-start;}
  .grid3{grid-template-columns:1fr;gap:16px;}
}

@media (max-width:860px){
  .lk-pad,.lk-steps,.lk-gallery,.lk-quotes,.lk-faq{padding-top:58px;padding-bottom:58px;}
  .lk-contact__in{padding-top:64px;padding-bottom:64px;}
  .lk-related{padding-top:40px;padding-bottom:40px;}
  .lk-split__in,.lk-list__in,.lk-faq__in,.lk-contact__in{grid-template-columns:1fr;gap:28px;}
  .grid2{grid-template-columns:1fr;gap:28px;}
  .wy.wide{grid-template-columns:1fr;}
  .wy.wide .wy-item:nth-of-type(even){border-left:0;}
  .steps{grid-template-columns:repeat(2,1fr);gap:32px 24px;}
  .steps svg{display:none;}
  .lk-cards__grid,.lk-cards__grid--3{grid-template-columns:1fr;gap:26px;}
  .lk-rows__row{grid-template-columns:1fr;gap:10px;}
  .lk-media__slot{min-height:280px;}
  /* The image leads on a narrow screen whichever side it was designed on. */
  .lk-media--left .lk-media__text,.lk-media--right .lk-media__text{order:2;}
  .lk-media--left .lk-media__slot,.lk-media--right .lk-media__slot{order:1;}
  .lk-hero__in{padding-top:40px;padding-bottom:28px;gap:24px;}
  .lk-hero__aside,.lk-hero__h{max-width:none;}
  .lk-entry{grid-template-columns:1fr;gap:10px;}
  .lk-form{padding:24px;}
  /* Every field takes the full width; the plugin's column spans go with it. */
  .lk-form .gform_wrapper .gfield{grid-column:1/-1 !important;}
  .lk-form__pair{grid-template-columns:1fr;}
  .lk-form__pair .field{margin-bottom:0;}
}

@media (max-width:620px){
  :root{--gutter:20px;}
  .strip{height:auto;flex-direction:column;}
  .exp{height:220px;border-right:0;border-bottom:1px solid rgba(0,0,0,.5);}
  .exp:last-child{border-bottom:0;}
  .exp:hover{flex:1;}
  .exp .exp-img{filter:grayscale(.2) brightness(.75);transform:none;}
  .grid4{grid-template-columns:1fr;}
  .ft-in{grid-template-columns:1fr;padding-top:52px;}
  .ft-base{margin-top:36px;}
  .steps{grid-template-columns:1fr;}
  .wy-item{padding:18px 20px;gap:14px;}
  .wy-head{padding:18px 20px;}
  .lk-related__card{padding:24px 22px;}
  details.faq>summary{font-size:17px;gap:14px;}
  .lk-gallery__grid--even{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  .hdr-wire span{display:none;}
}
