/* Shared visual primitives for the main EZ site and its review component. */
@font-face {
  font-family: "Barlow Condensed";
  src: url("/assets/barlow-condensed.e3e520cb74.woff2") format("woff2");
  font-weight: 700;
  font-display: swap;
}
:root {
  color-scheme: dark;
  --base: #101014;
  --panel: #17171d;
  --ink: #faf7fa;
  --muted: #c4beca;
  --accent: #ef91ff;
  --line: #38343e;
  --display: "Barlow Condensed", "Arial Narrow", sans-serif;
  font: 16px/1.6 system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--base); color: var(--ink); }
img { display: block; max-width: 100%; }
figure, p, dl, dd { margin: 0; }
h1, h2, h3 { margin: 0; }
h1, h2 { font-family: var(--display); font-weight: 700; line-height: .95; letter-spacing: -.01em; }
h1 { font-size: clamp(3.65rem, 6.2vw, 6.35rem); }
h2 { font-size: clamp(2.55rem, 4.2vw, 4.2rem); }
h3 { font-size: 1.08rem; line-height: 1.3; }
p { color: var(--muted); }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: 1rem; }
.shell { width: min(100% - 112px, 1360px); margin-inline: auto; }
.eyebrow { color: var(--accent); font-size: .76rem; line-height: 1.4; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 13px; }
.skip { position: fixed; top: 8px; left: 12px; padding: .6rem; background: var(--base); z-index: 5; transform: translateY(-150%); }
.skip:focus { transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.icon { display: inline-grid; place-items: center; width: 46px; height: 46px; color: var(--ink); border: 1px solid var(--line); background: var(--base); cursor: pointer; }
.button { background: var(--accent); color: #211127; display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 51px; padding: 12px 20px; font: 750 .95rem/1.25 system-ui, sans-serif; border: 1px solid transparent; text-decoration: none; cursor: pointer; }
.button:hover { background: #ffc3ff; }
.button svg, .text-link svg { flex: none; }
.button:disabled { opacity: .7; cursor: wait; }
.section { padding-block: clamp(54px, 6.6vw, 100px); }
.faqs { border-bottom: 1px solid var(--line); }
details { border-top: 1px solid var(--line); }
summary { list-style: none; cursor: pointer; padding: 16px 28px 16px 0; position: relative; font-weight: 700; }
summary::-webkit-details-marker { display: none; }
summary::before, summary::after { content: ""; position: absolute; width: 14px; height: 2px; right: 3px; top: calc(50% - 1px); background: var(--accent); }
summary::after { transform: rotate(90deg); }
details[open] summary::after { transform: none; }
details p { padding: 0 24px 16px 0; }
details a, .form-privacy a, .privacy a { color: var(--accent); }
.optional { font-size: .76rem; font-weight: 400; color: var(--muted); }
input, select, textarea { width: 100%; border: 1px solid #756779; border-radius: 0; background: #211a25; color: var(--ink); font: inherit; font-size: 1rem; padding: 10px; margin-top: 5px; min-height: 44px; }
textarea { resize: vertical; }
input::placeholder { color: #bfb2c5; }
dialog { width: min(100% - 24px, 650px); max-height: 92dvh; padding: 0; border: 1px solid #604263; background: #141117; color: var(--ink); }
dialog::backdrop { background: rgb(6 5 9 / 82%); }
html:has(dialog[open]) { overflow: hidden; }
.dialog-bar { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.dialog-bar h2 { font-size: 2.1rem; }
.menu-links { display: grid; padding: 12px 20px 22px; }
.menu-links a { padding: 13px 0; border-bottom: 1px solid var(--line); }
.menu-links a[aria-current] { color: var(--accent); }
.mobile-quote { display: none; }
.stars { gap: 2px; color: var(--accent); }
.menu-links a.button { justify-self: start; margin-top: 12px; padding: 9px 15px; }
.reviews-zone { background: #100f13; border-bottom: 1px solid var(--line); }
.reviews-layout { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.6fr); gap: clamp(24px, 6vw, 88px); align-items: center; }
.review-track {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.review-track::-webkit-scrollbar { display: none; }
.review-slide {
  flex: 0 0 81%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  min-height: 218px;
  padding: clamp(19px, 3vw, 39px);
  background: #211a25;
  border: 1px solid #4e4053;
  border-top: 2px solid var(--accent);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.review-track:not([data-loop]) .review-slide:last-child { scroll-snap-align: end; }
.review-slide blockquote { margin: 0 0 5px; max-width: 44ch; color: var(--ink); font-family: var(--display); font-size: clamp(1.55rem, 2.5vw, 2.25rem); line-height: 1.15; }
.review-score { margin: 5px 0; font-family: var(--display); font-size: 3.2rem; color: var(--ink); line-height: 1; }
.review-score span { font: 600 1.03rem system-ui, sans-serif; color: var(--muted); }
.review-source { color: var(--ink); font-size: .83rem; font-weight: 700; margin-top: auto; }
.review-source span { color: var(--muted); font-weight: 400; }
.review-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.review-pages { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); flex: 1; max-width: 264px; }
.review-controls button { border: 0; color: var(--muted); background: transparent; cursor: pointer; min-height: 44px; }
.review-pages button { display: grid; place-items: center; padding: 0 clamp(4px, .6vw, 7px); }
.review-pages button::before { content: ""; width: 100%; height: 3px; background: #786880; }
.review-pages button:hover::before, .review-pages button[aria-current]::before { background: var(--accent); }
.review-motion { padding: 0 8px; font: 650 .85rem system-ui, sans-serif; text-decoration: underline; text-underline-offset: 4px; }
.review-motion:hover { color: var(--accent); }
.google-rating {
  display: grid;
  justify-items: start;
  gap: 12px;
  width: fit-content;
  margin-top: 21px;
  padding: 15px 20px;
  border: 1px solid #5c4a60;
  background: #18151c;
  text-decoration: none;
}
.google-score { display: grid; gap: 4px; }
.google-source { display: flex; align-items: center; gap: 8px; }
.google-mark { flex: none; background: #fff; border-radius: 50%; padding: 4px; }
.google-count { font-size: .88rem; }
.review-topic { color: var(--accent); font-weight: 700; font-size: .9rem; }
@media (max-width: 760px) {
  .google-rating { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 12px; margin-top: 15px; padding: 15px 16px; }
  .google-source { flex-direction: column; align-items: flex-end; gap: 6px; }
  .google-mark { width: 30px; height: 30px; padding: 5px; }
  .review-slide { flex-basis: 88%; }
}

.menu-links a { text-decoration:none; font-weight:650; }
.stars { display:inline-flex; align-items:center; }
@media (max-width:760px) {
  .shell { width:calc(100% - 38px); }
  .reviews-layout { grid-template-columns:minmax(0,1fr); }
  .mobile-quote { position: fixed; inset: auto 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; z-index: 2; padding: 8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); border-top: 1px solid var(--line); background: #100d14; }
  .mobile-call, .mobile-quote .button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; font-size: .92rem; }
  .mobile-call { text-decoration: none; font-weight: 700; color: var(--ink); border: 1px solid #78637d; }
  .mobile-call svg { color: var(--accent); flex: none; }
  .mobile-quote .button { padding: 8px; }
}

.ez-site { --site-gutter: clamp(19px, 5vw, 78px); --site-rule: #34303a; --site-panel: #19151d; background:#111014; }
.site-shell { width: min(100% - (var(--site-gutter) * 2), 1320px); margin-inline: auto; }
.site-header { border-bottom: 1px solid var(--site-rule); background: #111014; }
.site-header-row,.site-nav,.site-nav-actions { display:flex; align-items:center; }
.site-header-row { justify-content: space-between; gap:clamp(13px,3vw,44px); min-height:86px; }
.site-logo { display:inline-block; flex:none; }
.site-logo img { object-fit:contain; }
.site-nav { gap:clamp(15px,2.4vw,35px); margin-inline: auto; }
.site-nav a,.site-desktop-call { font-weight:650; font-size:.88rem; text-decoration:none; white-space:nowrap; }
.site-nav a[aria-current],.site-nav a:hover,.site-desktop-call:hover { color:var(--accent); }
.site-nav-actions { gap:clamp(13px,2vw,28px); }
.site-desktop-call { display:inline-flex; align-items:center; gap:7px; }
.site-menu-button { display:none; }
.site-primary,.site-secondary { min-height:50px; gap:12px; white-space:normal; }
.site-secondary { background:transparent; color:var(--ink); border-color:#6b526f; }
.site-secondary:hover { background:#322437; }
.site-kicker { color:var(--accent); text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; font-weight:750; line-height:1.35; margin-bottom:15px; }
.site-home .site-hero-grid { --hero-min:640px; }
.site-hero { border-bottom:1px solid var(--site-rule); }
.site-hero-grid { display:grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); min-height:clamp(510px,48vw,var(--hero-min,585px)); align-items:center; position:relative; }
.site-hero-copy { position:relative; z-index:1; padding:44px 22px 58px 0; }
.site-hero h1,.site-booking h1 { font-size:clamp(3.75rem,7.1vw,7.75rem); font-weight:700; line-height:.85; letter-spacing:-.015em; max-width:10ch; }
.site-home .site-hero h1 { max-width:9ch; }
.site-hero-image { position:relative; align-self:stretch; isolation:isolate; min-width:0; margin-right:calc(var(--site-gutter) * -.48); overflow:hidden; }
.site-hero-image img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:50% 55%; }
.site-hero-image::after { content:""; position:absolute; z-index:0; inset:0; background:linear-gradient(90deg,#111014 0%,rgb(17 16 20/.38) 10%,transparent 30%),linear-gradient(0deg,rgb(10 8 12/.78),transparent 24%); pointer-events:none; }
.site-hero-image figcaption { position:absolute; z-index:1; right:22px; bottom:18px; text-align:right; font-size:.73rem; letter-spacing:.06em; font-weight:650; color:#fff; }
.site-lead { color:#ded7e2; font-size:clamp(1.02rem,1.45vw,1.22rem); line-height:1.56; max-width:42ch; margin-top:22px; }
.site-hero .site-lead { max-width:35ch; }
.site-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; margin-top:25px; }
.site-link { color:var(--accent); text-decoration:none; font-weight:700; display:inline-flex; align-items:center; gap:7px; min-height:44px; width:fit-content; }
.site-link svg { flex:none; }
.site-link:hover { text-decoration:underline; text-underline-offset:.26em; }
.site-crumb { display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:.76rem; line-height:1.3; color:var(--muted); margin-bottom:23px; }
.site-crumb a { color:var(--accent); text-decoration:none; display:inline-flex; min-height:24px; align-items:center; }
.site-crumb a:hover { text-decoration:underline; }
.site-trust { background:#1b1720; border-bottom:1px solid var(--site-rule); }
.site-trust-row { display:grid; grid-template-columns:1.24fr 1fr 1fr; }
.site-trust-row>div { display:flex; align-items:center; gap:13px; padding:18px clamp(14px,2.8vw,37px); min-height:77px; }
.site-trust-row>div:first-child { padding-left:0; }
.site-trust-row>div+div { border-left:1px solid var(--site-rule); }
.site-trust-row>div>svg { flex:none; color:var(--accent); }
.site-trust-row>div>span { display:grid; font-size:.77rem; color:var(--muted); line-height:1.4; }
.site-trust-row>div>span strong { color:var(--ink); font-size:.94rem; }
.site-rating { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:.79rem; color:#e0d6e6; }
.site-rating .stars { display:flex; gap:0; color:#ffce74; }
.site-rating .stars svg { width:15px; }
.site-rating strong { color:var(--ink); font-size:1.04rem; white-space:nowrap; }
.site-rating .google-mark { flex:none; margin-right:3px; }
.site-section { padding-block:clamp(52px,7vw,105px); }
.site-rule { border-top:1px solid var(--site-rule); }
.ez-site h2 { font-size:clamp(2.65rem,5vw,5.15rem); line-height:.94; max-width:17ch; }
.site-section-head { display:flex; justify-content:space-between; align-items:end; gap:18px 42px; margin-bottom:clamp(24px,4vw,49px); }
.site-section-head>p,.site-section-head>div>.site-lead { max-width:37ch; }
.site-intro { background:radial-gradient(ellipse at right bottom,#241a28 0%,#161219 55%,#111014 88%); border-bottom:1px solid var(--site-rule); padding-block:clamp(36px,5.7vw,82px); }
.site-intro .site-section-head { margin-bottom:0; }
.site-intro h1 { font-size:clamp(3.7rem,7.6vw,8rem); line-height:.82; max-width:11ch; }
.site-intro .site-lead { margin:0; }
.site-intro .site-link { margin-top:13px; }
.site-services-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 15px; }
.site-services-front .site-service-tile:nth-child(-n+2) { grid-column:span 3; }
.site-services-front { grid-template-columns:repeat(6,minmax(0,1fr)); }
.site-services-front .site-service-tile:nth-child(n+3) { grid-column:span 3; }
@media (min-width: 950px) {
  .site-services-front { grid-template-columns:repeat(12,minmax(0,1fr)); }
  .site-services-front .site-service-tile:nth-child(-n+2) { grid-column:span 6; }
}
.site-service-tile { display:block; text-decoration:none; background:#17141a; outline-offset:3px; border:1px solid var(--site-rule); min-width:0; }
.site-tile-visual { position:relative; aspect-ratio:2/1; overflow:hidden; }
.site-services-front .site-service-tile:nth-child(-n+2) .site-tile-visual { aspect-ratio:2.15/1; }
.site-tile-visual img { object-fit:cover; width:100%; height:100%; transition:transform .21s ease; }
.site-service-tile:hover img { transform:scale(1.04); }
.site-tile-info { padding:14px clamp(12px,1.9vw,25px) 18px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:start; }
.site-tile-info h3,.ez-site .site-tile-info h2 { font-family:var(--display); font-size:clamp(1.55rem,2.7vw,2.55rem); line-height:1.02; }
.site-tile-info p { margin-top:6px; font-size:.9rem; line-height:1.4; }
.tile-arrow { display:grid; place-items:center; width:39px; height:39px; color:var(--accent); background:#231927; border:1px solid #48354d; }
.site-service-tile:hover .tile-arrow { background:var(--accent); color:#1d1120; }
.site-work { background:#151218; }
.site-home-projects { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(0,1fr); gap:14px; align-items:start; }
.site-home-projects .site-project:first-child { grid-row:span 2; }
.site-home-projects .site-project:first-child .site-project-image { aspect-ratio:1.05/1; }
.site-home-projects .site-project:not(:first-child) .site-project-image { aspect-ratio:2.72/1; }
.site-project { min-width:0; background:#1a161d; border:1px solid var(--site-rule); }
.site-project-image { position:relative; aspect-ratio:1.55/1; overflow:hidden; }
.site-project-image img { width:100%; height:100%; object-fit:cover; }
.site-home-projects .site-project:first-child img { object-position:57% 55%; }
.site-project figcaption { display:grid; gap:4px; padding:12px 14px 14px; }
.site-project figcaption span { font-size:.68rem; font-weight:750; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); }
.site-project figcaption strong { font-size:.98rem; font-weight:670; color:var(--ink); line-height:1.28; }
.site-project-open { display:none; position:absolute; inset:0; border:0; cursor:zoom-in; background:transparent; width:100%; }
.site-project-open:focus-visible { outline-offset:-4px; }
.site-project-open::after { content:""; position:absolute; right:13px; bottom:13px; width:33px; height:33px; border:1px solid #66546c; background:linear-gradient(var(--accent),var(--accent)) center/13px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) center/1px 13px no-repeat,#17121b; }
.site-enhanced .site-project-open { display:block; }
.site-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.site-gallery { padding-top:clamp(30px,5vw,63px); }
.site-filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:30px; }
.site-filters button { background:#1c1721; color:var(--ink); border:1px solid #554459; padding:8px 14px; min-height:44px; cursor:pointer; font:inherit; font-size:.9rem; }
.site-filters button[aria-pressed="true"] { color:#201124; background:var(--accent); border-color:var(--accent); font-weight:700; }
.site-project-dialog { background:#151218; border:1px solid #5f4766; width:min(900px,100% - 24px); max-height:calc(100% - 24px); color:var(--ink); padding:16px; }
.site-project-dialog img { width:100%; height:auto; max-height:72vh; object-fit:contain; background:#100e12; }
.site-project-dialog>p { margin:10px 0 0; }
.site-project-dialog .dialog-bar h2 { font-size:clamp(1.9rem,4vw,3.1rem); max-width:none; }
.site-studio { background:#1a151e; border-block:1px solid var(--site-rule); }
.site-editorial { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(26px,6vw,100px); align-items:center; }
.site-editorial figure { position:relative; aspect-ratio:1.36; overflow:hidden; }
.site-editorial figure img { width:100%; height:100%; object-fit:cover; }
.site-editorial figcaption { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(0deg,#0c0a0f,rgb(12 10 15/.72) 68%,transparent); padding:22px 14px 12px; font-size:.76rem; color:#fff; }
.site-editorial p:not(.site-kicker) { margin-top:17px; max-width:48ch; }
.site-editorial .site-link,.site-editorial .button { margin-top:19px; }
.site-editorial-reverse { grid-template-columns:minmax(0,1fr) minmax(0,1.24fr); }
.site-editorial-reverse figure { grid-column:2; grid-row:1; }
.site-editorial-reverse>div { grid-column:1; grid-row:1; }
.site-process-grid,.site-faq-grid { display:grid; grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); gap:clamp(26px,7vw,130px); }
.site-process ol,.site-choices { list-style:none; padding:0; margin:0; }
.site-process li { display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(14px,2.5vw,32px); padding:18px 0; border-top:1px solid var(--site-rule); }
.site-process li:last-child { border-bottom:1px solid var(--site-rule); }
.site-process li span,.site-choices span { color:var(--accent); font-family:var(--display); line-height:1; font-size:2.4rem; font-weight:700; font-variant-numeric:tabular-nums; }
.site-process li p { margin-top:4px; font-size:.95rem; }
.site-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--site-rule); }
.site-choices li { padding:clamp(16px,2.8vw,34px); }
.site-choices li+li { border-left:1px solid var(--site-rule); }
.site-choices li h3 { margin:10px 0 6px; }
.site-choices li p { font-size:.95rem; }
.site-band { padding-block:clamp(43px,6.5vw,85px); border-block:1px solid #503b56; background:radial-gradient(ellipse at 92% 15%,#34203b,#1d1521 68%); }
.site-band-inner { display:flex; justify-content:space-between; align-items:center; gap:23px 54px; }
.site-band h2 { max-width:19ch; }
.site-band p:not(.site-kicker) { margin-top:15px; max-width:44ch; }
.site-band-inner>div:last-child { display:grid; gap:5px; min-width:172px; }
.site-contact-block { padding-top:clamp(29px,4.7vw,59px); }
.site-contact-grid,.site-booking-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(26px,7vw,95px); align-items:start; }
.site-booking-grid { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.site-contact-list article { border-top:1px solid var(--site-rule); display:grid; grid-template-columns:26px minmax(0,1fr); gap:15px; padding:17px 0; }
.site-contact-list article:first-child { padding-top:0; border-top:0; }
.site-contact-list article>svg { color:var(--accent); margin-top:4px; }
.site-contact-list h2,.site-contact-card h2 { font-size:clamp(1.95rem,3.3vw,3.3rem); max-width:none; }
.site-contact-list p { margin:8px 0; }
.site-contact-card,.site-booking-form { border:1px solid #564257; padding:clamp(18px,3.5vw,43px); background:#1c1620; }
.site-contact-card address,.site-loc-mini address { font-style:normal; margin-top:14px; }
.site-contact-card .site-hours { margin-top:10px; }
.site-loc-mini { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 65px; }
.site-hours>div { display:flex; gap:10px; justify-content:space-between; padding:6px 0; border-bottom:1px solid var(--site-rule); }
.site-hours dd { text-align:right; color:var(--ink); font-weight:680; }
.site-hours dt { color:var(--muted); }
.site-loc-mini p:not(.site-kicker) { margin-top:12px; }
.site-booking h1 { max-width:9ch; }
.site-booking .site-rating { margin-top:22px; }
.site-booking .site-link { margin-top:16px; }
.site-form label { display:block; font-size:.88rem; font-weight:680; }
.site-form input,.site-form select,.site-form textarea { margin-bottom:12px; min-height:47px; }
.site-form-hint,.site-form-note { font-size:.8rem; line-height:1.45; margin-bottom:15px; }
.site-form-note { margin:12px 0 0; }
.site-form-note a { color:var(--accent); }
.site-form .button { width:100%; justify-content:center; }
.site-quote { background:#1a151e; color:var(--ink); border:1px solid #684e69; width:min(560px,100% - 24px); padding:clamp(15px,3vw,34px); max-height:calc(100% - 26px); }
.ez-site .site-menu { background:#161118; color:var(--ink); }
.ez-site .site-menu .menu-links a { min-height:44px; }
.ez-site .site-menu .menu-links .button { display:flex; }
.site-footer { border-top:1px solid var(--site-rule); background:#110f13; }
.site-footer-main { display:grid; grid-template-columns:1.15fr 1fr .75fr 1fr; gap:25px clamp(17px,3vw,42px); padding-block:47px 36px; }
.site-footer h2,.site-footer-label { font:700 1.1rem/1.3 system-ui,sans-serif; color:var(--ink); margin-bottom:10px; max-width:none; }
.site-footer-label { margin-top:10px; }
.site-footer address { font-style:normal; line-height:1.5; color:var(--muted); }
.site-footer nav a,.site-footer-hours>a { display:block; width:fit-content; text-decoration:none; color:var(--muted); margin-top:8px; }
.site-footer a:hover { color:var(--accent); }
.site-footer-hours>a { overflow-wrap:anywhere; }
.site-footer .site-hours { font-size:.9rem; margin-bottom:13px; }
.site-footer-bottom { border-top:1px solid var(--site-rule); display:flex; flex-wrap:wrap; gap:10px 24px; color:var(--muted); padding-block:16px; font-size:.78rem; align-items:center; }
.site-footer-bottom small { font:inherit; }
.site-footer-bottom>a { text-underline-offset:.18em; }
.ez-site .site-sticky { z-index:4; }
.site-privacy { max-width:72ch; }
.site-privacy p+p { margin-top:15px; }
.site-privacy a { color:var(--accent); }
.ez-site .reviews-layout h2 { font-size:clamp(2.65rem,5vw,4.75rem); }
@media (max-width:1070px) {
  .site-desktop-call { display:none; }
  .site-footer-main { grid-template-columns:1.15fr 1fr .7fr; }
  .site-footer-hours { grid-column:1 / span 2; max-width:320px; }
}
@media (max-width:760px) {
  .ez-site { padding-bottom:calc(69px + env(safe-area-inset-bottom)); }
  .site-header-row { min-height:70px; }
  .site-logo img { width:51px; height:51px; }
  .site-nav,.site-nav-actions>.button { display:none; }
  .site-menu-button { display:grid; }
  .site-hero-grid { grid-template-columns:minmax(0,1fr); }
  .site-hero-copy { padding:28px 0 19px; }
  .site-hero h1,.site-booking h1 { font-size:clamp(3.6rem,11vw,5.6rem); line-height:.85; max-width:11ch; }
  .site-home .site-hero h1 { max-width:11ch; }
  .site-lead { margin-top:17px; }
  .site-hero-image { aspect-ratio:1.28; margin-inline:calc(var(--site-gutter) * -1); }
  .site-hero-image::after { background:linear-gradient(0deg,rgb(10 8 12/.8),transparent 27%); }
  .site-hero-image figcaption { right:var(--site-gutter); bottom:12px; }
  .site-intro h1 { font-size:clamp(3.5rem,12vw,6.3rem); }
  .site-intro .site-crumb { margin-bottom:17px; }
  .site-trust-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-trust-row>div { padding:10px 9px; gap:6px; min-height:65px; }
  .site-trust-row>div:first-child { grid-column:1 / -1; padding:13px var(--site-gutter); margin-inline:calc(var(--site-gutter) * -1); min-height:auto; border-bottom:1px solid var(--site-rule); }
  .site-trust-row>div:nth-child(2) { border-left:0; padding-left:0; }
  .site-trust-row>div>span strong { font-size:.82rem; }
  .site-section-head { display:grid; justify-content:stretch; gap:14px; }
  .site-section-head>p,.site-section-head>div>.site-lead { max-width:50ch; }
  .site-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .site-editorial,.site-editorial-reverse,.site-process-grid,.site-faq-grid,.site-contact-grid,.site-booking-grid { grid-template-columns:minmax(0,1fr); }
  .site-editorial-reverse>div,.site-editorial-reverse figure { grid-row:auto; grid-column:auto; }
  .site-editorial figure { aspect-ratio:1.4; }
  .site-choices { grid-template-columns:1fr; }
  .site-choices li { display:grid; grid-template-columns:35px 1fr; gap:6px 9px; padding:14px 0; }
  .site-choices li h3 { margin:0; align-self:center; }
  .site-choices li p { grid-column:2; }
  .site-choices li+li { border-left:0; border-top:1px solid var(--site-rule); }
  .site-band-inner { align-items:start; flex-direction:column; }
  .site-band-inner>div:last-child { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; }
  .site-booking { padding-top:28px; }
  .site-footer-main { grid-template-columns:1fr 1fr; }
  .site-footer-main>div:first-child { grid-column:1 / -1; }
  .site-footer-hours { grid-column:1 / -1; }
}
@media (max-width:520px) {
  .site-services-front .site-service-tile:nth-child(-n+2) { grid-column:1 / -1; }
  .site-services-grid { gap:12px; }
  .site-services-grid:not(.site-services-front) { grid-template-columns:1fr; }
  .site-services-front .site-service-tile:nth-child(n+3) .site-tile-visual { aspect-ratio:1.38; }
  .site-services-front .site-service-tile:nth-child(n+3) .site-tile-info { display:block; }
  .site-services-front .site-service-tile:nth-child(n+3) .tile-arrow { margin-top:8px; width:33px; height:33px; }
  .site-services-front .site-service-tile:nth-child(n+3) p { font-size:.83rem; }
  .site-home-projects { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
  .site-home-projects .site-project:first-child { grid-row:auto; grid-column:1 / -1; }
  .site-home-projects .site-project:first-child .site-project-image { aspect-ratio:1.38; }
  .site-home-projects .site-project:not(:first-child) .site-project-image { aspect-ratio:1.28; }
  .site-project figcaption { padding:9px; }
  .site-project figcaption strong { font-size:.9rem; }
  .site-loc-mini { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .site-tile-visual img { transition:none; }
}
.site-home .site-hero h1 { max-width:none; font-size:clamp(3.75rem,6.7vw,6.35rem); text-wrap:balance; }
.site-quote .dialog-bar { padding:0 0 14px; margin-bottom:16px; }
.site-quote .dialog-bar h2 { font-size:clamp(2.15rem,6vw,3.45rem); }
.site-quote .dialog-bar .icon { flex:none; }
.site-booking .site-booking-form { scroll-margin-bottom:82px; }
.site-contact .site-intro { padding-block:clamp(28px,4vw,54px); }
.site-contact .site-intro h1 { max-width:16ch; }
@media (max-width:760px) {
  .site-hero-grid { min-height:0; }
  .site-hero-copy { padding:21px 0 15px; }
  .site-hero .site-crumb { margin-bottom:12px; }
  .site-hero h1,.site-home .site-hero h1,.site-booking h1 { font-size:clamp(2.9rem,9.7vw,4.75rem); line-height:.91; max-width:15ch; }
  .site-hero .site-lead { margin-top:12px; line-height:1.46; }
  .site-hero-copy .site-actions { margin-top:10px; }
  .site-hero-copy .site-actions .site-primary { display:none; }
  .site-hero-image { aspect-ratio:1.56; }
  .site-hero-image img { object-position:50% 65%; }
  .site-home .site-hero-image img { object-position:50% 67%; }
  .site-booking .site-rating { margin-top:13px; }
  .site-booking .site-link { margin-top:6px; }
  .site-booking-grid { gap:17px; }
  .site-booking .site-crumb { margin-bottom:10px; }
  .site-booking .site-lead { margin-top:12px; }
}
.site-finish-filters { margin-bottom:14px; }
.site-finish { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); align-items:center; background:#1c1620; border:1px solid var(--site-rule); }
.site-finish img { width:100%; height:100%; aspect-ratio:2/1; object-fit:cover; }
.site-finish figcaption { padding:clamp(18px,5vw,70px); color:var(--muted); }
.site-finish figcaption strong { font:700 clamp(2rem,4vw,3.4rem)/1 var(--display); color:var(--ink); display:block; margin-bottom:9px; }
.site-service-proof { display:flex; align-items:center; gap:8px; margin-top:14px; color:var(--accent); font-size:.82rem; font-weight:700; }
@media(max-width:640px) {
  .site-finish { grid-template-columns:minmax(0,1fr); }
  .site-finish img { aspect-ratio:1.6; }
}

.guide-links { list-style:none; margin:0; padding:0; }
.guide-links li { border-block-start:1px solid var(--site-rule); padding:12px 0 17px; }
.guide-links li:last-child { border-block-end:1px solid var(--site-rule); }
.guide-links p { max-width:48ch; }
.guide-article { max-width:780px; }
.guide-article section + section { margin-top:44px; }
.guide-article h2 { font-size:clamp(2.15rem,4vw,3.6rem); max-width:none; }
.guide-article p { margin-top:15px; }
.guide-article a { color:var(--accent); text-underline-offset:.18em; }
.site-guides-choosing-window-tint .site-hero h1,
.site-guides-wrap-aftercare .site-hero h1 { font-size:clamp(3rem,5.2vw,5.5rem); line-height:.95; max-width:13ch; }

/* Keep the gallery grid anchored while its display font loads. */
.site-our-work .site-intro h1 { max-width:15ch; }
@media (min-width:761px) {
  .site-our-work .site-intro .site-section-head { min-height:calc(2 * clamp(3.7rem,7.6vw,8rem) * .82); }
}
@media (max-width:760px) {
  .site-our-work .site-intro h1 { max-width:none; min-height:calc(2 * clamp(3.5rem,12vw,6.3rem) * .82); }
}

.inner-close {
  padding-block: clamp(30px, 5.5vw, 76px);
}
.inner-booking {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(24px, 5vw, 74px);
  padding: clamp(22px, 4.35vw, 62px);
  border: 1px solid #56405a;
  background: radial-gradient(ellipse at 12% 10%, #35223c, #1b1520 74%);
}
.inner-booking-single {
  display: block;
}
.inner-booking-single .inner-booking-action {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  column-gap: 26px;
  align-items: center;
}
.inner-booking-single h2,
.inner-booking-single .inner-booking-action > p { grid-column: 1; }
.inner-booking-single .inner-booking-links { grid-column: 2; grid-row: 1 / span 2; justify-content: flex-end; }
.ez-site .inner-booking h2 {
  font-size: clamp(2.6rem, 4.3vw, 4.3rem);
  max-width: 16ch;
}
.inner-booking-action > p { max-width: 44ch; margin-top: 12px; }
.inner-booking-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
  margin-top: 19px;
}
.inner-booking-links .button { line-height: 1.3; }
.inner-faq h3 {
  font: 700 clamp(1.8rem, 2.65vw, 2.5rem)/1 var(--display);
  margin: 4px 0 12px;
}
.inner-faq details { border-color: #66516c; }
.inner-faq details:last-child { border-bottom: 1px solid #66516c; }
.inner-faq summary { padding-block: 12px; font-size: .94rem; }
.inner-faq a { text-underline-offset: .18em; }
.inner-related {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px 22px;
  padding-top: 12px;
}
.inner-related span { color: var(--muted); font-size: .86rem; }
.inner-related a { font-size: .9rem; }
.site-choices li h3 { margin-top: 0; }
.booking-followup { padding-top: 0; }
.booking-followup .inner-booking-action > a { margin-top: 10px; }
.site-contact .site-studio { border-bottom: 0; }
.guide-index,
.guide-header { padding-block: clamp(27px, 5vw, 67px) clamp(38px, 5.4vw, 76px); }
.guide-index-intro {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 15px 40px;
  margin-bottom: clamp(23px, 4vw, 51px);
}
.guide-index-intro h1 { font-size: clamp(3.6rem, 8vw, 8rem); }
.guide-index-intro > p { max-width: 34ch; line-height: 1.55; }
.guide-index-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.13fr) minmax(0, 1fr);
  gap: clamp(14px, 2.2vw, 30px);
}
.guide-card {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  text-decoration: none;
  border: 1px solid #44354a;
  background: #1b161e;
}
.guide-card:hover { border-color: var(--accent); }
.guide-card-photo {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1.82;
  background: #211a26;
}
.guide-card-photo img,
.guide-cover figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 53% 56%;
}
.guide-card-copy { padding: clamp(16px, 3vw, 42px); }
.ez-site .guide-card h2 {
  font-size: clamp(2.05rem, 3.8vw, 4rem);
  max-width: 17ch;
  line-height: .98;
}
.guide-card-copy > p:not(.site-kicker) { margin: 13px 0 0; max-width: 43ch; }
.guide-card-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent);
  font-weight: 700;
  font-size: .89rem;
  margin-top: 17px;
}
.guide-card:hover .guide-card-link { text-decoration: underline; text-underline-offset: .22em; }
.guide-card-compact {
  grid-template-rows: auto;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  max-width: 690px;
}
.guide-card-compact .guide-card-photo { aspect-ratio: 1.6; }
.guide-card-compact .guide-card-copy { align-self: center; padding: 13px clamp(12px, 2.8vw, 35px); }
.ez-site .guide-card-compact h2 { font-size: clamp(1.65rem, 2.7vw, 2.75rem); }
.guide-card-compact .guide-card-link { margin-top: 7px; }
.inner-guide-callout { padding-top: clamp(20px, 3vw, 47px); }
.guide-cover {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(20px, 5vw, 76px);
}
.guide-cover h1 { font-size: clamp(3.3rem, 6.45vw, 7rem); line-height: .9; max-width: 13ch; }
.guide-cover .site-lead { margin-top: 18px; }
.guide-cover .site-link { margin-top: 12px; }
.guide-cover figure {
  position: relative;
  min-width: 0;
  background: #201a24;
  aspect-ratio: 1.42;
  overflow: hidden;
}
.guide-cover figcaption {
  position: absolute;
  inset: auto 0 0;
  background: linear-gradient(0deg, #101014, transparent);
  color: #fff;
  padding: 29px 13px 11px;
  font-size: .76rem;
}
.guide-reading {
  display: grid;
  grid-template-columns: minmax(190px, .55fr) minmax(0, 1.55fr);
  align-items: start;
  gap: clamp(26px, 6vw, 87px);
  padding-block: clamp(20px, 4vw, 46px) clamp(35px, 5.5vw, 76px);
  border-top: 1px solid var(--site-rule);
}
.guide-sidebar { position: sticky; top: 20px; }
.guide-sidebar nav {
  display: grid;
  gap: 0;
  border: 1px solid #48394e;
  background: #1b1620;
  padding: 17px 18px;
}
.ez-site .guide-sidebar h2 { font-size: 1.65rem; margin-bottom: 9px; }
.guide-sidebar nav a {
  color: var(--ink);
  font-size: .89rem;
  min-height: 42px;
  padding-block: 10px;
  border-top: 1px solid var(--site-rule);
  text-decoration: none;
}
.guide-sidebar nav a:hover { color: var(--accent); }
.guide-sidebar > a { margin-top: 10px; }
.guide-chapters { max-width: 780px; }
.guide-chapter { scroll-margin-top: 22px; }
.guide-chapter + .guide-chapter { margin-top: 38px; padding-top: 32px; border-top: 1px solid var(--site-rule); }
.ez-site .guide-chapter h2 { font-size: clamp(2.2rem, 4.3vw, 4.3rem); max-width: 20ch; line-height: .97; }
.guide-chapter p { margin-top: 13px; max-width: 62ch; }
.guide-chapter a { color: var(--accent); text-underline-offset: .2em; }
.guide-note { font-size: .88rem; }
.guide-tint-compare,
.guide-limits,
.guide-care-notes,
.guide-wash-steps {
  margin-top: 17px;
  border: 1px solid #48394e;
  background: #1a161e;
}
.guide-tint-compare {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.guide-tint-compare > div,
.guide-limits > div,
.guide-care-notes > div { padding: 12px 16px; }
.guide-tint-compare > div + div { border-left: 1px solid #48394e; }
.guide-tint-compare dt,
.guide-limits dd { font: 700 clamp(1.65rem, 3.2vw, 3rem)/1 var(--display); }
.guide-tint-compare dd,
.guide-care-notes dd { margin-top: 6px; font-size: .92rem; color: var(--muted); }
.tint-meter { display: block; height: 8px; width: 100%; margin-bottom: 9px; background: #3a303e; }
.tint-meter::before { content: ""; display: block; height: 100%; background: var(--accent); }
.tint-meter-light::before { width: 70%; }
.tint-meter-dark::before { width: 20%; }
.guide-limits > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.guide-limits > div + div,
.guide-care-notes > div + div,
.guide-wash-steps > li + li { border-top: 1px solid #48394e; }
.guide-limits dd { color: var(--accent); text-align: right; }
.guide-care-notes dt,
.guide-wash-steps strong { font-weight: 750; }
.guide-wash-steps { padding: 0 0 0 40px; }
.guide-wash-steps li { padding: 11px 14px 12px 1px; }
.guide-wash-steps li::marker { color: var(--accent); font-weight: 750; }
.guide-wash-steps span { display: block; color: var(--muted); margin-top: 2px; font-size: .92rem; }
.guide-next { border-top: 1px solid var(--site-rule); padding-top: 26px; }
.ez-site .guide-next > h2 { font-size: clamp(2rem, 3.4vw, 3.2rem); margin-bottom: 15px; }
@media(max-width: 800px) {
  .guide-cover h1 { font-size: clamp(3rem, 7vw, 4.5rem); max-width: 14ch; }
  .guide-reading { grid-template-columns: minmax(0, 1fr); }
  .guide-sidebar { position: static; }
  .guide-sidebar nav { padding-block: 12px; }
  .guide-sidebar nav a { min-height: 44px; }
}
@media(max-width: 760px) {
  .inner-booking,
  .inner-booking-single .inner-booking-action,
  .guide-cover { grid-template-columns: minmax(0, 1fr); }
  .inner-booking-single .inner-booking-links { grid-column: 1; grid-row: auto; justify-content: flex-start; }
  .site-choices li { grid-template-columns: 1fr; }
  .site-choices li p { grid-column: 1; }
  .guide-cover .site-link { margin-top: 4px; }
  .guide-cover figure { aspect-ratio: 1.65; }
  .guide-index-intro { display: grid; }
}
@media(max-width: 600px) {
  .guide-index-grid { grid-template-columns: minmax(0, 1fr); }
  .guide-card-compact .guide-card-photo { aspect-ratio: 1.15; }
  .guide-limits > div,
  .guide-tint-compare > div { padding-inline: 12px; }
  .guide-limits dd { font-size: 1.65rem; }
}

.skip:not(:focus) { clip-path: inset(50%); }
