/* Hallmark · shape: Catalogue · genre: editorial · theme: Manifesto (deal 2/3) · job: hire · draw: 2a37cd
 * hero: Stage · nav: edge-aligned · footer: letter close · imagery: original AlMex photographs · signature: the actual switchboard work beside the plain electrical offer
 * axes: dark/display-condensed/warm · posture: committed · brand: AlMex Elektro (spec 2026-11-07) · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 · weakest: S, removed invented proof and used the owner's actual work and original lightning mark */
/* Hallmark · answered F18 · original photographs use ordinary figures, no replacement slots are necessary */
@import url('./fonts/fonts.css');
@import url('./tokens.css');
@import url('./base.css');

html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
body { background: var(--color-paper); }
button, summary, a { -webkit-tap-highlight-color: var(--color-transparent); }
button, summary { touch-action: manipulation; }
button:disabled { opacity: .55; cursor: not-allowed; }
.skip-link { position: fixed; top: var(--space-xs); left: var(--space-md); z-index: var(--z-tooltip); padding: var(--space-sm) var(--space-lg); color: var(--color-accent-ink); background: var(--color-accent); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.site-header { position: relative; z-index: var(--z-sticky-nav); background: var(--color-paper); }
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-xl); border-bottom: 1px solid var(--color-rule); }
.brand { display: inline-flex; align-items: center; gap: var(--space-sm); text-decoration: none; flex-shrink: 0; }
.brand-symbol { position: relative; width: 43px; height: 45px; overflow: clip; flex-shrink: 0; }
.brand-symbol img { position: absolute; width: 160px; height: 160px; max-width: none; left: -58px; top: -46px; }
.brand-name { font-size: 23px; font-weight: 600; letter-spacing: -.045em; color: var(--color-ink); }
.desktop-nav { display: flex; gap: var(--space-lg); align-items: center; }
.desktop-nav a, .mobile-menu a { text-decoration: none; font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.desktop-nav a:hover, .footer-link:hover, .text-link:hover { color: var(--color-accent-text); }
.header-contact { display: inline-flex; gap: var(--space-xs); align-items: center; text-decoration: none; white-space: nowrap; font-weight: 500; font-size: 15px; min-height: 44px; }
.header-contact svg { color: var(--color-accent-text); }
.icon { width: 20px; height: 20px; flex-shrink: 0; }
.mobile-menu { display: none; }
.hero { padding-block: var(--space-hero) var(--space-2xl); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr); gap: var(--space-2xl); align-items: center; }
.hero h1 { font-size: var(--text-display); text-transform: uppercase; line-height: 1.05; letter-spacing: -.012em; max-width: 10ch; }
.hero .lead { margin-top: var(--space-lg); max-width: 34ch; color: var(--color-ink-2); font-size: clamp(1.1rem, 1.5vw, 1.3rem); }
.hero-actions { display: flex; gap: var(--space-lg); align-items: center; flex-wrap: wrap; margin-top: var(--space-xl); }
.hero-actions.service-hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; align-items: stretch; max-width: 540px; }
.service-hero-actions > .button { white-space: normal; text-align: center; padding-inline: 16px; }
.service-hero-actions > .button--quiet { border-color: var(--color-ink-2); }
.service-hero-actions > .service-action-note { grid-column: 1 / -1; text-align: center; color: var(--color-ink-2); font-size: 14px; line-height: 1.6; }
.service-hero-actions > .text-link { justify-content: center; text-align: center; color: var(--color-ink); font-size: 15px; }
.service-hero-actions > .text-link:hover { color: var(--color-accent-text); }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: var(--space-sm) var(--space-lg); border: 1px solid var(--color-accent); background: var(--color-accent); color: var(--color-accent-ink); font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out); }
.button:hover { background: var(--color-accent-deep); border-color: var(--color-accent-deep); }
.button:active { transform: translateY(1px); }
.button--quiet { background: var(--color-transparent); border-color: var(--color-rule); color: var(--color-ink); }
.button--quiet:hover { background: var(--color-paper-3); border-color: var(--color-muted); }
.text-link { display: inline-flex; align-items: center; min-height: 44px; gap: var(--space-sm); font-size: 15px; text-decoration: underline; text-underline-offset: .3em; }
.hero-figure { margin: 0; min-width: 0; }
.hero-photo { height: clamp(360px, 37vw, 560px); width: 100%; object-fit: cover; object-position: 51% 50%; }
.hero-figure figcaption { display: flex; gap: var(--space-lg); justify-content: space-between; padding-top: var(--space-md); color: var(--color-muted); font-size: 13px; }
.hero-bottom { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-rule); margin-top: var(--space-xl); padding-block: var(--space-lg); gap: var(--space-lg); color: var(--color-muted); font-size: 14px; }
.hero-bottom p { max-width: none; }
.hero-bottom a { color: var(--color-ink-2); text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; gap: var(--space-sm); }
.section { padding-block: var(--space-section); }
.section--short { padding-block: var(--space-section-short); }
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2xl); align-items: end; margin-bottom: var(--space-2xl); }
.section h2 { text-transform: uppercase; max-width: 14ch; }
.section-head > p { max-width: 40ch; color: var(--color-muted); justify-self: end; }
.service-index { border-top: 1px solid var(--color-rule); }
.service-group { border-bottom: 1px solid var(--color-rule); }
.service-group summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-lg); align-items: center; padding-block: var(--space-lg); cursor: pointer; list-style: none; }
.service-group summary::-webkit-details-marker { display: none; }
.service-group summary span:first-child { font-size: clamp(1.2rem, 2.25vw, 2rem); font-weight: 400; letter-spacing: -.025em; }
.service-group summary:hover { color: var(--color-accent-text); }
.service-group summary .toggle { width: 28px; height: 28px; position: relative; }
.toggle::before, .toggle::after { content: ''; position: absolute; background: currentColor; }
.toggle::before { width: 18px; height: 1px; left: 5px; top: 13px; }
.toggle::after { width: 1px; height: 18px; left: 13px; top: 5px; }
.service-group[open] .toggle::after { display: none; }
.service-group ul { margin: 0; padding: 0 0 var(--space-lg); display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--gap-columns); row-gap: var(--space-xs); list-style: none; color: var(--color-ink-2); }
.service-group li { min-width: 0; }
.service-group li a { min-height: 44px; display: inline-flex; align-items: center; color: var(--color-accent-text); text-underline-offset: .3em; }
.service-group li span { display: inline-block; padding-block: var(--space-sm); }
.service-note { margin-top: var(--space-lg); color: var(--color-muted); font-size: 14px; }
.work-section { background: var(--color-paper-2); color: var(--color-ink); }
.work-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); gap: var(--space-2xl); align-items: start; }
.work-item { margin: 0; }
.work-item:nth-child(2) { padding-top: var(--space-2xl); }
.work-photo { padding: 0; border: 0; background: var(--color-paper-3); width: 100%; display: block; cursor: zoom-in; }
.work-photo img { width: 100%; object-fit: cover; height: 460px; }
.work-item:nth-child(2) img { height: 380px; object-position: 50% 52%; }
.work-item figcaption { display: flex; justify-content: space-between; gap: var(--space-lg); padding-top: var(--space-md); font-size: 14px; color: var(--color-ink-2); }
.work-item figcaption span:last-child { color: var(--color-muted); }
.work-links { display: flex; align-items: center; justify-content: space-between; gap: var(--space-xl); margin-top: var(--space-xl); }
.work-links p { color: var(--color-muted); font-size: 14px; }
.reviews-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.review-card { min-width: 0; padding-top: 20px; border-top: 1px solid var(--color-rule); }
.review-card h3 { font-family: var(--font-body); font-size: 20px; font-weight: 600; }
.review-origin { color: var(--color-ink-2); font-size: 12px; margin-block: 8px 16px; }
.review-photo { display: block; width: 100%; padding: 0; border: 0; background: #fff; color: #202020; text-align: left; cursor: zoom-in; }
.review-crop { display: block; position: relative; width: 100%; overflow: hidden; aspect-ratio: var(--crop-ratio); }
.review-crop img { position: absolute; width: 200.909091%; max-width: none; height: auto; top: 0; left: 0; transform: translateY(var(--review-offset)); }
.review-zoom { display: block; padding: 10px 12px; font-size: 12px; text-decoration: underline; text-underline-offset: .2em; }
.review-card blockquote { margin: 20px 0 12px; font-size: 17px; line-height: 1.6; }
.review-details summary { display: inline-flex; min-height: 44px; align-items: center; cursor: pointer; text-decoration: underline; text-underline-offset: .3em; font-size: 14px; }
.review-details p { margin-top: 8px; color: var(--color-ink-2); font-size: 14px; }
.reviews-controls { align-items: center; justify-content: space-between; gap: 8px; margin-top: 20px; }
.reviews-controls .button { font-size: 13px; padding-inline: 12px; min-height: 44px; }
.reviews-controls > span { font-size: 13px; color: var(--color-ink-2); white-space: nowrap; }
.proof-gallery-head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-block: 48px 24px; }
.proof-gallery-head h3 { font-size: 28px; }
.proof-gallery-head p { font-size: 14px; color: var(--color-ink-2); }
.work-grid.proof-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.proof-gallery .work-item:nth-child(2) { padding-top: 0; }
.proof-gallery .work-photo img, .proof-gallery .work-item:nth-child(2) img { height: 260px; object-position: center; }
.proof-gallery .work-item figcaption { display: block; font-size: 14px; padding-top: 12px; }
.more-projects { margin-top: 24px; }
.more-projects > summary { display: inline-flex; align-items: center; min-height: 48px; padding: 10px 20px; border: 1px solid var(--color-ink-2); cursor: pointer; font-size: 14px; }
.more-projects > summary:hover { background: var(--color-paper-3); }
.proof-gallery--more { margin-top: 24px; }
@media (max-width: 60rem) { .reviews-list { gap: 16px; } .work-grid.proof-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 44rem) { .reviews-list { grid-template-columns: minmax(0, 1fr); } .reviews-controls:not([hidden]) { display: flex; } .proof-gallery-head { display: block; margin-top: 36px; } .proof-gallery-head p { margin-top: 12px; } .proof-gallery .work-photo img, .proof-gallery .work-item:nth-child(2) img { height: 210px; } .proof-section .work-links { align-items: start; } }
.quote-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2xl); align-items: center; }
.quote-copy h2 { max-width: none; }
.quote-copy p { margin-top: var(--space-lg); max-width: 45ch; color: var(--color-muted); }
.quote-copy .text-link { margin-top: var(--space-lg); }
.quote-contents { border-top: 1px solid var(--color-rule); }
.quote-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); padding-block: var(--space-lg); border-bottom: 1px solid var(--color-rule); font-size: 18px; }
.quote-row small { color: var(--color-muted); font-size: 14px; }
.quote-contents .button { margin-top: var(--space-xl); }
.quote-contents > p { margin-top: var(--space-md); font-size: 13px; color: var(--color-muted); }
.about-section { border-top: 1px solid var(--color-rule); padding-block: var(--space-section-short); }
.about-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2xl); }
.about-grid h2 { font-size: var(--text-display-s); }
.about-grid p { color: var(--color-ink-2); max-width: 45ch; }
.about-grid p + p { margin-top: var(--space-lg); }
.about-grid .text-link { margin-top: var(--space-lg); }
.contact-section { padding-block: var(--space-section-short); background: var(--color-paper-3); color: var(--color-ink); }
.contact-head { display: flex; gap: var(--space-xl); align-items: end; justify-content: space-between; }
.contact-head h2 { max-width: 14ch; }
.contact-head p { color: var(--color-ink-2); max-width: 33ch; }
.contact-main { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--space-2xl); align-items: end; margin-top: var(--space-2xl); }
.contact-number { font-variant-numeric: tabular-nums; font-family: var(--font-display); font-size: clamp(2.6rem, 6.7vw, 6rem); line-height: 1.15; text-decoration: none; white-space: nowrap; letter-spacing: -.01em; }
.contact-mail { display: inline-flex; min-height: 44px; align-items: center; margin-top: var(--space-lg); font-size: clamp(1rem, 2vw, 1.35rem); text-underline-offset: .3em; }
.contact-form-link { display: flex; flex-direction: column; gap: var(--space-md); align-items: start; }
.contact-form-link > .button { min-height: 72px; padding: 18px 36px; font-size: clamp(20px, 2vw, 26px); white-space: normal; text-align: center; }
.contact-form-link p { font-size: 14px; color: var(--color-ink-2); max-width: 40ch; }
.site-footer { padding-block: var(--space-xl); }
.footer-inner { display: flex; gap: var(--space-lg); justify-content: space-between; align-items: center; }
.footer-inner p { font-size: 13px; color: var(--color-muted); }
.footer-link { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
.breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-sm); margin-block: var(--space-lg) var(--space-xl); color: var(--color-muted); font-size: 13px; }
.breadcrumb a { padding-block: var(--space-xs); }
.service-hero { padding-top: 0; }
.service-hero .hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.service-hero h1 { font-size: clamp(3.2rem, 6.7vw, 6.4rem); max-width: 13ch; }
.service-hero .hero-photo { object-position: 50% 38%; height: 490px; }
.scope-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-2xl); }
.scope-grid > div > p { margin-top: var(--space-lg); color: var(--color-muted); max-width: 45ch; }
.scope-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--color-rule); }
.scope-list li { border-bottom: 1px solid var(--color-rule); padding-block: var(--space-lg); }
.scope-list h3 { font-family: var(--font-body); font-size: 20px; letter-spacing: -.02em; font-weight: 500; }
.scope-list p { margin-top: var(--space-xs); color: var(--color-muted); font-size: 15px; }
.price-section { background: var(--color-paper-2); color: var(--color-ink); }
.price-table { width: 100%; border-collapse: collapse; }
.price-table th { padding: var(--space-md) 0; color: var(--color-muted); font-size: 13px; font-weight: 400; text-align: left; white-space: nowrap; border-bottom: 1px solid var(--color-rule); }
.price-table td { padding: var(--space-lg) 0; border-bottom: 1px solid var(--color-rule); font-size: 18px; }
.price-table td:last-child, .price-table th:last-child { text-align: right; }
.price-table small { display: block; margin-top: var(--space-2xs); color: var(--color-muted); font-size: 13px; }
.price-value { font-variant-numeric: tabular-nums; white-space: nowrap; }
.price-footer { display: flex; justify-content: space-between; align-items: center; gap: var(--space-xl); margin-top: var(--space-xl); }
.price-footer p { font-size: 14px; color: var(--color-muted); max-width: 49ch; }
.faq-list { margin-top: var(--space-xl); }
.faq-list details { border-bottom: 1px solid var(--color-rule); }
.faq-list summary { cursor: pointer; padding-block: var(--space-lg); font-size: 18px; }
.faq-list details p { color: var(--color-ink-2); max-width: 65ch; padding-bottom: var(--space-lg); }
.lightbox { width: min(94%, 1200px); max-height: 94dvh; padding: var(--space-xl); border: 1px solid var(--color-rule); color: var(--color-ink); background: var(--color-paper); }
.lightbox::backdrop { background: var(--color-paper); opacity: .9; }
.lightbox img { max-height: 75dvh; width: auto; max-width: 100%; object-fit: contain; margin-inline: auto; }
.lightbox--review { width: min(94%, 920px); }
.lightbox-review { width: min(100%, calc(65dvh * var(--review-ratio))); margin-inline: auto; background: #fff; }
.lightbox .review-crop img { width: 200.909091%; max-width: none; max-height: none; height: auto; margin: 0; }
.lightbox-close { margin: 0 0 var(--space-lg) auto; }
.lightbox-caption { padding-top: var(--space-md); font-size: 14px; color: var(--color-muted); }
@media (min-width: 1600px) { .hero { padding-top: var(--space-3xl); } .hero-photo { height: 560px; } }
@media (max-width: 1150px) { .desktop-nav { gap: var(--space-md); } .desktop-nav a { font-size: 13px; } .header-contact { display: none; } .hero-grid { gap: var(--space-xl); } }
@media (max-width: 60rem) {
  .header-inner { min-height: 80px; gap: var(--space-md); }
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu summary { display: flex; align-items: center; gap: var(--space-sm); cursor: pointer; min-height: 48px; padding: var(--space-sm); list-style: none; font-size: 15px; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu nav { position: absolute; top: 80px; left: 0; right: 0; display: flex; flex-direction: column; padding: var(--space-lg) var(--gutter); background: var(--color-paper-2); border-bottom: 1px solid var(--color-rule); }
  .mobile-menu nav a { min-height: 48px; font-size: 16px; }
  .hero-grid, .service-hero .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: var(--space-lg); }
  .hero h1 { font-size: clamp(3rem, 7vw, 5rem); }
  .hero-photo { height: 410px; }
  .hero-actions { gap: var(--space-md); }
  .section-head, .scope-grid, .about-grid, .quote-grid { gap: var(--space-xl); }
  .work-photo img { height: 400px; }
  .work-item:nth-child(2) img { height: 330px; }
  .contact-main { gap: var(--space-xl); }
}
@media (max-width: 44rem) {
  .brand-name { font-size: 21px; }
  .hero { padding-top: var(--space-xl); }
  .hero-grid, .service-hero .hero-grid, .section-head, .quote-grid, .about-grid, .scope-grid, .contact-main { grid-template-columns: minmax(0, 1fr); }
  .hero-grid, .service-hero .hero-grid { gap: var(--space-xl); }
  .hero h1 { font-size: clamp(3.2rem, 12.5vw, 5rem); max-width: 11ch; }
  .hero .lead { font-size: 18px; max-width: 32ch; }
  .hero-actions { margin-top: var(--space-lg); }
  .hero-photo { height: 330px; object-position: 51% 48%; }
  .hero-bottom { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding-block: var(--space-md); font-size: 12px; }
  .hero-bottom a { font-size: 13px; }
  .hero-figure figcaption { font-size: 12px; gap: var(--space-sm); }
  .section-head { margin-bottom: var(--space-xl); gap: var(--space-lg); }
  .section-head > p { justify-self: start; }
  .section h2 { font-size: clamp(2.5rem, 10vw, 3.4rem); }
  .service-group summary { padding-block: var(--space-lg); }
  .service-group summary span:first-child { font-size: 21px; }
  .service-group ul { grid-template-columns: minmax(0, 1fr); }
  .work-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-md); }
  .work-item:nth-child(2) { padding-top: var(--space-xl); }
  .work-photo img { height: 300px; }
  .work-item:nth-child(2) img { height: 260px; }
  .work-item figcaption { flex-direction: column; gap: var(--space-2xs); font-size: 13px; }
  .work-item figcaption span:last-child { font-size: 12px; }
  .work-links, .contact-head, .footer-inner, .price-footer { flex-direction: column; align-items: start; }
  .work-links { gap: var(--space-md); }
  .quote-grid { gap: var(--space-xl); }
  .quote-copy h2 { max-width: 12ch; }
  .quote-row { font-size: 17px; padding-block: var(--space-lg); }
  .contact-head { gap: var(--space-lg); }
  .contact-main { margin-top: var(--space-xl); }
  .contact-number { font-size: clamp(2.5rem, 10.4vw, 4.5rem); }
  .contact-mail { font-size: 17px; }
  .footer-inner { gap: var(--space-sm); }
  .service-hero { padding-top: 0; }
  .service-hero .hero-photo { height: 360px; object-position: 50% 52%; }
  .service-hero h1 { font-size: clamp(2.65rem, 10.9vw, 4.5rem); }
  .breadcrumb { margin-bottom: var(--space-lg); font-size: 12px; }
  .scope-grid { gap: var(--space-xl); }
  .price-table td { font-size: 15px; padding-block: var(--space-lg); }
  .price-table td:first-child { padding-right: var(--space-md); }
  .price-table th { font-size: 12px; }
  .price-table small { font-size: 12px; }
  .price-footer { gap: var(--space-lg); }
  .lightbox { padding: var(--space-md); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button { transition: none; } }

/* Service catalogue and detail pages reuse the approved visual system. */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: clip; clip-path: inset(50%); white-space: nowrap; border: 0; }
.service-detail h1 { font-size: clamp(2.65rem, 5.6vw, 5.4rem); max-width: none; overflow-wrap: break-word; min-width: 0; }
.service-detail .hero-bottom { align-items: start; }
.service-detail .hero-bottom a { white-space: normal; }
.service-preparation { border-top: 1px solid var(--color-rule); padding-top: var(--space-lg); }
.service-preparation h2 { font-family: var(--font-body); font-size: 22px; font-weight: 500; letter-spacing: -.02em; }
.service-preparation ul { list-style: none; padding: 0; margin-top: var(--space-lg); }
.service-preparation li { padding-block: var(--space-lg); border-bottom: 1px solid var(--color-rule); color: var(--color-ink-2); }
.service-preparation .text-link { margin-top: var(--space-lg); }
.service-detail--text .hero-grid { min-height: 440px; }
.quote-explanation { padding-block: var(--space-xl); border-block: 1px solid var(--color-rule); }
.quote-explanation h3 { font-family: var(--font-body); font-size: 23px; font-weight: 500; }
.quote-explanation p { margin-top: var(--space-md); color: var(--color-ink-2); max-width: 65ch; }
.related-section { border-top: 1px solid var(--color-rule); }
.related-links { list-style: none; padding: 0; margin-bottom: var(--space-lg); border-top: 1px solid var(--color-rule); }
.related-links a { display: block; padding-block: var(--space-lg); text-decoration: none; border-bottom: 1px solid var(--color-rule); color: var(--color-ink); font-size: clamp(1.15rem, 2vw, 1.6rem); }
.related-links a:hover { color: var(--color-accent-text); }
.catalogue-hero { padding-top: 0; padding-bottom: var(--space-section-short); }
.catalogue-hero h1 { max-width: none; font-size: clamp(2.7rem, 6.5vw, 6.5rem); }
.catalogue-hero .lead { max-width: 48ch; }
.catalogue-jump { margin-top: var(--space-xl); }
.catalogue-jump ul { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-lg); list-style: none; padding: 0; }
.catalogue-jump a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-underline-offset: .3em; }
.catalogue-group { border-top: 1px solid var(--color-rule); scroll-margin-top: var(--space-lg); }
.catalogue-group h2 { font-size: clamp(2.4rem, 4.8vw, 4.5rem); max-width: 14ch; }
.catalogue-list { list-style: none; padding: 0; margin: 0; }
.catalogue-list li + li { border-top: 1px solid var(--color-rule); }
.catalogue-list a { display: block; padding-block: var(--space-lg); text-decoration: none; }
.catalogue-list li:first-child a { padding-top: 0; }
.catalogue-list h3 { font-family: var(--font-body); font-size: clamp(1.2rem, 2vw, 1.7rem); font-weight: 500; letter-spacing: -.025em; }
.catalogue-list p { margin-top: var(--space-sm); color: var(--color-muted); font-size: 15px; }
.catalogue-link-label { display: inline-block; margin-top: var(--space-md); font-size: 14px; color: var(--color-accent-text); text-decoration: underline; text-underline-offset: .3em; }
.catalogue-list a:hover h3 { color: var(--color-accent-text); }
@media (max-width: 44rem) {
  .service-detail h1 { font-size: clamp(2.5rem, 9.7vw, 4.3rem); max-width: none; }
  .service-detail .hero-bottom { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
  .service-detail--text .hero-grid { min-height: 0; }
  .service-preparation h2 { font-size: 20px; }
  .service-preparation li { padding-block: var(--space-md); }
  .price-table th:last-child { white-space: normal; }
  .price-table td:last-child { min-width: 112px; }
  .catalogue-jump ul { display: block; }
  .catalogue-jump li { border-bottom: 1px solid var(--color-rule); }
  .catalogue-jump a { padding-block: var(--space-sm); }
}

/* Price catalogue: local calculations, no customer storage. */
[hidden] { display: none !important; }
.calculator-hero { padding-top: 0; padding-bottom: var(--space-2xl); }
.calculator-hero h1 { max-width: none; font-size: clamp(2.6rem, 6.2vw, 6rem); }
.calculator-hero .lead { max-width: 46ch; }
.calc-intro { color: var(--color-muted); max-width: 65ch; margin-top: var(--space-md); font-size: 15px; }
.calculator-hero .text-link { margin-top: var(--space-md); }
.calculator-section { border-top: 1px solid var(--color-rule); padding-top: var(--space-xl); }
.calc-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: var(--space-lg); align-items: end; }
.calc-filters label, .calc-variant { display: flex; flex-direction: column; gap: var(--space-sm); min-width: 0; font-size: 14px; }
.calc-filters input, .calc-filters select, .calc-quantity input, .calc-variant select, .copy-fallback textarea { border: 1px solid var(--color-rule); border-radius: 0; background: var(--color-paper-2); color: var(--color-ink); font-family: var(--font-body); font-size: 16px; min-width: 0; width: 100%; padding: 12px; min-height: 48px; }
.calc-filters input::placeholder { color: var(--color-muted); }
.calculator-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: var(--space-2xl); align-items: start; margin-top: var(--space-xl); }
.calc-catalogue { min-width: 0; }
#filter-status { font-size: 13px; color: var(--color-muted); margin-bottom: var(--space-xl); }
.calc-category + .calc-category { margin-top: var(--space-2xl); }
.calc-category > h2 { font-size: clamp(2rem, 3vw, 3rem); max-width: none; padding-bottom: var(--space-lg); border-bottom: 1px solid var(--color-rule); }
.calc-service { margin-top: var(--space-xl); }
.calc-service-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-sm); padding-bottom: var(--space-md); }
.calc-service-head h3 { font-family: var(--font-body); font-size: 22px; font-weight: 500; letter-spacing: -.02em; }
.calc-service-head a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--color-accent-text); }
.calc-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 110px); gap: var(--space-lg); padding-block: var(--space-lg); border-top: 1px solid var(--color-rule); }
.calc-row h4 { font-family: var(--font-body); font-size: 17px; font-weight: 500; letter-spacing: -.015em; }
.calc-row p { font-size: 13px; color: var(--color-muted); margin-top: var(--space-xs); }
.calc-row .calc-rate { color: var(--color-ink); font-size: 17px; font-variant-numeric: tabular-nums; margin-top: var(--space-md); }
.calc-rate small { font-size: 13px; color: var(--color-muted); }
.calc-variant { margin-top: var(--space-md); max-width: 310px; }
.calc-quantity label { display: block; font-size: 13px; color: var(--color-ink-2); margin-bottom: var(--space-sm); }
.calc-quantity input { font-variant-numeric: tabular-nums; }
.calc-quantity input[aria-invalid="true"] { border-color: var(--color-accent-text); }
.calc-row .calc-error { color: var(--color-accent-text); }
.calc-row--manual { grid-template-columns: minmax(0, 1fr); }
.calc-check { display: flex; gap: var(--space-sm); align-items: center; font-size: 14px; min-height: 44px; cursor: pointer; }
.calc-check input { width: 22px; height: 22px; flex: 0 0 22px; accent-color: var(--color-accent); }
.calculator-summary { position: sticky; top: var(--space-lg); padding: var(--space-xl); border: 1px solid var(--color-rule); background: var(--color-paper-2); min-width: 0; max-height: calc(100dvh - 48px); overflow-y: auto; }
.calculator-summary h2 { font-size: clamp(2rem, 3vw, 3rem); max-width: none; text-transform: uppercase; }
.calc-empty, .calc-disclaimer, .calc-privacy, .calc-next p, #individual-note, #copy-status { font-size: 13px; color: var(--color-muted); margin-top: var(--space-md); }
#summary-lines { list-style: none; padding: 0; margin: var(--space-lg) 0 0; }
#summary-lines li { display: flex; flex-direction: column; gap: var(--space-xs); border-top: 1px solid var(--color-rule); padding-block: var(--space-md); }
#summary-lines strong { font-size: 15px; font-weight: 500; }
.summary-detail { color: var(--color-muted); font-size: 12px; }
.summary-price { font-size: 15px; font-variant-numeric: tabular-nums; }
.text-button { border: 0; background: var(--color-transparent); color: var(--color-ink-2); font-family: var(--font-body); font-size: 13px; text-align: left; text-decoration: underline; text-underline-offset: .3em; cursor: pointer; min-height: 44px; padding: var(--space-xs) 0; align-self: start; }
.text-button:hover { color: var(--color-accent-text); }
.calc-total { margin-top: var(--space-lg); padding-block: var(--space-lg); border-block: 1px solid var(--color-rule); }
.calc-total p, .calc-total > span { display: block; font-size: 12px; color: var(--color-muted); }
.calc-total output { display: block; font-family: var(--font-display); font-size: clamp(2rem, 3vw, 3rem); line-height: 1.3; font-variant-numeric: tabular-nums; margin-block: var(--space-sm); overflow-wrap: anywhere; }
#individual-note, #invalid-note { color: var(--color-accent-text); font-size: 14px; }
#copy-summary { display: flex; width: 100%; margin-top: var(--space-lg); }
#reset-summary, #undo-reset { display: block; }
.copy-fallback { margin-top: var(--space-md); font-size: 13px; }
.copy-fallback summary { min-height: 44px; cursor: pointer; }
.copy-fallback textarea { margin-top: var(--space-sm); font-size: 13px; resize: vertical; }
.calc-next { margin-top: var(--space-lg); padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); }
.calc-next h3 { font-family: var(--font-body); font-size: 18px; font-weight: 500; }
.calc-next .button { margin-top: var(--space-md); width: 100%; }
.calc-notice { padding: var(--space-lg); border: 1px solid var(--color-rule); margin-top: var(--space-lg); }
.calc-mobile-bar, .calc-return { display: none; }
.calc-filters input, .calc-filters select, .calc-quantity input, .calc-variant select, .copy-fallback textarea, .calc-filters .button--quiet { border-color: var(--color-muted); }
@media (max-width: 60rem) {
  .calculator-page { padding-bottom: 100px; }
  .calc-mobile-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); position: fixed; bottom: 0; left: 0; right: 0; z-index: var(--z-sticky-nav); padding: var(--space-sm) var(--gutter); border-top: 1px solid var(--color-rule); background: var(--color-paper-3); min-height: 76px; }
  .calc-mobile-bar a { display: inline-flex; align-items: center; gap: var(--space-xs); min-height: 44px; color: var(--color-accent-text); font-size: 14px; }
  .calc-mobile-bar > span { max-width: 50%; font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }
  .calc-return { display: inline-flex; margin-bottom: var(--space-md); }
  .calculator-layout { grid-template-columns: minmax(0, 1fr); }
  .calculator-summary { position: static; max-height: none; }
  .calc-filters { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .calc-filters .button { justify-self: start; }
}
@media (max-width: 44rem) {
  .calc-filters { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); }
  .calc-row { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); }
  .calc-quantity { max-width: 140px; }
  .calculator-summary { padding: var(--space-lg); }
  .calculator-hero h1 { font-size: clamp(2.5rem, 9.7vw, 4.5rem); }
  .calculator-summary h2, .calc-category > h2 { font-size: 2.4rem; }
  .calc-variant { max-width: 100%; }
}
