/* tokens/fonts.css */
/* ProTile webfonts, self-hosted from src/assets/fonts/ (copied to /assets/fonts/ by scripts/build.js).
   Barlow Semi Condensed 500/600/700 + 500 italic (static) and Albert Sans 400-700 (one variable file per subset),
   both SIL Open Font License 1.1, latin + latin-ext subsets (see src/assets/fonts/README.md to refresh). URLs are
   relative to site.css so they work under any basePath. No request leaves this site for typefaces. */
/* latin-ext */
@font-face {
  font-family: "Albert Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/albert-sans-400-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Albert Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/albert-sans-400-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-500-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-500-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-500-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-500-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-600-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/barlow-semi-condensed-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* tokens/colors.css */
:root{
/* Brand (from logo) */
--pt-blue:#004ba5;--pt-blue-700:#003a80;--pt-blue-800:#002a5c;--pt-blue-100:#dce7f6;--pt-blue-50:#eef3fb;
--pt-red:#db1919;--pt-red-700:#b31212;--pt-red-100:#fbe0e0;--pt-red-50:#fdf0f0;
/* Neutrals (cool slate) */
--pt-slate-950:#0b1220;--pt-slate-900:#111a2b;--pt-slate-800:#1f2a3d;--pt-slate-700:#334155;--pt-slate-600:#475569;--pt-slate-500:#64748b;--pt-slate-400:#94a3b8;--pt-slate-300:#cbd5e1;--pt-slate-200:#e2e8f0;--pt-slate-100:#f1f5f9;--pt-slate-50:#f8fafc;--pt-white:#ffffff;
/* Semantic */
--pt-success:#1a7f4b;--pt-success-50:#e8f5ee;--pt-warning:#b86e00;--pt-warning-50:#fff4e0;--pt-danger:var(--pt-red);--pt-danger-50:var(--pt-red-50);--pt-info:var(--pt-blue);--pt-info-50:var(--pt-blue-50);
/* Aliases */
--text-heading:var(--pt-slate-950);--text-body:var(--pt-slate-700);--text-muted:var(--pt-slate-500);--text-on-brand:var(--pt-white);--text-link:var(--pt-blue);--text-link-hover:var(--pt-blue-700);
--surface-page:var(--pt-white);--surface-subtle:var(--pt-slate-50);--surface-card:var(--pt-white);--surface-inverse:var(--pt-slate-950);--surface-brand:var(--pt-blue);--surface-accent:var(--pt-red);
--border-default:var(--pt-slate-200);--border-strong:var(--pt-slate-300);--border-focus:var(--pt-blue);
--action-primary:var(--pt-blue);--action-primary-hover:var(--pt-blue-700);--action-primary-active:var(--pt-blue-800);--action-accent:var(--pt-red);--action-accent-hover:var(--pt-red-700);
}

/* tokens/typography.css */
:root{
--font-display:"Barlow Semi Condensed","Arial Narrow",sans-serif;
--font-body:"Albert Sans","Helvetica Neue",Arial,sans-serif;
--font-mono:"SF Mono",Menlo,Consolas,monospace;
/* Scale */
--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--text-4xl:48px;--text-5xl:64px;--text-6xl:84px;
--leading-tight:1.05;--leading-snug:1.2;--leading-normal:1.5;--leading-relaxed:1.65;
--tracking-tight:-0.015em;--tracking-normal:0;--tracking-wide:0.08em;--tracking-caps:0.14em;
--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
}
html{font-family:var(--font-body);color:var(--text-body);-webkit-font-smoothing:antialiased}
a{color:var(--text-link)}a:hover{color:var(--text-link-hover)}

/* tokens/spacing.css */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;
--container-max:1200px;--container-pad:var(--space-6);--section-pad:var(--space-24);
--control-h-sm:36px;--control-h-md:44px;--control-h-lg:52px;
}

/* tokens/effects.css */
:root{
--radius-none:0;--radius-sm:2px;--radius-md:4px;--radius-pill:999px;
--shadow-sm:0 1px 2px rgba(11,18,32,.06);--shadow-md:0 4px 12px rgba(11,18,32,.08);--shadow-lg:0 12px 32px rgba(11,18,32,.12);
--focus-ring:0 0 0 3px var(--pt-blue-100);
--ease-standard:cubic-bezier(.2,0,0,1);/* @kind other */
--duration-fast:120ms;/* @kind other */
--duration-base:200ms;/* @kind other */
/* Tile motif: 45°-rotated squares (the logo's diamonds), used as section dividers and bullets */
--tile-size:12px;
--pattern-grout:repeating-linear-gradient(0deg,transparent 0 47px,var(--pt-slate-100) 47px 48px),repeating-linear-gradient(90deg,transparent 0 47px,var(--pt-slate-100) 47px 48px);
--pattern-grout-mask:linear-gradient(to bottom,#000 0%,transparent 100%);/* @kind other */
}

/* tokens/icons.css */
/* Lucide icons. The design system loads them from CDN via CSS mask; this site vendors the same icons as an inline SVG sprite
   (src/assets/icons/sprite.svg) and references them with <svg class="pt-icon"><use href="#i-phone"/></svg>. Same sizes: 16 / 20 / 28. */
.pt-icon{display:inline-block;width:20px;height:20px;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pt-icon.sm{width:16px;height:16px}.pt-icon.lg{width:28px;height:28px}.pt-icon.xs{width:14px;height:14px}

/* site.css */
/* ProTile site styles. Every value comes from the design-system tokens (src/styles/tokens/)
   and the measurements in the Claude Design mockups (ProTile Website.dc.html, SiteHeader, SiteFooter).
   Desktop first at 1280, with responsive rules at the bottom (the mockups are desktop only). */

/* ---- Base ---- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;color:var(--text-heading);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
button{font:inherit}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.pt-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pt-skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--pt-blue);color:#fff;padding:10px 14px;border-radius:var(--radius-sm);font-weight:600}
.pt-skip:focus{top:12px;color:#fff}

.pt-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad)}

/* ---- Type ---- */
.pt-h1{font-size:var(--text-5xl);margin:0 0 20px;text-wrap:balance}
.pt-h1--xl{font-size:var(--text-6xl);margin-bottom:24px}
.pt-h2{font-size:var(--text-4xl)}
.pt-h3{font-size:var(--text-3xl)}
.pt-lead{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--text-body);max-width:56ch}
.pt-lead--xl{font-size:var(--text-xl);max-width:52ch;margin-bottom:32px}
.pt-body-lg{font-size:var(--text-md)}
.pt-muted{font-size:var(--text-sm);color:var(--text-muted)}
.pt-xs{font-size:var(--text-xs)}
.pt-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--pt-red)}
.pt-tile{display:inline-block;width:8px;height:8px;background:var(--pt-red);transform:rotate(45deg);flex:none}
.pt-tile--blue{background:var(--pt-blue)}
.pt-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--pt-blue);font-size:var(--text-sm)}
.pt-icon.is-red{color:var(--pt-red)}

/* ---- Buttons (mirrors Button.jsx) ---- */
.pt-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-h-md);padding:0 20px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--duration-base) var(--ease-standard),transform var(--duration-fast)}
.pt-btn--sm{height:var(--control-h-sm);padding:0 14px}
.pt-btn--lg{height:var(--control-h-lg);padding:0 26px;font-size:var(--text-md)}
.pt-btn .pt-icon{width:18px;height:18px}.pt-btn--sm .pt-icon{width:16px;height:16px}
.pt-btn:active{transform:translateY(1px)}
.pt-btn--primary{background:var(--action-primary);color:var(--text-on-brand)}
.pt-btn--primary:hover{background:var(--action-primary-hover);color:#fff}
.pt-btn--primary:active{background:var(--action-primary-active)}
.pt-btn--accent{background:var(--action-accent);color:var(--text-on-brand)}
.pt-btn--accent:hover{background:var(--action-accent-hover);color:#fff}
.pt-btn--accent:active{background:#8f0e0e}
.pt-btn--secondary{background:transparent;color:var(--pt-blue);border-color:var(--pt-blue)}
.pt-btn--secondary:hover{background:var(--pt-blue-50);color:var(--pt-blue)}
.pt-btn--outline{background:transparent;color:var(--text-heading);border-color:var(--border-strong)}
.pt-btn--outline:hover{background:var(--surface-subtle)}
.pt-btn--ghost{background:transparent;color:var(--text-heading)}
.pt-btn--ghost:hover{background:var(--surface-subtle);color:var(--text-heading)}
.pt-btn--inverse{background:var(--pt-white);color:var(--pt-blue)}
.pt-btn--inverse:hover{background:var(--pt-slate-100);color:var(--pt-blue)}
.pt-btn[disabled]{opacity:.45;cursor:not-allowed}

/* ---- Badge / Tag / Tabs ---- */
.pt-badges{display:flex;gap:6px;flex-wrap:wrap}
.pt-hero .pt-badges{gap:8px;margin-bottom:24px}
.pt-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;background:var(--pt-slate-100);color:var(--pt-slate-700);border-radius:var(--radius-sm);white-space:nowrap}
.pt-badge--blue{background:var(--pt-blue-50);color:var(--pt-blue)}
.pt-badge--red{background:var(--pt-red-50);color:var(--pt-red-700)}
.pt-badge--success{background:var(--pt-success-50);color:var(--pt-success)}
.pt-badge--solid{background:var(--pt-blue);color:#fff}
.pt-badge--accent{background:var(--pt-red);color:#fff}
.pt-tags{display:flex;gap:6px;flex-wrap:wrap}
.pt-tag{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:var(--text-sm);font-weight:500;color:var(--text-heading);background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}
.pt-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-default)}
.pt-tab{height:44px;padding:0 16px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast)}
.pt-tab[aria-selected="true"]{color:var(--text-heading);border-bottom-color:var(--pt-red)}

/* ---- Card (mirrors Card.jsx) ---- */
.pt-card{display:flex;flex-direction:column;background:var(--surface-card);color:var(--text-body);border:1px solid var(--border-default);border-radius:var(--radius-sm);overflow:hidden;transition:border-color var(--duration-base)}
a.pt-card:hover{border-color:var(--border-strong);color:var(--text-body)}
.pt-card__media{aspect-ratio:16/10;background:var(--pt-slate-200)}
.pt-card__body{padding:24px;display:flex;flex-direction:column;gap:8px;flex:1}
.pt-card__eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--pt-red)}
.pt-card__title{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);line-height:var(--leading-snug);color:var(--text-heading);letter-spacing:var(--tracking-tight)}
.pt-card__text{font-size:var(--text-sm);line-height:var(--leading-relaxed)}
.pt-card__footer{margin-top:auto;padding-top:12px}
.pt-card__meta{margin-top:14px;font-size:var(--text-xs);color:var(--text-muted)}
.pt-service-icon{width:44px;height:44px;background:var(--pt-blue-50);color:var(--pt-blue);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);margin-bottom:14px}
.pt-service-icon .pt-icon{width:22px;height:22px}
.pt-photo{width:100%;aspect-ratio:16/10;object-fit:cover}
.pt-photo--placeholder{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff}

/* ---- Header (SiteHeader.dc.html) ---- */
.pt-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--border-default)}
.pt-utility{background:var(--pt-slate-950);color:#fff;font-size:var(--text-xs);font-weight:500}
.pt-utility__row{height:34px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.pt-utility__group{display:flex;gap:20px}
.pt-utility__item{display:flex;gap:6px;align-items:center;white-space:nowrap}
.pt-utility__row>.pt-utility__item{gap:8px}
.pt-header__row{height:76px;display:flex;align-items:center;gap:40px}
.pt-logo img{height:48px;width:auto}
.pt-nav{display:flex;gap:4px;margin-left:auto}
.pt-nav__link{padding:8px 14px;font-size:var(--text-sm);font-weight:600;color:var(--text-heading);border-bottom:2px solid transparent;transition:color var(--duration-fast)}
.pt-nav__link:hover{color:var(--pt-blue)}
.pt-nav__link.is-active{color:var(--pt-blue);border-bottom-color:var(--pt-red)}
.pt-menu-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-heading);cursor:pointer;margin-left:auto}
.pt-menu-toggle .pt-icon:last-child{display:none}
.pt-menu-toggle[aria-expanded="true"] .pt-icon:first-child{display:none}
.pt-menu-toggle[aria-expanded="true"] .pt-icon:last-child{display:block}

/* ---- Contact slots (filled by contact.js) ---- */
.pt-contact{display:inline-flex;align-items:center;gap:8px;min-height:20px}
.pt-contact__reveal{background:none;border:none;padding:0;margin:0;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:currentColor;opacity:.9}
.pt-contact__reveal:hover{opacity:1}
.pt-contact a{color:inherit;font-weight:inherit}
.pt-contact--utility{gap:6px}
.pt-contact--utility .pt-icon{width:14px;height:14px}
.pt-contact--strong{font-weight:600;color:var(--pt-blue);font-size:var(--text-md)}
.pt-contact--strong a{color:var(--pt-blue)}
.pt-footer .pt-contact .pt-icon{color:var(--pt-red)}
.pt-footer .pt-contact a{color:#fff}
/* The "(208) …" button on the Services page is a secondary lg Button in the mockup */
.pt-contact--button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-h-lg);padding:0 26px;font-size:var(--text-md);font-weight:600;color:var(--pt-blue);border:1px solid var(--pt-blue);border-radius:var(--radius-sm);transition:background var(--duration-base) var(--ease-standard)}
.pt-contact--button:hover{background:var(--pt-blue-50)}
.pt-contact--button .pt-contact__reveal{text-decoration:none;opacity:1}
.pt-contact--button .pt-icon{width:18px;height:18px}
.pt-contact--button a{display:inline-flex;align-items:center;gap:8px;color:var(--pt-blue)}
.pt-contact.is-loading .pt-contact__reveal{opacity:.5;cursor:progress}

/* ---- Footer (SiteFooter.dc.html) ---- */
.pt-footer{background:var(--pt-slate-950);color:#fff;padding:64px 0 32px}
.pt-footer__grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:40px;padding-bottom:48px;border-bottom:1px solid var(--pt-slate-800)}
.pt-footer__logo{height:36px;width:auto;filter:brightness(0) invert(1)}
.pt-footer__blurb{font-size:var(--text-sm);color:var(--pt-slate-400);line-height:var(--leading-relaxed);max-width:34ch;margin-top:16px}
.pt-footer__head{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--pt-slate-400);margin-bottom:16px}
.pt-footer__list{display:flex;flex-direction:column;gap:10px;font-size:var(--text-sm)}
.pt-footer__list a{color:#fff}
.pt-footer__list a:hover{color:var(--pt-slate-300)}
.pt-footer__contact{display:flex;flex-direction:column;gap:10px;font-size:var(--text-sm)}
.pt-footer__line{display:flex;gap:8px;align-items:center}
a.pt-footer__line{color:#fff}
a.pt-footer__line:hover{color:var(--pt-slate-300)}
.pt-footer__bottom{display:flex;justify-content:space-between;gap:16px;padding-top:24px;font-size:var(--text-xs);color:var(--pt-slate-500)}
.pt-footer__legal{display:flex;gap:18px;flex-wrap:wrap}
.pt-footer__legal a{color:var(--pt-slate-300)}
.pt-footer__legal a:hover{color:#fff}
.pt-tiles{display:flex;gap:6px}
.pt-tiles i,.pt-quote__mark i{display:block;background:var(--pt-blue)}
.pt-tiles i{width:8px;height:8px;transform:rotate(45deg);margin:4px}
.pt-tiles i.r,.pt-quote__mark i.r{background:var(--pt-red)}

/* ---- Hero ---- */
.pt-hero{position:relative;background:var(--surface-subtle);border-bottom:1px solid var(--border-default);overflow:hidden}
.pt-grout{position:absolute;inset:0;background-image:var(--pattern-grout);-webkit-mask-image:var(--pattern-grout-mask);mask-image:var(--pattern-grout-mask);pointer-events:none}
.pt-hero>.pt-container{position:relative;padding-top:80px;padding-bottom:80px}
.pt-hero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:center}
.pt-hero__grid--detail{padding-top:64px!important}
.pt-hero--form>.pt-container{padding-top:96px;padding-bottom:96px}
.pt-hero__tiles-wrap{min-width:0}
.pt-hero__tiles{display:grid;grid-template-columns:1fr 1fr;gap:4px;transform:rotate(45deg) scale(.78);aspect-ratio:1}
.pt-hero__tiles .b{background:var(--pt-blue)}
.pt-hero__tiles .r{background:var(--pt-red)}
.pt-hero__tiles .p{background:#aab6c6;display:flex;align-items:center;justify-content:center;aspect-ratio:1;width:100%;height:100%;object-fit:cover}
.pt-hero__tiles img.p{aspect-ratio:auto;min-height:0}
.pt-hero__tiles .p span{transform:rotate(-45deg);font-size:11px;color:#fff;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.pt-actions{display:flex;gap:12px;flex-wrap:wrap}
.pt-actions--center{align-items:center}
.pt-actions--end{justify-content:flex-end}
.pt-crumb{display:flex;gap:8px;align-items:center;font-size:var(--text-sm);color:var(--text-muted);margin-bottom:24px}
.pt-crumb span{color:var(--text-heading);font-weight:600}

/* ---- Legal pages (privacy, cookies, terms, accessibility) ---- */
.pt-legal{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:64px;align-items:start}
.pt-legal__meta{margin-top:20px;font-size:var(--text-sm);color:var(--text-muted)}
.pt-legal__body{max-width:72ch}
.pt-legal__body h2{margin:40px 0 12px}
.pt-legal__body h2:first-child{margin-top:0}
.pt-legal__body p{margin:0 0 16px}
.pt-legal__list{margin:0 0 16px;padding-left:22px;list-style:disc}
.pt-legal__list li{margin-bottom:8px;padding-left:4px}
.pt-legal__list li::marker{color:var(--pt-red)}
.pt-legal__aside{position:sticky;top:24px}
.pt-legal__aside .pt-list a{color:var(--text-heading);font-weight:500}
.pt-legal__aside .pt-list a:hover{color:var(--pt-blue)}
.pt-contact--inline{display:inline-flex;vertical-align:baseline}
.pt-contact--inline .pt-contact__reveal{padding:0 4px}

/* ---- Cookie notice ---- */
.pt-cookie{position:fixed;left:24px;bottom:24px;z-index:90;max-width:min(440px,calc(100vw - 48px))}
.pt-cookie[hidden]{display:none}
.pt-cookie__row{display:flex;align-items:center;gap:16px;padding:16px 16px 16px 20px;background:var(--surface-card);border:1px solid var(--border-default);border-top:3px solid var(--pt-blue);box-shadow:var(--shadow-lg);animation:pt-cookie-in .3s var(--ease-standard)}
@keyframes pt-cookie-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pt-cookie__text{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-body)}
.pt-cookie__text .pt-icon{flex:none;margin-top:2px}
.pt-cookie__text a{font-weight:600;white-space:nowrap}
.pt-cookie .pt-btn{flex:none}

/* ---- Sections ---- */
.pt-section{padding:var(--section-pad) 0}
.pt-section--subtle{background:var(--surface-subtle);border-top:1px solid var(--border-default);border-bottom:1px solid var(--border-default)}
.pt-section--flush-top{padding-top:0}
.pt-section--projects{padding-top:64px}
.pt-section--after{padding:64px 0}
.pt-section-head{margin-bottom:40px}
.pt-section-head--split{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.pt-grid{display:grid;gap:24px}
.pt-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pt-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pt-split{display:grid;gap:64px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.pt-split--5-7{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.pt-split--7-5{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.pt-split--top{align-items:start}
.pt-split--center{align-items:center}

.pt-trust{border-bottom:1px solid var(--border-default)}
.pt-trust__row{padding-top:20px;padding-bottom:20px;display:flex;justify-content:space-between;gap:24px;font-size:var(--text-sm);font-weight:600;color:var(--text-heading);flex-wrap:wrap}
.pt-trust__item{display:flex;gap:10px;align-items:center}
.pt-trust__item .pt-icon{color:var(--pt-blue)}

.pt-list{display:flex;flex-direction:column;gap:12px;margin:0 0 32px}
.pt-h2+.pt-list{margin-top:24px}
.pt-list li{display:flex;gap:12px;align-items:flex-start;font-size:var(--text-md);color:var(--text-heading);line-height:var(--leading-normal)}
.pt-list li .pt-tile{margin-top:8px}
.pt-list--sm{gap:10px;margin:0}
.pt-list--sm li{font-size:var(--text-sm)}
.pt-list--sm li .pt-tile{margin-top:7px}
.pt-list--tight{margin-bottom:40px}
.pt-list--tight li{align-items:center}
.pt-list--tight li .pt-tile{margin-top:0}

/* Steps (home 4-up and detail 3-up) */
.pt-steps{display:grid;gap:32px}
.pt-steps--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pt-steps--inline{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:64px}
.pt-step{border-top:2px solid var(--pt-blue);padding-top:20px}
.pt-step.is-accent{border-top-color:var(--pt-red)}
.pt-step__num{font-family:var(--font-display);font-weight:600;font-size:var(--text-3xl);color:var(--pt-blue);line-height:1;margin-bottom:12px}
.pt-step.is-accent .pt-step__num{color:var(--pt-red)}
.pt-step__title{font-size:var(--text-lg);font-weight:600;color:var(--text-heading);margin-bottom:8px}
.pt-step__body{font-size:var(--text-sm)}
.pt-steps--inline .pt-step{padding-top:16px;display:flex;gap:16px;align-items:baseline}
.pt-steps--inline .pt-step__num{font-size:var(--text-2xl);margin:0;flex:none}
.pt-steps--inline .pt-step__title{margin:0}

/* Testimonial */
.pt-quote{margin:80px 0 0;background:var(--surface-inverse);color:#fff;padding:48px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:center;border-radius:var(--radius-sm)}
.pt-section--flush-top .pt-quote{margin-top:0}
.pt-quote__mark{display:grid;grid-template-columns:repeat(2,28px);gap:3px;transform:rotate(45deg);margin:0 20px}
.pt-quote__mark i{height:28px}
.pt-quote__text{margin:0 0 16px;font-family:var(--font-display);font-weight:500;font-style:italic;font-size:var(--text-3xl);line-height:var(--leading-snug);text-wrap:pretty}
.pt-quote__by{font-size:var(--text-sm);color:var(--pt-slate-300);display:flex;gap:10px;align-items:center}
.pt-stars{display:flex;color:var(--pt-red);gap:2px}

/* Estimate band */
.pt-band{background:var(--surface-brand);color:#fff}
.pt-band__row{padding-top:64px;padding-bottom:64px;display:flex;justify-content:space-between;align-items:center;gap:40px}
.pt-band__title{color:#fff;margin-bottom:8px}
.pt-band__body{font-size:var(--text-lg);color:var(--pt-blue-100)}

/* Services split band */
.pt-split-band{background:var(--surface-subtle);border-top:1px solid var(--border-default)}
.pt-split-band__row{padding-top:64px;padding-bottom:64px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.pt-split-band h2{margin-bottom:12px}

/* Projects */
.pt-filter-row{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px;flex-wrap:wrap}
.pt-project.is-hidden{display:none}

/* FAQ */
.pt-faq__item{padding:20px 0;border-top:1px solid var(--border-default)}
.pt-faq__q{font-family:var(--font-body);font-size:var(--text-md);font-weight:600;color:var(--text-heading);margin-bottom:8px;letter-spacing:0;line-height:var(--leading-normal)}
.pt-faq__a{font-size:var(--text-sm)}
.pt-h3+.pt-faq{margin-top:24px}

/* Process page */
.pt-process{display:flex;flex-direction:column}
.pt-process__row{display:grid;grid-template-columns:120px minmax(0,5fr) minmax(0,4fr);gap:48px;padding:48px 0;border-top:1px solid var(--border-default);align-items:start}
.pt-process__num{font-family:var(--font-display);font-weight:600;font-size:var(--text-5xl);color:var(--pt-blue);line-height:1}
.pt-process__row.is-accent .pt-process__num{color:var(--pt-red)}
.pt-process__row h2{margin-bottom:12px}
.pt-process__row p+p{margin-top:16px}
.pt-panel{background:var(--surface-subtle);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:24px}
.pt-panel__head{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}
.pt-panel__foot{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-default);font-size:var(--text-sm);display:flex;gap:8px;align-items:center}
.pt-panel__foot .pt-icon{color:var(--pt-blue)}

/* About */
.pt-facts{border-bottom:1px solid var(--border-default)}
.pt-facts__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.pt-fact{padding:32px;border-right:1px solid var(--border-default)}
.pt-fact:first-child{padding-left:0}
.pt-fact:last-child{border-right:none}
.pt-fact__n{font-family:var(--font-display);font-weight:700;font-size:var(--text-4xl);line-height:1;color:var(--pt-blue);margin-bottom:8px}
.pt-fact__l{font-size:var(--text-sm)}
.pt-values{display:flex;flex-direction:column}
.pt-values__row{padding:24px 0;border-top:1px solid var(--border-default);display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px}
.pt-values__t{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;letter-spacing:0;line-height:var(--leading-normal)}
.pt-split .pt-h2+p{margin:16px 0 24px}
.pt-map{border:1px solid var(--border-default)}
.pt-map.pt-photo--placeholder{color:var(--text-muted)}
.pt-map--svg{width:100%;height:auto;display:block;background:#fff}
/* Live map (MapLibre) sits over the drawn SVG and fades in once basemap tiles have rendered */
.pt-map-wrap{position:relative;aspect-ratio:16/10;border:1px solid var(--border-default);background:#fff;overflow:hidden}
.pt-map-wrap .pt-map--svg{position:absolute;inset:0;width:100%;height:100%;border:none}
.pt-map-wrap .pt-map-live{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity var(--duration-base) var(--ease-standard);pointer-events:none}
.pt-map-wrap.is-live .pt-map-live{opacity:1;pointer-events:auto}
.pt-map-wrap.is-live .pt-map--svg{visibility:hidden}
.pt-map-caption{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px;font-size:var(--text-xs);font-weight:500;color:var(--text-heading)}
.pt-map-caption span{display:flex;align-items:center;gap:8px}
.pt-map-caption__dot--split{width:11px;height:11px;background:linear-gradient(45deg,var(--pt-blue) 50%,var(--pt-red) 50%)}
.pt-map-caption__dot{width:9px;height:9px;transform:rotate(45deg);flex:none;margin:0 2px}
.pt-map-live .maplibregl-ctrl-group{border-radius:var(--radius-sm);box-shadow:none;border:1px solid var(--border-strong)}
.pt-map-live .maplibregl-ctrl-group button{width:32px;height:32px}
.pt-map-live .maplibregl-ctrl-attrib{font-family:var(--font-body);font-size:11px;background:rgba(255,255,255,.92);border-radius:var(--radius-sm)}
.pt-map-live .maplibregl-ctrl-attrib.maplibregl-compact{min-height:24px;margin:8px}
.pt-map-live .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show){width:24px;height:24px;padding:0;border-radius:50%;background:transparent}
.pt-map-live .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show) .maplibregl-ctrl-attrib-inner{display:none}
.pt-map-live .maplibregl-ctrl-attrib.maplibregl-compact-show{padding:4px 30px 4px 8px;max-width:calc(100% - 16px);line-height:1.4}
.pt-map-live .maplibregl-ctrl-attrib-inner{white-space:normal}
.pt-map-live .maplibregl-ctrl-attrib a{color:var(--text-muted)}
.pt-map-live .maplibregl-cooperative-gesture-screen{font-family:var(--font-body)}
.pt-area-ext{margin-top:24px;padding-top:20px;border-top:1px solid var(--border-default)}
.pt-area-ext .pt-panel__head{margin-bottom:10px}
.pt-tags--muted .pt-tag{color:var(--text-body);border-style:dashed}
.pt-tag--more{color:var(--text-muted);border-color:transparent;padding-left:4px}
.pt-area-ext__note{margin-top:14px;font-size:var(--text-sm);color:var(--text-body)}

/* About: at-work photo under the "How we work" heading */
.pt-about__work{margin-top:32px}

/* Estimate page */
.pt-contact-card{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;font-size:var(--text-sm)}
.pt-contact-card .pt-panel__head{margin-bottom:8px}
.pt-contact-card__t{color:var(--text-heading);line-height:var(--leading-normal)}
.pt-after{border-top:2px solid var(--pt-blue);padding-top:20px}
.pt-after__t{font-size:var(--text-lg);font-weight:600;color:var(--text-heading);margin-bottom:8px}
.pt-after p{font-size:var(--text-sm)}

/* ---- Form controls (mirror Input / Select / Checkbox / Radio / Switch) ---- */
.pt-form{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pt-form__full{grid-column:1/-1}
.pt-form__foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:8px;border-top:1px solid var(--border-default)}
.pt-form__foot a{font-weight:600}
.pt-form__status{grid-column:1/-1;display:none;padding:14px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500}
.pt-form__status.is-error{display:block;background:var(--pt-red-50);color:var(--pt-red-700)}
.pt-form__status.is-success{display:block;background:var(--pt-success-50);color:var(--pt-success)}
.pt-form.is-sent>:not(.pt-form__status){display:none}
.pt-form.is-sent .pt-form__status{grid-column:1/-1}
.pt-field{display:flex;flex-direction:column;gap:6px}
.pt-field__label{font-size:var(--text-sm);font-weight:500;color:var(--text-heading)}
.pt-field__req{color:var(--pt-red)}
.pt-field__hint{font-size:var(--text-xs);color:var(--text-muted);min-height:0}
.pt-field__hint:empty{display:none}
.pt-field.is-invalid .pt-field__hint{color:var(--pt-red)}
.pt-field.is-invalid .pt-input,.pt-field.is-invalid .pt-select{border-color:var(--pt-red)}
.pt-input-wrap{position:relative;display:block}
.pt-input,.pt-select{width:100%;height:var(--control-h-md);padding:0 14px;font-family:var(--font-body);font-size:var(--text-md);color:var(--text-heading);background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;transition:box-shadow var(--duration-fast)}
.pt-input:focus,.pt-select:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring)}
.pt-input--icon{padding-left:42px}
.pt-input--area{height:auto;padding:12px 14px;resize:vertical;min-height:110px}
.pt-input__icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:18px;height:18px;pointer-events:none}
.pt-select{appearance:none;-webkit-appearance:none;padding-right:42px}
.pt-select:invalid,.pt-select option[value=""]{color:var(--text-muted)}
.pt-select__chevron{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:18px;height:18px;pointer-events:none}
.pt-fieldset{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.pt-fieldset legend{padding:0;margin-bottom:0}
.pt-fieldset--gap{gap:12px}
.pt-radios{display:flex;flex-direction:column;gap:12px}
.pt-radio,.pt-check,.pt-switch{display:inline-flex;gap:12px;align-items:center;cursor:pointer;position:relative}
.pt-radio input,.pt-check input,.pt-switch input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.pt-radio__dot{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--surface-card);display:inline-flex;align-items:center;justify-content:center;flex:none}
.pt-radio input:checked+.pt-radio__dot{border-color:var(--pt-blue)}
.pt-radio input:checked+.pt-radio__dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--pt-blue)}
.pt-radio input:focus-visible+.pt-radio__dot,.pt-check input:focus-visible+.pt-check__box,.pt-switch input:focus-visible+.pt-switch__track{box-shadow:var(--focus-ring)}
.pt-radio__label,.pt-check__label,.pt-switch__label{font-size:var(--text-sm);font-weight:500;color:var(--text-heading);line-height:20px}
.pt-check{align-items:flex-start}
.pt-check__box{width:20px;height:20px;flex:none;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-card);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);color:#fff;transition:background var(--duration-fast)}
.pt-check__box .pt-icon{width:14px;height:14px;stroke-width:2.5;opacity:0}
.pt-check input:checked+.pt-check__box{background:var(--pt-blue);border-color:var(--pt-blue)}
.pt-check input:checked+.pt-check__box .pt-icon{opacity:1}
.pt-switch__track{width:40px;height:22px;border-radius:var(--radius-pill);background:var(--pt-slate-300);position:relative;transition:background var(--duration-base) var(--ease-standard);flex:none}
.pt-switch__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:left var(--duration-base) var(--ease-standard)}
.pt-switch input:checked+.pt-switch__track{background:var(--pt-blue)}
.pt-switch input:checked+.pt-switch__track .pt-switch__thumb{left:20px}
.pt-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

@media (min-width:901px){.pt-nav .pt-btn{display:none}}

/* ---- Reveal on load / scroll (site.js adds .js to <html> and .is-in when an element enters view) ----
   Short rise on the system's standard easing; nested reveals are neutralised so cards do not double-fade. */
.js .pt-reveal{opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease-standard),transform .45s var(--ease-standard);will-change:opacity,transform}
.js .pt-reveal.is-in{opacity:1;transform:none;will-change:auto}
.js .pt-reveal--slide{opacity:1;transform:translateY(18px)}
.js .pt-reveal--slide.is-in{transform:none}
.js .pt-reveal .pt-reveal{opacity:1;transform:none;transition:none}
/* Home hero diamond: the four tiles fade in one by one, clockwise from the top, once the block is in view.
   Only opacity/scale on the tiles themselves; the block's rotation is untouched. */
.js .pt-hero__tiles-wrap .pt-hero__tiles>*{opacity:0}
.js .pt-hero__tiles-wrap.is-in .pt-hero__tiles>*{animation:pt-tile-in .4s var(--ease-standard) both}
.js .pt-hero__tiles-wrap.is-in .pt-hero__tiles>:nth-child(1){animation-delay:.05s}
.js .pt-hero__tiles-wrap.is-in .pt-hero__tiles>:nth-child(2){animation-delay:.18s}
.js .pt-hero__tiles-wrap.is-in .pt-hero__tiles>:nth-child(4){animation-delay:.31s}
.js .pt-hero__tiles-wrap.is-in .pt-hero__tiles>:nth-child(3){animation-delay:.44s}
@keyframes pt-tile-in{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.js .pt-nav{transition:opacity .2s var(--ease-standard),transform .2s var(--ease-standard)}
@media (prefers-reduced-motion:reduce){.js .pt-reveal,.js .pt-reveal--slide,.js .pt-hero__tiles-wrap .pt-hero__tiles>*{opacity:1;transform:none;transition:none;animation:none}}

/* ---- Responsive (mockups are 1280 desktop; these keep the same hierarchy on smaller screens) ---- */
@media (max-width:1100px){
  .pt-h1--xl{font-size:var(--text-5xl)}
  .pt-hero__grid{gap:40px}
  .pt-process__row{grid-template-columns:80px minmax(0,1fr);gap:24px}
  .pt-process__row .pt-panel{grid-column:2}
}
@media (max-width:900px){
  .pt-utility__row>.pt-utility__item{display:none}
  .pt-utility__row{justify-content:flex-end}
  .pt-header__row{height:68px;gap:16px}
  .pt-logo img{height:40px}
  .pt-menu-toggle{display:inline-flex}
  .pt-header__cta{display:none}
  .pt-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--border-default);padding:8px 24px 16px;box-shadow:var(--shadow-md)}
  .pt-nav.is-open{display:flex;animation:pt-nav-in .2s var(--ease-standard)}
  @keyframes pt-nav-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .pt-nav__link{padding:14px 0;border-bottom:1px solid var(--border-default);font-size:var(--text-md)}
  .pt-nav__link.is-active{border-bottom-color:var(--border-default);box-shadow:inset 3px 0 0 var(--pt-red);padding-left:12px}
  .pt-nav .pt-btn{margin-top:12px;align-self:flex-start}
  .pt-hero__grid,.pt-split,.pt-split-band__row{grid-template-columns:1fr;gap:40px}
  /* Mobile hero imagery: the two photos as a side-by-side strip with the blue/red tiles as a thin accent bar.
     Same elements as the diamond, so nothing extra downloads. */
  .pt-hero__tiles-wrap{margin-top:8px}
  .pt-hero__tiles{transform:none;aspect-ratio:auto;grid-template-columns:1fr 1fr;gap:6px;max-width:none}
  .pt-hero__tiles .p{aspect-ratio:3/2;height:auto}
  .pt-hero__tiles .p span{transform:none}
  .pt-hero__tiles .b,.pt-hero__tiles .r{order:1;height:6px}
  .pt-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-steps--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-facts__row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-fact{padding:24px}
  .pt-fact:nth-child(2n){border-right:none}
  .pt-fact:nth-child(-n+2){border-bottom:1px solid var(--border-default)}
  .pt-band__row{flex-direction:column;align-items:flex-start;gap:24px}
  .pt-footer__grid{grid-template-columns:1fr 1fr}
  .pt-legal{grid-template-columns:1fr;gap:32px}
  .pt-legal__aside{position:static}
  .pt-actions--end{justify-content:flex-start}
  .pt-section-head--split{flex-direction:column;align-items:flex-start;gap:16px}
}
@media (max-width:640px){
  :root{--section-pad:64px}
  .pt-h1,.pt-h1--xl{font-size:var(--text-4xl)}
  .pt-h2{font-size:var(--text-3xl)}
  .pt-h3{font-size:var(--text-2xl)}
  .pt-lead--xl{font-size:var(--text-lg)}
  .pt-hero>.pt-container{padding-top:48px;padding-bottom:48px}
  .pt-hero__tiles .p{aspect-ratio:4/3}
  .pt-grid--3,.pt-grid--2,.pt-steps--4,.pt-steps--inline{grid-template-columns:1fr}
  .pt-trust__row{flex-direction:column;gap:12px}
  .pt-quote{grid-template-columns:1fr;padding:32px;gap:24px}
  .pt-quote__mark{margin:12px 0 12px 20px}
  .pt-quote__text{font-size:var(--text-2xl)}
  .pt-process__row{grid-template-columns:1fr;padding:32px 0}
  .pt-process__row .pt-panel{grid-column:1}
  .pt-process__num{font-size:var(--text-4xl)}
  .pt-values__row{grid-template-columns:1fr;gap:8px}
  .pt-footer__grid{grid-template-columns:1fr;gap:32px}
  .pt-footer__bottom{flex-direction:column}
  .pt-cookie{left:12px;right:12px;bottom:12px;max-width:none}
  .pt-cookie__row{flex-direction:column;align-items:stretch;gap:14px}
  .pt-cookie .pt-btn{width:100%}
  .pt-form{grid-template-columns:1fr;padding:24px}
  .pt-form__foot{flex-direction:column;align-items:stretch}
  .pt-form__foot .pt-btn{width:100%}
  .pt-contact-card{grid-template-columns:1fr}
  .pt-facts__row{grid-template-columns:1fr}
  .pt-fact{border-right:none;border-bottom:1px solid var(--border-default);padding:20px 0}
  .pt-fact:last-child{border-bottom:none}
  .pt-filter-row{flex-direction:column;align-items:flex-start}
  .pt-tabs{width:100%;overflow-x:auto}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pt-cookie__row{animation:none}
  *{transition:none!important}
}
