/* Shared visual finish, 11 September 2026. Installed last by build-visual-polish.
   The existing palettes, content, navigation and print layout remain the owners. */
@media screen {
  :root { --polish-gap:clamp(28px,5vw,64px); }

  /* Clip the decorative full-bleed bands, not a reading or form container.
     100vw includes the scrollbar and used to add a horizontal page scrollbar. */
  body > main,.light,.sheet { overflow-x:clip; }
  .wrap { min-width:0; }
  .two { gap:var(--polish-gap); }
  .two > *,.cols > * { min-width:0; }
  .two > div > :last-child { margin-bottom:0; }
  /* Calculator and service wrappers sometimes repeat their first section's gap. */
  main[style*="padding-top:var("]:has(> section:first-child:not([style*="padding-top:0"])) { padding-top:0!important; }

  .masthead { padding-top:clamp(52px,6vw,80px);padding-bottom:clamp(40px,4vw,56px); }
  .masthead h1 { font-size:clamp(34px,4.5vw,56px);line-height:1.14;
    letter-spacing:-.025em;max-width:860px;margin-bottom:24px;text-wrap:balance; }
  .masthead .stand { font-family:var(--sans,"Inter",system-ui,sans-serif);font-size:clamp(16px,1.45vw,19px);
    font-weight:400;line-height:1.7;max-width:680px;padding-left:20px; }
  .masthead .label,.masthead .crumb { margin-bottom:22px; }
  .masthead .mmeta { position:static;float:right;margin:0;padding:0; }
  .masthead h1 { clear:both; }
  .masthead .sub-nav { margin-top:32px;padding-top:16px;gap:8px 24px; }
  .masthead .sub-nav a { font-size:13px;line-height:1.5; }
  .masthead .byline { max-width:860px;gap:8px 18px;font-size:12px;line-height:1.65; }
  h2.big { font-size:clamp(28px,3vw,40px);line-height:1.2;letter-spacing:-.02em; }
  .label { line-height:1.6;letter-spacing:.18em; }

  /* Stable rows: hovering a link should never move its text out of register. */
  .art,.art:hover { position:relative;padding:24px 32px 24px 0;gap:20px;
    transition:background-color .2s ease; }
  .art:hover { background-image:none;background-color:rgba(140,79,48,.035); }
  .art::before { display:none; }
  .art::after { top:25px;right:0; }
  .art:not(a)::after { content:none; }
  .art:not(a) { padding-right:0; }
  a.art h2::after,a.art h3::after,a.art h4::after { content:none; }
  h2.h4:not(:has(a))::after { content:none; }
  .art h2.h4,.art h3.h4,.art h4,.art h3 { line-height:1.4;text-wrap:pretty; }
  .art > span:not(.no) { font-size:10px;line-height:1.6;letter-spacing:.1em;
    white-space:normal;max-width:22ch;text-align:right; }
  .art .d { margin-top:10px;line-height:1.7; }
  .arearow { grid-template-columns:36px minmax(0,1fr); }
  .art .areas { gap:8px;margin-top:16px; }
  .art .areas a { padding:7px 12px;line-height:1.5; }
  .reading,.writing { width:100%; }
  .knowledge .art { max-width:none; }
  .lead { gap:22px; }
  .lead img { border:1px solid var(--line,rgba(26,24,23,.14)); }
  .lead .role { margin-top:6px; }

  a.btn,button.btn { display:inline-flex;align-items:center;justify-content:center;
    gap:10px;min-height:52px;max-width:100%;padding:15px 24px;
    font-family:var(--sans,"Inter",system-ui,sans-serif);font-size:12px;font-weight:500;line-height:1.5;
    letter-spacing:.08em;text-align:center;background-image:none;
    box-shadow:none;vertical-align:middle; }
  a.btn:hover,button.btn:hover { transform:none;box-shadow:none; }
  .btn.line { padding:14px 23px; }

  /* Every full enquiry form shares one quiet, aligned surface. */
  form[action="/api/enquiry"] { margin-top:0;padding:clamp(22px,3vw,36px);
    border:1px solid var(--line,rgba(26,24,23,.14));border-radius:6px;background:#fff;
    box-shadow:0 12px 36px rgba(26,24,23,.035); }
  form[action="/api/enquiry"] .row { gap:20px;align-items:start; }
  form[action="/api/enquiry"] .row > .field:only-child { grid-column:1/-1; }
  form[action="/api/enquiry"] .field { min-width:0;margin-bottom:22px; }
  form[action="/api/enquiry"] .field label { font-size:11.5px;line-height:1.55;
    letter-spacing:.075em;margin-bottom:9px; }
  form[action="/api/enquiry"] .field input,
  form[action="/api/enquiry"] .field select,
  form[action="/api/enquiry"] .field textarea { min-height:50px;line-height:1.5;
    font-size:16px;border-radius:3px;background-color:#fdfcfb; }
  form[action="/api/enquiry"] .field textarea { min-height:128px; }
  form[action="/api/enquiry"] .help,
  form[action="/api/enquiry"] .legal { font-size:13px;line-height:1.65; }
  form[action="/api/enquiry"] .btn { width:100%; }
  form[action="/api/enquiry"] [role="status"]:empty { margin:0; }
  .two:has(form[action="/api/enquiry"]) h2.big { font-size:clamp(27px,2.8vw,36px); }
  body:has(form#form[action="/api/enquiry"]) #start { padding-top:0!important; }
  .sheet:has(form#form[action="/api/enquiry"]) { padding-top:32px; }

  .article { line-height:1.8; }
  .article h2 { line-height:1.3;margin-top:48px;margin-bottom:18px; }
  .article h3 { line-height:1.4; }
  .article .quick { margin-left:0;padding:20px 24px;background:var(--paper2,#F2F1EF);
    border-left:2px solid var(--accent,#8C4F30);margin-bottom:32px; }
  .aside { top:96px; }
  .aside a { line-height:1.6;padding-top:8px;padding-bottom:8px; }
  details summary { padding-top:22px;padding-bottom:22px;line-height:1.45; }
  details summary::after { top:23px; }
  .invite h2 { font-size:clamp(28px,3vw,40px);line-height:1.2;
    max-width:23ch;min-width:0;text-wrap:balance; }
  .invite .btn { margin-top:8px; }
  .invite .two { align-items:start; }
  .fgrid { column-gap:32px;row-gap:36px; }
  footer a { text-underline-offset:4px; }

  @media (min-width:901px) {
    .two { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
    .two > div:first-child { top:96px; }
    .heroBody { padding-top:48px;padding-bottom:32px; }
    .hero h1 { font-size:clamp(44px,4.2vw,56px);max-width:1000px;line-height:1.14; }
    .hero .heroserv { margin-bottom:22px; }
    .fig { padding-top:28px;padding-bottom:28px; }
    form[action="/api/enquiry"] .row .field label { min-height:3.1em; }
    form[action="/api/enquiry"] .row .field:only-child label { min-height:0; }
  }
  @media (max-width:900px) {
    .two { gap:28px; }
    .masthead { padding-top:48px;padding-bottom:40px; }
    .masthead h1 { max-width:100%; }
    .masthead .stand { padding-left:16px; }
    .art { grid-template-columns:1fr;gap:10px; }
    .art > span:not(.no) { max-width:none;justify-self:start;text-align:left; }
    .art.arearow { grid-template-columns:28px minmax(0,1fr);gap:14px; }
    .art.arearow .no { padding-top:3px; }
    .invite h2 { margin-bottom:0; }
    .masthead .byline { display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 16px; }
  }
  @media (max-width:640px) {
    .hero h1 { font-size:34px;line-height:1.16;letter-spacing:-.02em; }
    .heroBody { padding-top:32px;padding-bottom:28px; }
    .heroact { grid-template-columns:minmax(0,1fr); }
    .heroact .btn { width:100%; }
    .heroact .direct > div { min-width:0; }
    .fig { gap:18px; }
    .fig b { min-width:72px; }
    form[action="/api/enquiry"] { padding:22px 18px; }
    .article .quick { padding:18px; }
    .masthead .byline > * + *::before { content:none; }
  }
  @media (prefers-reduced-motion:reduce) {
    .art,a.btn,button.btn { transition:none; }
  }
}
