/* Logical dimensions keep the same layouts for long copy and RTL. */
.wrap { inline-size: min(100% - (var(--gutter) * 2), 1120px); margin-inline: auto; }
.wrap > *, .grid > *, .foot-grid > *, .showcase > *, .exhibit-heading > * { min-inline-size: 0; }
.stack > * + * { margin-block-start: var(--space-s); }
.hero { padding-block: clamp(2.5rem, 6vw, 6rem) clamp(2.5rem, 5vw, 4rem); }
.hero h1 { max-inline-size: 22ch; }
.hero .lead { font-size: var(--step-1); color: var(--text-soft); max-inline-size: 58ch; margin-block-start: var(--space-m); }
.actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: var(--space-l); }
.section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.section-continuation { padding-block-start: 0; }
.section-head { margin-block-end: var(--space-l); }
.section-head p { margin-block-start: var(--space-s); color: var(--text-soft); }
.grid { display: grid; gap: var(--space-m); }
.grid-2, .grid-3 { grid-template-columns: minmax(0,1fr); }
@media (min-width: 620px) { .grid-2, .grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 980px) { .grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.company-hero { padding-block: clamp(2rem,6vw,6rem) var(--space-xl); }
.company-hero-grid { display: grid; gap: var(--space-l); align-items: center; }
.company-hero h1 { max-inline-size: 17ch; }
.company-hero .lead { font-size: var(--step-0); line-height: 1.65; max-inline-size: 52ch; }
.company-range { inline-size: 100%; max-inline-size: 620px; }
@media (min-width: 900px) { .company-hero-grid { grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 3rem; } }
@media (max-width: 619px) { .company-hero h1 { font-size: clamp(2rem,8vw,2.9rem); max-inline-size: 21ch; } }
.home-products { padding-block-end: 0; }
.product-exhibit { padding-block: var(--space-xl); border-block-start: 1px solid var(--line); }
.exhibit-heading { display: grid; gap: var(--space-m); margin-block-end: var(--space-l); }
.exhibit-heading h3 { font-size: var(--step-3); }
@media (min-width: 620px) { .exhibit-heading { grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); gap: 3rem; } }
.compact-exhibit { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: var(--space-m); align-items: center; }
.compact-exhibit .product-state, .compact-exhibit .product-tagline { grid-column: 2; margin: 0; }
@media (min-width: 900px) { .compact-exhibit { grid-template-columns: 64px minmax(0,1fr) minmax(0,.7fr) minmax(0,1.5fr); } .compact-exhibit .product-state, .compact-exhibit .product-tagline { grid-column: auto; } }
.contact-close { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-l); padding-block: var(--space-l); border-block-start: 1px solid var(--line); }
.contact-close p { margin-block-start: var(--space-s); color: var(--text-soft); }
.p-hero { padding-block: clamp(2.5rem, 6vw, 6rem) var(--space-l); }
.p-hero .wrap { display: grid; gap: var(--space-l); align-items: center; }
@media (min-width: 900px) { .p-hero .wrap { grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 3rem; } }
.p-hero h1 { max-inline-size: 14ch; }
.p-sub { font-size: var(--step-3); font-weight: 600; line-height: 1.2; max-inline-size: 26ch; margin-block-start: var(--space-s); text-wrap: balance; }
.p-hero .lead { font-size: var(--step-1); color: var(--text-soft); max-inline-size: 46ch; margin-block-start: var(--space-m); }
.app-intro { padding-block-end: 0; }
.app-head { max-inline-size: 62ch; margin-block-end: var(--space-l); }
.app-head h2, .app-lead { margin-block-start: var(--space-s); }
.app-lead { color: var(--text-soft); font-size: var(--step-1); }
.story { padding-block: var(--space-xl); }
.story-visual { display: none; }
.story-steps { display: grid; gap: var(--space-l); }
@media (min-width: 900px) { .story-steps { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; } }
@media (min-width: 900px) { .story-civesto .story-steps { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.features { display: grid; gap: var(--space-m); }
@media (min-width: 620px) { .features { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 980px) { .features { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.showcase { display: grid; gap: var(--space-m); }
@media (min-width: 900px) { .showcase { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.gallery { display: flex; flex-wrap: wrap; gap: var(--space-m); margin-block-start: var(--space-m); }
.gallery img { inline-size: min(100%,300px); block-size: auto; align-self: start; border-radius: var(--radius); border: 1px solid var(--line); }
.foot-grid { display: grid; gap: var(--space-l); grid-template-columns: minmax(0,1fr); }
@media (min-width: 620px) { .foot-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1050px) { .foot-grid { grid-template-columns: 1.4fr .7fr .7fr 1.2fr; } }
@media print {
 .wrap { inline-size: 100%; }
 .hero, .section, .p-hero, .story { padding-block: 18pt; }
 .company-hero-grid, .p-hero .wrap { display: block; }
 .company-range { max-inline-size: 400pt; margin-block-start: 18pt; }
 .gallery img, .step img { max-inline-size: 180pt; }
 .product-exhibit, .feature, .card, .step, .site-foot { break-inside: avoid; }
 .foot-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Contact r4: existing typography and tokens; the channels precede the form. */
.contact-overview { display:grid; gap:var(--space-m); }
.contact-overview h2 { font-size:var(--step-1); margin-block-end:var(--space-m); }
.contact-channel-list { display:grid; gap:var(--space-m); }
.contact-channel-list dt { color:var(--text-soft); font-size:.875rem; }
.contact-channel-list dd { margin:0; }
.contact-channel-list a { display:inline-block; min-block-size:24px; padding-block:.25rem; overflow-wrap:anywhere; }
.contact-channel-list .contact-email { font-size:clamp(1.1rem,2vw,1.5rem); }
.contact-hours dd { margin:0; line-height:1.7; }
.local-hours { margin-block-start:var(--space-m); max-inline-size:40ch; }
.contact-office address { margin-block-start:var(--space-s); font-style:normal; }
.contact-office .legal { margin-block:var(--space-m); }
.contact-map-links { margin-block-start:var(--space-m); }
.contact-map-links ul, .contact-elsewhere ul { list-style:none; padding:0; }
.contact-map-links a, .contact-elsewhere a { display:inline-block; min-block-size:24px; padding-block:.25rem; }
.story-paired .story-steps { align-items:stretch; }
.story-image-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-m); justify-items:center; margin-block-start:var(--space-l); }
.story-image-pair img { inline-size:100%; max-inline-size:310px; block-size:auto; }
.story-image-pair > .responsive-picture { display:block; inline-size:100%; max-inline-size:310px; }
@media (min-width:900px) { .contact-overview { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); } .story-image-pair { max-inline-size:820px; margin-inline:auto; } }

.sr-only { position:absolute; inline-size:1px; block-size:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }

.contact-socials a { display:inline-block; padding-block:.35rem; min-block-size:24px; }
.contact-form-grid { display:grid; align-items:start; gap:var(--space-l); }
.message-handling ul { padding-inline-start:1.15rem; margin-block-start:var(--space-m); }
.message-handling li { color:var(--text-soft); font-size:var(--step--1); line-height:1.65; }
.message-handling li + li { margin-block-start:var(--space-m); }
@media (min-width:900px) { .contact-form-grid { grid-template-columns:minmax(0,2fr) minmax(250px,1fr); } }
