:root{
    --paper: var(--wp--preset--color--paper, oklch(0.986 0.002 250));
    --paper-2: var(--wp--preset--color--paper-2, oklch(0.966 0.004 250));
    --paper-3: var(--wp--preset--color--paper-3, oklch(0.938 0.006 250));
    --ink: var(--wp--preset--color--ink, oklch(0.325 0.058 252));
    --ink-2: var(--wp--preset--color--ink-2, oklch(0.385 0.060 252));
    --ink-soft: var(--wp--preset--color--ink-soft, oklch(0.470 0.034 252));
    --line:oklch(0.325 0.058 252 / 0.18);
    --line-strong:oklch(0.325 0.058 252 / 0.38);
    --clay: var(--wp--preset--color--clay, oklch(0.620 0.150 143));
    --clay-deep: var(--wp--preset--color--clay-deep, oklch(0.530 0.140 144));
    --clay-lite: var(--wp--preset--color--clay-lite, oklch(0.780 0.140 143));
    --fill:oklch(0.325 0.058 252 / 0.04);
    --serif:"Open Sans",system-ui,sans-serif;
    --sans: var(--wp--preset--font-family--sans, "Open Sans",system-ui,sans-serif);
    --hand:"Open Sans",cursive;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  html,body{margin:0;padding:0;}
  body{font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.55;}
  img{max-width:100%;display:block;}
  a{color:inherit;}
  em{font-style:normal;color:inherit;}

.cnt{max-width:1180px;margin:0 auto;padding:0 clamp(12px,2vw,24px);}
  .sec{padding:clamp(46px,6vw,86px) 0;}
  .sec.cr{background:var(--paper-2);}
  .sec.pa{background:var(--paper);}
  h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:700;line-height:1.08;letter-spacing:-.015em;}
  .ey{display:block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);}
  .ey.nl{color:var(--clay);}
  .lead{color:var(--ink-soft);font-size:clamp(15px,1.6vw,17px);max-width:60ch;}
  .muted{color:var(--ink-soft);}
  .ctr{text-align:center;margin-left:auto;margin-right:auto;}
  .ctr .lead{margin-left:auto;margin-right:auto;}
  .sh{margin-bottom:38px;}
  .sh h2{font-size:clamp(28px,4vw,44px);margin-top:10px;}
  .sh.ctr h2{margin-left:auto;margin-right:auto;}

  /* placeholders */
  .ph,[class*="phph"],.fphoto,.hphoto,.prodimg,.portph,.aportrait,.eqimg,.wkph,.review-thumb{
    position:relative;background:repeating-linear-gradient(135deg,var(--fill) 0 9px,transparent 9px 18px);
    border:1.5px dashed var(--line-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;
    text-align:center;color:var(--ink-soft);font-size:12px;line-height:1.4;padding:14px;overflow:hidden;
  }
  .ph .lbl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--paper);padding:4px 9px;border-radius:3px;border:1px solid var(--line);}
  .ph small,.fphoto small,.hphoto small{display:block;font-size:10.5px;opacity:.7;margin-top:6px;letter-spacing:.03em;}
  /* placeholder briefs — for client photo guidance */
  .ph-brief{text-align:center;padding:18px 16px;max-width:320px;}
  .ph-label{display:block;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);margin-bottom:8px;}
  .ph-title{display:block;font-size:14px;font-weight:800;color:var(--ink);margin-bottom:7px;line-height:1.3;}
  .ph-desc{font-size:12px;color:var(--ink-soft);line-height:1.55;}
  /* hero image */
  .hero-img{border-radius:14px;overflow:hidden;min-height:390px;}

  /* once one of these placeholder-styled containers holds a real photo, drop the dashed-border/padding chrome */
  .wkph:has(img),.portph:has(img),.prodimg:has(img),.aportrait:has(img),.hphoto:has(img),.eqimg:has(img){border:none;background:none;padding:0;}
  .wkph img,.portph img,.prodimg img,.aportrait img,.hphoto img,.eqimg img{width:100%;height:100%;object-fit:cover;display:block;}

  /* buttons */
  .btn{font-family:var(--sans);font-weight:700;font-size:14px;letter-spacing:.01em;border-radius:8px;padding:12px 22px;cursor:pointer;border:1.5px solid var(--ink);background:transparent;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:9px;transition:.16s;white-space:nowrap;}
  .btn:hover{background:var(--ink);color:var(--paper);}
  .btn-p,.btn-b{background:var(--clay);border-color:var(--clay);color:#fff;}
  .btn-p:hover,.btn-b:hover{background:var(--clay-deep);border-color:var(--clay-deep);color:#fff;}
  .btn-s,.btn-g{background:transparent;}
  .btn-lg{font-size:15.5px;padding:15px 30px;}
  .btn.arr::after{content:"→";font-size:1.05em;}

  /* announcement ribbon */
  .ann{background:var(--ink);color:oklch(1 0 0/.82);text-align:center;padding:10px 16px;font-size:12px;letter-spacing:.03em;font-weight:500;}
  .ann span{color:var(--clay-lite);font-weight:700;}

  /* header / nav */
  .hdr{position:sticky;top:0;z-index:100;background:oklch(0.972 0.006 80 / 0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
  .searchtrig{background:transparent;border:1.5px solid var(--line-strong);border-radius:8px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);flex-shrink:0;}
  .searchtrig svg{width:18px;height:18px;stroke:var(--ink);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;}
  .searchpanel{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 22px 50px -24px oklch(0 0 0/.45);z-index:150;padding:18px clamp(12px,2vw,24px) 22px;}
  .searchpanel.open{display:block;}
  .searchpanel .cnt{max-width:640px;}
  .searchbox{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line-strong);border-radius:10px;padding:10px 14px;background:var(--paper-2);}
  .searchbox svg{width:18px;height:18px;stroke:var(--ink-soft);stroke-width:2;fill:none;flex-shrink:0;}
  .searchbox input{flex:1;border:none;background:transparent;font-family:var(--sans);font-size:15px;color:var(--ink);outline:none;min-width:0;}
  .searchbox input::placeholder{color:var(--ink-soft);}
  .searchclose{background:transparent;border:none;color:var(--ink-soft);font-size:16px;cursor:pointer;flex-shrink:0;padding:2px 4px;}
  .searchresults{margin-top:10px;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:2px;}
  .sres{display:flex;flex-direction:column;padding:10px 12px;border-radius:8px;text-decoration:none;color:inherit;cursor:pointer;}
  .sres:hover{background:var(--paper-2);}
  .sres .sresname{font-size:14px;font-weight:600;color:var(--ink);}
  .sres .srescat{font-size:11.5px;color:var(--clay);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:2px;}
  .sresempty{padding:14px 12px;font-size:13.5px;color:var(--ink-soft);}
  .nav{display:flex;align-items:center;gap:0;height:86px;}
  .logo{display:flex;align-items:center;gap:11px;text-decoration:none;cursor:pointer;}
  .lmark{height:69px;width:auto;max-width:260px;object-fit:contain;display:block;}
  .ltxt{font-family:var(--serif);font-size:22px;font-weight:700;line-height:1;display:flex;flex-direction:column;}
  .ltxt small{font-family:var(--sans);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:3px;font-weight:600;}
  .navlinks{flex:1;display:flex;gap:0;align-items:center;justify-content:center;}
.navl{font-size:14px;font-weight:600;color:var(--ink-soft);text-decoration:none;cursor:pointer;padding:7px 16px;border-bottom:2px solid transparent;transition:.16s;white-space:nowrap;}
  .navl:hover{color:var(--ink);border-bottom-color:var(--clay);}
  /* dropdown */
  .navitem{position:relative;}
  .droptrig{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink-soft);background:none;border:0;cursor:pointer;display:flex;align-items:center;gap:5px;padding:7px 16px;border-bottom:2px solid transparent;transition:.16s;white-space:nowrap;}
  .droptrig:hover,.navitem:hover .droptrig,.navitem.open .droptrig{color:var(--ink);border-bottom-color:var(--clay);}
  .caret{font-size:.72em;transition:transform .18s;}
  .navitem:hover .caret,.navitem.open .caret{transform:rotate(180deg);}
  .dropmenu{background:var(--paper);border:1px solid var(--line);border-radius:11px;box-shadow:0 22px 50px -24px oklch(0 0 0/.45);padding:10px;min-width:236px;display:none;flex-direction:column;gap:2px;z-index:130;}
  .navitem:hover .dropmenu,.navitem:focus-within .dropmenu,.navitem.open .dropmenu{display:flex;}
  .dropmenu a{padding:11px 13px;border-radius:8px;font-size:14px;font-weight:600;color:var(--ink-soft);text-decoration:none;cursor:pointer;white-space:nowrap;border:none;}
  .dropmenu a:hover{background:var(--paper-2);color:var(--ink);}
  .dropmenu a small{display:block;font-weight:500;font-size:11.5px;color:var(--ink-soft);margin-top:2px;white-space:normal;}
  /* Desktop-only: turn the dropdown into a floating 2-column panel. On mobile it stays in normal
     single-column document flow (see the max-width:680px rules below) so it can never overlap content. */
  @media(min-width:681px){
    .dropmenu{position:absolute;top:calc(100% + 8px);left:0;min-width:560px;}
    .dropmenu::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px;}
    .navitem:hover .dropmenu,.navitem:focus-within .dropmenu,.navitem.open .dropmenu{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 8px;}
    .dropmenu a{white-space:normal;}
  }
 .navcta{display:flex;align-items:center;gap:10px;flex-shrink:0;}

  .mobt{display:none;position:relative;background:transparent;border:1.5px solid var(--line-strong);border-radius:8px;width:42px;height:42px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex-shrink:0;}
  .mobt span{display:block;width:19px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease;}
  .mobt.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .mobt.open span:nth-child(2){opacity:0;}
  .mobt.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .navclose{display:none;}
  body.navlock{overflow:hidden;}
  @keyframes navIn{from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:translateY(0);}}

  /* hero */
  .hero{padding:clamp(40px,5vw,72px) 0 clamp(30px,4vw,52px);}
  .hgrid{display:grid;grid-template-columns:1.05fr 1fr;gap:46px;align-items:center;}
  .htitle{font-size:clamp(34px,5vw,56px);margin:16px 0 18px;font-weight:800;letter-spacing:-.02em;line-height:1.05;text-wrap:balance;}
  .hsub{font-size:clamp(16px,1.8vw,19px);color:var(--ink-soft);max-width:48ch;margin-bottom:26px;}
  .hctas{display:flex;gap:12px;flex-wrap:wrap;}
  .hbadges{display:flex;gap:9px;flex-wrap:wrap;margin-top:26px;}
  .hbadge,.pill{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:7px 14px;background:var(--paper);}
  .hbadge::before,.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--clay);}
  .hvisual{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .hphoto{aspect-ratio:3/4;}
  .hp1{grid-row:span 2;aspect-ratio:auto;min-height:340px;}
  .hcreds{grid-column:1/-1;border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--paper);}
  .clabel{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;}
  .stamps{display:flex;flex-wrap:wrap;gap:7px;}
  .stamp{font-size:11px;font-weight:700;color:var(--clay-deep);border:1px solid var(--line-strong);border-radius:6px;padding:5px 9px;}

.pbar{background:var(--ink);color:var(--paper);}
.prow{display:grid;grid-template-columns:repeat(5,1fr);padding:28px 0;text-align:center;position:relative;}
.pitem{font-size:13px;color:oklch(1 0 0/.6);display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 16px;position:relative;}
.pitem+.pitem::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:44px;background:oklch(1 0 0/.12);}
.pitem svg{width:28px;height:28px;stroke:var(--clay-lite);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.pitem strong{display:block;font-family:var(--serif);font-size:clamp(15px,1.8vw,19px);font-weight:700;color:#fff;line-height:1;letter-spacing:-.01em;}
.pitem span{font-size:11.5px;color:oklch(1 0 0/.5);letter-spacing:.04em;}

  /* persona routing */
  .pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .pcard{border:1px solid var(--line);border-radius:12px;padding:26px 22px;background:var(--paper);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:10px;transition:.2s;cursor:pointer;}
  .pcard:hover{transform:translateY(-3px);border-color:var(--clay);box-shadow:0 22px 46px -28px oklch(0 0 0/.4);}
  .picon{width:54px;height:54px;border-radius:15px;background:oklch(0.620 0.150 143 / 0.12);color:var(--clay-deep);display:flex;align-items:center;justify-content:center;}
  .picon svg{width:27px;height:27px;stroke:var(--clay-deep);stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;}
  .pcard h4{font-size:18px;}
  .pcard p{font-size:13.5px;color:var(--ink-soft);flex:1;}
  .plink{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--clay);}
  .plink::after{content:" →";}

  /* featured category split */
  .fcat{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center;padding:clamp(40px,5vw,72px) 0;}
  .fcat.rev .fcont{order:2;}
  .fmeta{display:inline-flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--clay-deep);background:oklch(0.620 0.150 143 / 0.10);padding:7px 14px;border-radius:999px;margin-bottom:18px;}
  .fmeta .n{font-family:var(--sans);font-size:11px;color:var(--clay-deep);font-weight:800;}
  .fcat h2{font-size:clamp(27px,3.7vw,42px);margin-bottom:14px;}
  .flist{list-style:none;columns:2;column-gap:28px;margin:20px 0 24px;}
  .flist li{font-size:14px;color:var(--ink-2);padding-left:28px;position:relative;line-height:1.45;font-weight:500;break-inside:avoid;margin-bottom:7px;}
  .flist li::before{content:"";position:absolute;left:0;top:1px;width:18px;height:18px;border-radius:50%;background:var(--clay);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-size:11px;background-repeat:no-repeat;background-position:center;}
  .fvisual{position:relative;}
  .fphoto{aspect-ratio:16/11;border:none;background:none;padding:0;border-radius:12px;overflow:hidden;}
  .fphoto img{width:100%;height:100%;object-fit:cover;display:block;}
  .ftag{position:absolute;top:14px;left:14px;z-index:2;background:var(--paper);border:1px solid var(--line-strong);color:var(--ink);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 11px;border-radius:999px;}
  .ftag.hero-tag{background:var(--clay);color:#fff;border-color:var(--clay);}
  .price-anchor{display:inline-flex;flex-direction:column;gap:2px;border-left:3px solid var(--clay);padding:4px 0 4px 14px;margin-bottom:20px;}
  .pa-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
  .pa-price{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--ink);}
  .pa-price small{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--ink-soft);}
  .fctas{display:flex;gap:12px;flex-wrap:wrap;}

  /* capabilities (dark) */
  .caps{background:var(--ink);color:var(--paper);}
  .capgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
  .cap{border:1px solid oklch(1 0 0/.14);border-radius:11px;padding:22px 18px;}
  .capico{width:48px;height:48px;border-radius:12px;background:var(--clay);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
  .capico svg{width:25px;height:25px;stroke:#fff;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;}
  .cap h4{font-size:16px;color:#fff;margin-bottom:7px;}
  .cap p{font-size:12.5px;color:oklch(1 0 0/.65);}

  /* steps */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .step{position:relative;border:1px solid var(--line);border-radius:12px;padding:26px 22px;background:var(--paper);}
  .snum{font-family:var(--serif);font-size:34px;font-weight:700;color:var(--clay);line-height:1;margin-bottom:10px;}
  .step h4{font-size:16.5px;margin-bottom:7px;}
  .step p{font-size:13.5px;color:var(--ink-soft);}

  /* why avant */
  .wgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
  .witem{display:flex;gap:16px;border:1px solid var(--line);border-radius:12px;padding:24px;background:var(--paper);}
  .wmark{flex:none;width:30px;height:30px;border-radius:50%;background:var(--clay);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;}
  .wvs{font-size:12px;color:var(--ink-soft);margin-bottom:5px;}
  .wvs s{color:var(--clay-deep);}
  .witem h4{font-size:17px;margin-bottom:6px;}
  .witem p{font-size:13.5px;color:var(--ink-soft);}

  /* featured work */
  .wkgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .wkitem{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);}
  .wkph{aspect-ratio:4/3;border:none;border-radius:0;}
  .wkov{padding:16px 18px;background:var(--paper);}
  .wkov .tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:6px;}
  .wkov h5{font-size:16px;font-weight:600;}

  /* trust stack */
  .tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px;}
  .tcard{border:1px solid var(--line);border-radius:12px;padding:28px 24px;background:var(--paper);text-align:center;}
  .tbig{font-family:var(--serif);font-size:clamp(36px,4.6vw,52px);font-weight:700;color:var(--clay-deep);line-height:1;}
  .tcard h4{font-size:16px;margin:10px 0 7px;}
  .tcard p{font-size:13px;color:var(--ink-soft);}
  .credrow{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
  .cbadge{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:8px 16px 8px 8px;background:var(--paper);}
  .cseal{width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;}
  .cseal svg{width:16px;height:16px;stroke:#fff;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}

  /* reviews */
  .revgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .revcard{border:1px solid var(--line);border-radius:12px;padding:26px;background:var(--paper);display:flex;flex-direction:column;gap:12px;}
  .revstars{color:var(--clay);letter-spacing:2px;font-size:15px;}
  .revbody{font-family:var(--serif);font-size:18px;line-height:1.5;color:var(--ink);}
  .revsrc{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);}
  .revname{font-size:13.5px;font-weight:700;margin-top:auto;}
  .revname small{display:block;font-weight:500;color:var(--ink-soft);font-size:12px;}
  .revcard.revph{align-items:center;justify-content:center;text-align:center;border-style:dashed;color:var(--ink-soft);font-size:13px;background:var(--paper-2);}

  /* faq accordion */
  .faqgrid{display:flex;flex-direction:column;max-width:800px;margin:0 auto;}
  .faqitem{display:block!important;width:100%;border-bottom:1px solid var(--line);}
  .faqq{display:block!important;width:100%;font-family:var(--serif);font-size:17px;font-weight:600;padding:16px 30px 16px 0;cursor:pointer;position:relative;box-sizing:border-box;}
  .faqq::after{content:"+";position:absolute;right:2px;top:14px;color:var(--clay);font-size:22px;font-weight:400;transition:.2s;}
  .faqitem.open .faqq::after{transform:rotate(45deg);}
  .faqa{display:block!important;width:100%;box-sizing:border-box;font-size:13.5px;color:var(--ink-soft);max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 30px 0 0;}
  .faqitem.open .faqa{max-height:500px;padding-bottom:18px;}
  .faqq,.faqq:link,.faqq:visited,.faqq:hover,.faqq:focus,.faqq:active,.faqitem.open .faqq{color:var(--ink) !important;font-weight:600 !important;}
  .faqa,.faqa:link,.faqa:visited,.faqa:hover,.faqa:focus,.faqa:active,.faqitem.open .faqa{color:var(--ink-soft) !important;font-weight:400 !important;}

  /* final CTA (dark) */
  .fcta{background:var(--ink);color:var(--paper);text-align:center;padding:clamp(50px,6vw,84px) 0;}
  .fcta h2{font-size:clamp(30px,4.4vw,50px);margin:12px auto 14px;max-width:28ch;color:#fff;}
  .fcta .lead{color:oklch(1 0 0/.72);margin:0 auto 26px;}
  .fctabs{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

  /* footer */
  .ftr{background:oklch(0.972 0.006 80);color:var(--ink);padding:clamp(46px,5vw,68px) 0 30px;border-top:1px solid var(--line);}
  .ftrgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:32px;}
  .ftrlogo{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--ink);text-decoration:none;display:inline-block;margin-bottom:12px;}
  .ftrcol p{color:var(--ink-soft);font-size:13.5px;margin-bottom:6px;}
  .ftrcol h5{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px;}
  .ftrcol ul{list-style:none;}
  .ftrcol li{margin-bottom:9px;}
  .ftrcol a{color:var(--ink-soft);font-size:13.5px;text-decoration:none;cursor:pointer;}
  .ftrcol a:hover{color:var(--clay);}
  .ftrbottom{border-top:1px solid var(--line);margin-top:36px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--ink-soft);}

  /* category hero (dark) */
  .cathero{background:var(--ink);color:var(--paper);padding:clamp(40px,5vw,68px) 0;}
  .crumb{font-size:12px;color:oklch(1 0 0/.55);margin-bottom:18px;display:flex;gap:8px;flex-wrap:wrap;}
  .crumb a{color:oklch(1 0 0/.75);text-decoration:none;cursor:pointer;}
  .crumb a::after{content:" ›";color:oklch(1 0 0/.4);}
  .cathero h1{font-size:clamp(34px,5vw,58px);color:#fff;margin-bottom:14px;font-weight:800;letter-spacing:-.02em;}
  .cathero .lead{color:oklch(1 0 0/.78);}
  .cahctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
  .cahtrust{display:flex;flex-wrap:wrap;gap:24px;margin-top:30px;padding-top:24px;border-top:1px solid oklch(1 0 0/.14);}
  .ci{font-size:13px;color:oklch(1 0 0/.65);}
  .ci strong{display:block;font-family:var(--serif);font-size:22px;color:var(--clay-lite);font-weight:600;}

  /* audience cards */
  .audgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .audcard{border:1px solid var(--line);border-radius:12px;padding:26px 24px;background:var(--paper);}
  .audfor{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:10px;}
  .audcard h4{font-size:19px;margin-bottom:9px;}
  .audcard p{font-size:13.5px;color:var(--ink-soft);}

  /* product grid */
  .prodgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .prodcard{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper);text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:.2s;cursor:pointer;}
  .prodcard:hover{transform:translateY(-3px);border-color:var(--clay);box-shadow:0 22px 46px -28px oklch(0 0 0/.4);}
  .prodimg{aspect-ratio:4/3;border:none;border-radius:0;border-bottom:1px solid var(--line);}
  .pb{position:absolute;top:12px;left:12px;background:var(--clay);color:#fff;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:5px 10px;border-radius:999px;}
  .prodbody{padding:18px 20px;display:flex;flex-direction:column;gap:8px;flex:1;}
  .prodbody h4{font-size:19px;}
  .proddesc{font-size:13px;color:var(--ink-soft);flex:1;}
  .prodmeta{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line);}
  .prodprice{display:flex;flex-direction:column;}
  .ps{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
  .prodprice strong{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--ink);line-height:1;}
  .prodcta{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--clay);border:1px solid var(--clay);border-radius:7px;padding:7px 12px;}

  /* specs */
  .specgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .speccard{border:1px solid var(--line);border-top:2px solid var(--clay);border-radius:0 0 10px 10px;padding:22px 20px;background:var(--paper);}
  .speccard h5{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:9px;font-family:var(--sans);}
  .speccard strong{font-family:var(--serif);font-size:18px;display:block;margin-bottom:8px;}
  .speccard p{font-size:12.5px;color:var(--ink-soft);}

  /* price table */
  .ptable{border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .ptrow{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;}
  .ptrow>div{padding:14px 20px;border-bottom:1px solid var(--line);font-size:14px;}
  .ptrow:last-child>div{border-bottom:none;}
  .pthead>div{background:var(--ink);color:var(--paper);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
  .pti{font-weight:600;}
  .ptp{font-family:var(--serif);font-weight:700;color:var(--clay-deep);}
  .ptnote{font-size:12px;color:var(--ink-soft);margin-top:12px;}

  /* portfolio */
  .portfilters{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-bottom:30px;}
  .portfil{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line-strong);border-radius:999px;padding:9px 17px;cursor:pointer;transition:.16s;}
  .portfil:hover{border-color:var(--clay);color:var(--ink);}
  .portfil.active{background:var(--clay);color:#fff;border-color:var(--clay);}
  .portgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .portitem{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);}
  .portitem.lg{grid-column:span 2;}
  .portph{aspect-ratio:4/3;border:none;border-radius:0;}
  .portitem.lg .portph{aspect-ratio:16/8;}
  .portov{padding:16px 18px;background:var(--paper);}
  .portov .tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:6px;}
  .portov h4{font-size:17px;margin-bottom:4px;}
  .portov p{font-size:12.5px;color:var(--ink-soft);}

  /* about */
  .abouthero{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;}
  .abouthero h1{font-size:clamp(34px,5vw,56px);}
  .aportrait{aspect-ratio:4/5;}
  .aststats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .astat{background:var(--paper);padding:28px 20px;text-align:center;}
  .astat .num{font-family:var(--serif);font-size:clamp(32px,4vw,46px);font-weight:700;color:var(--clay-deep);line-height:1;}
  .astat .lbl{font-size:12.5px;color:var(--ink-soft);margin-top:8px;}
  .storydrop p{font-size:15.5px;color:var(--ink-soft);margin-bottom:16px;}
  .storydrop p:first-child::first-letter{font-family:var(--serif);font-size:58px;font-weight:700;float:left;line-height:.8;padding:6px 12px 0 0;color:var(--clay);}
  .valgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .valcard{border:1px solid var(--line);border-radius:12px;padding:26px 24px;background:var(--paper);}
  .valicon{width:52px;height:52px;border-radius:14px;background:oklch(0.620 0.150 143 / 0.12);display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
  .valicon svg{width:26px;height:26px;stroke:var(--clay-deep);stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;}
  .vnum{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--clay);line-height:1;margin-bottom:12px;}
  .valcard h4{font-size:18px;margin-bottom:8px;}
  .valcard p{font-size:13.5px;color:var(--ink-soft);}
  .eqgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .eqitem{display:flex;gap:18px;border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--paper);}
  .eqimg{flex:none;width:120px;aspect-ratio:1/1;}
  .eqitem h4{font-size:17px;margin-bottom:7px;}
  .eqitem p{font-size:13px;color:var(--ink-soft);margin-bottom:9px;}
  .eqspec{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--clay);}

  /* contact */
  .contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;}
  .cchs{display:flex;flex-direction:column;gap:16px;margin:24px 0;}
  .cch{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--paper);}
  .cico{flex:none;width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:18px;}
  .cch h5{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:5px;font-family:var(--sans);}
  .cch p{font-size:16px;margin-bottom:4px;}
  .cch small{font-size:12px;color:var(--ink-soft);line-height:1.5;}
  .chours{border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--paper-2);}
  .chours h5{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px;font-family:var(--sans);}
  .chours p{font-size:14px;color:var(--ink-soft);}
  .open{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:oklch(0.55 0.12 150);margin-top:12px;}
  .cform{border:1px solid var(--line);border-radius:14px;padding:30px;background:var(--paper);}
  .cform h3{font-size:23px;margin-bottom:8px;}
  .fl{font-size:13px;color:var(--ink-soft);margin-bottom:20px;}
  .frow{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .fld{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
  .fld label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
  .req{color:var(--clay);}
  .fld input,.fld textarea,.fld select,.field input,.field textarea,.field select{font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:8px;padding:12px 14px;width:100%;}
  .fld textarea{min-height:120px;resize:vertical;}
  .fld input:focus,.fld textarea:focus,.fld select:focus,.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--clay);}
  .ftrust{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:11.5px;color:var(--ink-soft);}
  .ftrust span{display:inline-flex;align-items:center;gap:6px;}
  .ftrust span::before{content:"✓";color:var(--clay);font-weight:700;}
  .mapstrip{position:relative;background:var(--ink);color:var(--paper);border-radius:14px;padding:36px;margin-top:28px;margin-bottom:48px;min-height:200px;display:flex;align-items:center;background-image:repeating-linear-gradient(135deg,oklch(1 0 0/.04) 0 12px,transparent 12px 24px);}
  .mappin{font-family:var(--serif);font-size:22px;font-weight:600;color:#fff;margin-bottom:6px;}
  .mapstrip p{color:oklch(1 0 0/.7);font-size:13.5px;}

  /* field block (quote form) */
  .field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
  .field label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
  .dropzone{border:1.5px dashed var(--line-strong);border-radius:10px;padding:26px;text-align:center;background:repeating-linear-gradient(135deg,var(--fill) 0 9px,transparent 9px 18px);color:var(--ink-soft);font-size:13px;margin-bottom:16px;}
  .dropzone b{display:block;font-size:15px;color:var(--ink);margin-bottom:3px;}

  /* policies */
  .pollayout{display:grid;grid-template-columns:240px 1fr;gap:44px;padding:clamp(40px,5vw,64px) 0;align-items:start;}
  .polnav{position:sticky;top:106px;}
  .polnav h5{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px;font-family:var(--sans);}
  .polnav a{display:block;font-size:14px;color:var(--ink-soft);text-decoration:none;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer;}
  .polnav a:hover{color:var(--clay);}
  .polcont section{margin-bottom:42px;scroll-margin-top:106px;}
  .upd{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);}
  .polcont h2{font-size:clamp(26px,3.4vw,36px);margin:8px 0 14px;}
  .polcont h3{font-size:18px;margin:20px 0 8px;}
  .polcont p,.polcont li{font-size:14.5px;color:var(--ink-soft);margin-bottom:10px;line-height:1.65;}
  .polcont ul{padding-left:20px;}
  .polbox{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin:14px 0;}
  .polbox h4{font-size:15px;margin-bottom:8px;}
  .polbox p{margin-bottom:0;}

  /* meet the owners */
  .owners{display:grid;grid-template-columns:.82fr 1fr;gap:46px;align-items:center;}
  .ownerphoto{aspect-ratio:4/5;border-radius:14px;}
  .ownersig{font-family:var(--serif);font-size:20px;font-weight:700;color:var(--ink);margin-top:18px;}
  .ownersig small{display:block;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--clay-deep);margin-top:3px;}
  .ownerquote{font-size:clamp(18px,2.1vw,22px);line-height:1.5;color:var(--ink-2);font-weight:500;}
  .ownerquote b{color:var(--ink);font-weight:700;}

  /* responsive */
  @media(max-width:1024px){
    .navlinks{gap:16px;}
    .nav-phone{display:none;}
  }
  @media(max-width:980px){
    .hgrid,.fcat,.fcat.rev .fcont,.abouthero,.contactgrid,.owners{grid-template-columns:1fr;}
    .fcat.rev .fcont{order:0;}
    .prow,.specgrid,.capgrid{grid-template-columns:repeat(2,1fr);}
    .pgrid{grid-template-columns:repeat(2,1fr);}
    .wgrid,.eqgrid{grid-template-columns:1fr;}
    .prodgrid,.audgrid,.revgrid,.wkgrid,.tgrid,.valgrid,.portgrid{grid-template-columns:repeat(2,1fr);}
    .ftrgrid{grid-template-columns:1fr 1fr;}
    .pollayout{grid-template-columns:1fr;}
    .polnav{position:static;}
    .portitem.lg{grid-column:span 2;}
  }
  /* --- Mobile rules that lived only in the per-page <style> blocks ---------
     Converting a page to blocks drops its inline stylesheet, so anything it
     declared has to exist here or the block version loses it on small screens.
     Each of these was present on ten of the service pages and absent here. */
  @media(max-width:980px){
    .steps{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:680px){
    .cathero{padding:clamp(32px,7vw,48px) 0;}
    .cathero .lead{font-size:14.5px;}
    .cahtrust{gap:16px;padding-top:20px;margin-top:22px;}
    .audcard,.speccard{padding:20px 16px;}
  }
  @media(max-width:390px){
    .cathero h1{font-size:26px;}
  }

  @media(max-width:680px){
    /* Trust bar stacked: room to breathe, dividers become rules between rows */
    .prow{gap:22px;padding:32px 0;}
    .pitem{padding:14px 0 0;}
    .pitem::before{display:none;}
    .pitem+.pitem{border-top:1px solid oklch(1 0 0/.14);}
  }
  @media(max-width:680px){
    /* On a phone the hero and closing action rows stack, and each button takes
       the full width. These lived only in the per-page style blocks; the theme
       needs them or a page built from blocks loses them on mobile. */
    .cahctas{flex-direction:column;}
    .fctabs{flex-direction:column;align-items:stretch;}
    .cahctas .btn,.fctabs .btn{width:100%;justify-content:center;}
  }

  @media(max-width:680px){
    .navlinks{display:none;}
    .nav-phone{display:none;}
    .mobt{display:flex;}
    .navlinks.open{display:flex;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;flex-direction:column;gap:0;background:var(--paper);padding:96px 0 24px;z-index:9999;overflow-y:auto;animation:navIn .22s ease;}
    .navlinks.open .navclose{display:flex;position:fixed;top:20px;right:clamp(12px,4vw,24px);align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--paper);font-size:16px;cursor:pointer;color:var(--ink);z-index:10000;}
    .navlinks.open .navl{padding:16px clamp(20px,4vw,56px);border-bottom:1px solid var(--line);font-size:16px;}
    .navlinks.open .navitem{width:100%;}
    .navlinks.open .droptrig{width:100%;padding:16px clamp(20px,4vw,56px);border-bottom:1px solid var(--line);font-size:16px;}
    .navlinks.open .dropmenu{display:flex;width:100%;min-width:0;border:none;box-shadow:none;border-radius:0;padding:0;background:var(--paper-2);}
    .navlinks.open .dropmenu::before{display:none;}
    .navlinks.open .dropmenu a{padding:13px clamp(28px,5vw,64px);border-bottom:1px solid var(--line);border-radius:0;}
    .navlinks.open .dropmenu a small{display:block;}
    .hp1{min-height:240px;}
    .prow,.steps,.specgrid,.capgrid,.pgrid,.prodgrid,.audgrid,.revgrid,.wkgrid,.tgrid,.valgrid,.aststats,.portgrid{grid-template-columns:1fr;}
    .flist{columns:1;}
    .ptrow{grid-template-columns:1.4fr 1fr 1fr;}
    .ptrow>div:nth-child(4){display:none;}
    .ftrgrid{grid-template-columns:1fr;}
    .portitem.lg{grid-column:span 1;}
    .portitem.lg .portph{aspect-ratio:4/3;}
    .fcta h2,.cathero h1{font-size:clamp(30px,8vw,40px);}
  }

  /* =============================================
     MOBILE IMPROVEMENTS
  ============================================= */
  html,body{max-width:100%;overflow-x:hidden;}

  @media(max-width:680px){
    /* Hide nav CTA buttons - keep only hamburger */
    .navcta .btn { display:none !important; }
    .navcta { gap:6px; margin-left:auto; }

    /* Shorter hero image on mobile */
    .hero-img { min-height:220px !important; }
    .hp1 { min-height:200px !important; }

    /* Price table compact */
    .ptrow>div { padding:10px 8px; font-size:12px; }
    .ptrow>div:nth-child(4) { display:none; }
    .ptrow { grid-template-columns:1.6fr 1fr 1fr !important; }

    /* Announcement bar compact */
    .ann { font-size:11px; padding:7px 12px; }

    /* Hero CTA buttons stack */
    .hctas { flex-direction:column; }
    .hctas .btn { width:100%; justify-content:center; }

    /* Touch-friendly cards */
    .pcard,.revcard,.step { padding:20px 16px; }

    /* Logo compact */
    .ltxt { font-size:19px; }
    .ltxt small { font-size:8px; }

    /* Footer bottom stack */
    .ftrbottom { flex-direction:column; gap:6px; font-size:11px; }

    /* Contact form compact */
    .cform { padding:22px 16px; }

    /* Form rows stack (name/email/phone fields) */
    .frow { grid-template-columns:1fr; }

    /* Equipment items stack image above text */
    .eqitem { flex-direction:column; }
    .eqitem .eqimg { width:100%; height:auto; aspect-ratio:16/9; }

    /* Policy nav hidden on mobile */
    .polnav { display:none; }
  }

  /* Very small screens - iPhone SE etc */
  @media(max-width:390px){
    .htitle { font-size:26px; }
    .btn-lg { font-size:14px; padding:12px 16px; }
    .lmark  { height:52px; width:auto; }
    .ltxt   { font-size:17px; }
  }

/* ─────────────────────────────────────────────────────────────────────────
   Theme integration. Everything above this line is the design system exactly
   as it was in the WPCode block; everything below exists only to seat it in
   a block theme.
   ───────────────────────────────────────────────────────────────────────── */

/* .hdr is position:sticky. If a block wrapper is ever introduced around a
   template part, the header would stick to that wrapper instead of the page
   and scroll away. display:contents takes the wrapper out of the box tree so
   sticky keeps resolving against the document. Inert when no wrapper exists. */
.wp-block-template-part { display: contents; }

/* The admin bar sets html{margin-top:32px!important}; the reset above sets
   html,body{margin:0} without !important, so the bar already wins. This just
   keeps the sticky header clear of it. */
.admin-bar .hdr { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .hdr { top: 46px; }
}

/* ---------------------------------------------------------------------------
   Block editor support

   The design system was written for hand-authored HTML. Core blocks introduce
   wrapper elements (figure.wp-block-image, div.wp-block-group) and patterns use
   semantically correct heading levels, where the old pages happened to use h4
   and h5. Everything below is additive: it lets a page built from blocks in the
   editor land on the same design as the hand-written pages, and changes nothing
   about how those pages render.
   --------------------------------------------------------------------------- */

/* Heading levels are kept exactly as the legacy pages had them, so every
   ".card h4" rule above applies unchanged.
   Core image blocks wrap the img in a figure, which must not break the ratio. */
.prodimg{position:relative;}
.prodimg .wp-block-image,
.prodimg figure{margin:0;height:100%;display:block;}
.prodimg .wp-block-image img{width:100%;height:100%;object-fit:cover;display:block;}

/* A product card built from a group block behaves like the old <a class="prodcard">:
   the Order link is stretched over the whole card, so the card stays clickable
   while every part of it remains separately editable in the editor. */
.prodcard{position:relative;}
.prodcard a.prodcta{text-decoration:none;}
.prodcard a.prodcta::after{content:"";position:absolute;inset:0;border-radius:12px;}


/* A price table built as a core table block. The legacy markup was a CSS grid
   of divs; a real <table> is what the editor gives you a proper editing UI for,
   so the same look is restated here for table elements. Column widths match the
   grid the div version used, including the mobile rules that drop column four. */
.wp-block-table.ptable,
table.ptable{border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.wp-block-table.ptable table,
table.ptable{width:100%;border-collapse:collapse;table-layout:fixed;}
.ptable col:first-child,.ptable th:first-child,.ptable td:first-child{width:40%;}
.ptable th,.ptable td{padding:14px 20px;border-bottom:1px solid var(--line);
                      font-size:14px;text-align:left;width:20%;}
.ptable tr:last-child td{border-bottom:none;}
.ptable thead th{background:var(--ink);color:var(--paper);font-size:11px;font-weight:700;
                 letter-spacing:.08em;text-transform:uppercase;}
.ptable td:first-child{font-weight:600;}
.ptable td:not(:first-child):not(:nth-child(2)){font-family:var(--serif);font-weight:700;
                                                color:var(--clay-deep);}
@media (max-width:900px){
  .ptable th:nth-child(4),.ptable td:nth-child(4){display:none;}
  .ptable th:first-child,.ptable td:first-child{width:48%;}
}
@media (max-width:600px){
  .ptable th,.ptable td{padding:10px 8px;font-size:12px;}
}

/* Narrow measure for pages that are mostly running prose — the legal pages.
   These carried style="max-width:900px" inline on the container; a modifier
   class keeps that decision in the stylesheet where the rest of the design
   lives, instead of in every page's markup. */
.cnt.narrow{max-width:900px;}

/* ---------------------------------------------------------------------------
   Inline styles from the home and about pages, restated as classes.
   Every rule here replaces a style="" that a block cannot carry. Named for what
   the thing is, not for the CSS it applies, so the markup reads as intent.
   --------------------------------------------------------------------------- */

/* Section variants */
.sec.dark{background:var(--ink);}
.sec.ruled{border-bottom:1px solid var(--line);}

/* Anything sitting on a dark section */
.on-dark{color:#fff;}
.ey.lite{color:var(--clay-lite);}   /* eyebrow on a dark section; after .ey.nl so it wins the tie */
.revcard.on-dark{background:oklch(1 0 0/.07);border-color:oklch(1 0 0/.14);}
.revsrc.on-dark{color:var(--clay-lite);}
.revbody.on-dark{color:#fff;font-size:16px;}
.revname.on-dark{color:#fff;}

/* Small print */
.note-on-dark{margin-top:20px;color:oklch(1 0 0/.65);font-size:14px;}
.footnote{margin-top:22px;font-size:13px;}

/* Space above a row that follows content. The pages used 22px and once 24px;
   normalised to 22px. */
.fctas.below{margin-top:22px;}
.ctr.below{margin-top:34px;}

/* Layout variants */
.fcat.flush{padding:0;}
.fphoto.wide{aspect-ratio:16/10;}
.polbox.centered{max-width:640px;margin:0 auto 34px;text-align:center;}
.polbox h4.accent{font-size:19px;color:var(--clay-deep);}
.eqimg.icon{background:oklch(0.620 0.150 143/.10);border:none;display:flex;align-items:center;justify-content:center;}

/* Single-use pieces of the story and owner sections, previously styled inline */
.storydrop{max-width:740px;margin:0 auto;}
.storydrop .byline{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--clay-deep);}
.abouthero h1{margin:14px 0 18px;}
.owners h2{font-size:clamp(26px,3.6vw,40px);margin:12px 0 18px;}
.hcreds{margin-top:14px;text-align:center;}
.stamps{justify-content:center;}

/* A service card built as a group block (was one big <a class="pcard">): the
   "learn more" link is stretched over the whole card, same as .prodcard. */
.pcard{position:relative;}
.pcard a.plink{text-decoration:none;}
.pcard a.plink::after{content:"";position:absolute;inset:0;border-radius:12px;}

/* Core list blocks carrying the feature-list class */
ul.flist.wp-block-list{list-style:none;padding:0;}

/* Contact and quote pages: inline styles restated as classes */
.cch.below,.chours.below{margin-top:16px;}
.cinfo h2{margin:12px 0 14px;font-size:clamp(28px,4vw,42px);}
.fineprint{margin-top:6px;font-size:12px;opacity:.7;}

/* Contact form states. These lived only in the contact page's own style block.
   .cf-hp is the honeypot: it MUST stay off-screen, or real people fill it in
   and the handler rejects every message as spam. */
.cf-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
.cf-msg{margin-top:14px;font-size:13.5px;line-height:1.5;display:none;}
.cf-msg.show{display:block;}
.cf-msg.ok{color:var(--clay-deep);font-weight:600;}
.cf-msg.err{color:#a33a2c;font-weight:600;}
.cform .touched:invalid{border-color:#a33a2c;}
.cform button[disabled]{opacity:.62;cursor:progress;}

/* === paragraph labels (generated by _source/bin/label-classes.py) === */
/* Labelled divs are paragraph blocks after conversion. Restated here as
   p.label so a ".container p" rule cannot override the label or give it a
   margin the div never had. Regenerate
   with: python3 _source/bin/label-classes.py */
p.audfor{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:10px;}
p.cico{margin:0;flex:none;width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:18px;}
p.clabel{margin:0;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;}
p.ctr{margin:0;text-align:center;margin-left:auto;margin-right:auto;}
p.eqspec{margin:0;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--clay);}
p.ey{margin:0;display:block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);}
p.faqa{margin:0;display:block!important;width:100%;box-sizing:border-box;font-size:13.5px;color:var(--ink-soft);max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 30px 0 0;}
p.faqq{margin:0;display:block!important;width:100%;font-family:var(--serif);font-size:17px;font-weight:600;padding:16px 30px 16px 0;cursor:pointer;position:relative;box-sizing:border-box;}
p.fineprint{margin:0;margin-top:6px;font-size:12px;opacity:.7;}
p.fl{margin:0;font-size:13px;color:var(--ink-soft);margin-bottom:20px;}
p.fmeta{margin:0;display:inline-flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--clay-deep);background:oklch(0.620 0.150 143 / 0.10);padding:7px 14px;border-radius:999px;margin-bottom:18px;}
p.footnote{margin:0;margin-top:22px;font-size:13px;}
p.ftag{margin:0;position:absolute;top:14px;left:14px;z-index:2;background:var(--paper);border:1px solid var(--line-strong);color:var(--ink);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 11px;border-radius:999px;}
p.hbadges{margin:0;display:flex;gap:9px;flex-wrap:wrap;margin-top:26px;}
p.hsub{margin:0;font-size:clamp(16px,1.8vw,19px);color:var(--ink-soft);max-width:48ch;margin-bottom:26px;}
p.lead{margin:0;color:var(--ink-soft);font-size:clamp(15px,1.6vw,17px);max-width:60ch;}
p.mappin{margin:0;font-family:var(--serif);font-size:22px;font-weight:600;color:#fff;margin-bottom:6px;}
p.muted{margin:0;color:var(--ink-soft);}
p.note-on-dark{margin:0;margin-top:20px;color:oklch(1 0 0/.65);font-size:14px;}
p.on-dark{margin:0;color:#fff;}
p.open{margin:0;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:oklch(0.55 0.12 150);margin-top:12px;}
p.ownerquote{margin:0;font-size:clamp(18px,2.1vw,22px);line-height:1.5;color:var(--ink-2);font-weight:500;}
p.ownersig{margin:0;font-family:var(--serif);font-size:20px;font-weight:700;color:var(--ink);margin-top:18px;}
p.pa-label{margin:0;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
p.pa-price{margin:0;font-family:var(--serif);font-size:30px;font-weight:700;color:var(--ink);}
p.proddesc{margin:0;font-size:13px;color:var(--ink-soft);flex:1;}
p.ptnote{margin:0;font-size:12px;color:var(--ink-soft);margin-top:12px;}
p.revbody{margin:0;font-family:var(--serif);font-size:18px;line-height:1.5;color:var(--ink);}
p.revname{margin:0;font-size:13.5px;font-weight:700;margin-top:auto;}
p.revsrc{margin:0;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);}
p.revstars{margin:0;color:var(--clay);letter-spacing:2px;font-size:15px;}
p.snum{margin:0;font-family:var(--serif);font-size:34px;font-weight:700;color:var(--clay);line-height:1;margin-bottom:10px;}
p.stamps{margin:0;display:flex;flex-wrap:wrap;gap:7px;}
p.stamps{margin:0;justify-content:center;}
p.tbig{margin:0;font-family:var(--serif);font-size:clamp(36px,4.6vw,52px);font-weight:700;color:var(--clay-deep);line-height:1;}
p.upd{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);}
p.wmark{margin:0;flex:none;width:30px;height:30px;border-radius:50%;background:var(--clay);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;}
/* === end paragraph labels === */
