Files
Schmacko-napf/assets/site.css
T
NotPika69andClaude Opus 5.5 d154ea13c2 Terminbuchung über PetWorkers und G&H-Zertifikat eingebaut
- "Termin buchen" in der Kopfleiste, im Kontakt und als Buchungs-Fläche mit allen Angeboten
- Direkte Buchen-Knöpfe für Einzelcoaching, Gruppenstunden und Stundenplan
- G&H-Siegel im Footer, auf Ernährung und bei den Ausbildungen
- Datenschutz um die Online-Terminbuchung ergänzt
- tools/make_zip.sh baut das Übergabe-Paket

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 11:01:49 +02:00

633 lines
23 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ===== Schrift (lokal, Questrial – SIL Open Font License) ===== */
@font-face {
font-family: "Questrial";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("fonts/questrial-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;
}
@font-face {
font-family: "Questrial";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("fonts/questrial-latin-ext.woff2") format("woff2");
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* ===== Farben – aus dem Schmacko-Napf-Branding ===== */
:root {
--bg: #fcfaf4; /* Creme */
--surface: #f2eee0; /* dunkleres Creme für Flächen */
--ink: #194242; /* Petrol-Grün (Logo) */
--ink-2: #0f2e2e;
--muted: #4a6866;
--sage: #d0e6a5; /* Salbeigrün */
--sage-soft: #e6f0d0;
--line: rgba(25, 66, 66, .14);
--on-image: #ffffff;
--radius: 22px;
--gap: 14px;
--pad: clamp(16px, 2.2vw, 28px);
--ease: cubic-bezier(.22, .61, .36, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
html, body { margin: 0; }
body {
background: var(--bg);
color: var(--ink);
font-family: "Questrial", "Century Gothic", system-ui, sans-serif;
font-size: 19px;
line-height: 1.55;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3 { font-weight: 400; line-height: 1.05; letter-spacing: -.025em; margin: 0; }
p { margin: 0; }
svg { flex: none; }
/* Tastatur: direkt zum Inhalt */
.skip {
position: fixed; left: 16px; top: 16px; z-index: 100;
padding: 12px 20px; border-radius: 999px;
background: var(--ink); color: var(--bg);
transform: translateY(-200%);
}
.skip:focus { transform: none; }
/* ===== Header: Logo und Menü als zwei schwebende Elemente ===== */
.site-header {
position: sticky; top: 0; z-index: 50;
pointer-events: none; /* Fläche zwischen Logo und Menü bleibt klickbar */
}
.header-inner {
display: flex; align-items: center; gap: 24px;
height: 88px;
padding: 0 var(--pad);
}
.brand, .nav, .burger {
pointer-events: auto;
background: color-mix(in srgb, var(--bg) 90%, transparent);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
box-shadow: 0 10px 30px rgba(25, 66, 66, .12);
}
.brand {
width: 72px; height: 72px;
border-radius: 50%;
display: grid; place-items: center;
}
.brand img { width: 68px; height: 68px; transition: transform .5s var(--ease); }
.brand:hover img { transform: rotate(-6deg); }
.nav {
display: flex; gap: 4px;
margin-left: auto;
padding: 8px;
border-radius: var(--radius);
}
.nav a {
padding: 12px 20px;
border-radius: 14px;
font-size: 1.05rem;
transition: background .25s var(--ease);
}
.nav a:hover, .nav a[aria-current="page"] { background: var(--sage-soft); }
/* Buchen-Knopf in der Kopfleiste */
.book-btn {
pointer-events: auto;
display: inline-flex; align-items: center; gap: 10px;
height: 60px; padding: 0 24px 0 20px;
margin-left: 12px;
border-radius: var(--radius);
background: var(--sage);
color: var(--ink);
font-size: 1.05rem;
box-shadow: 0 10px 30px rgba(25, 66, 66, .12);
transition: background .25s var(--ease);
}
.book-btn:hover { background: #c2dc8f; }
.book-btn svg { width: 22px; height: 22px; }
.burger {
display: none;
width: 60px; height: 60px;
margin-left: auto;
border: 0;
border-radius: 50%;
color: var(--ink);
cursor: pointer;
place-items: center;
}
.burger svg { width: 22px; height: 22px; }
/* Startseite: Header erst nach dem Hero einblenden */
.is-home .site-header {
position: fixed; left: 0; right: 0;
transform: translateY(-120%);
transition: transform .45s var(--ease);
}
.is-home.scrolled .site-header, .is-home.menu-open .site-header { transform: none; }
/* ===== Buttons ===== */
.btn {
display: inline-flex; align-items: center; justify-content: center; gap: 12px;
height: 60px; padding: 0 28px;
border-radius: 999px;
font-size: 1.12rem;
border: 1px solid transparent;
transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
white-space: nowrap;
}
.btn svg { width: 22px; height: 22px; }
.btn--sage { background: var(--sage); color: var(--ink); }
.btn--sage:hover { background: #c2dc8f; }
.btn--ink { background: var(--ink); color: var(--bg); }
.btn--ink:hover { background: var(--ink-2); }
.btn--line { border-color: rgba(255, 255, 255, .3); color: var(--bg); }
.btn--line:hover { border-color: var(--bg); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
/* ===== Hero / Kacheln ===== */
.hero {
height: 100svh;
min-height: 600px;
display: flex;
padding: var(--pad);
}
.tiles {
flex: 1;
position: relative;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
gap: var(--gap);
}
.tile {
position: relative;
overflow: hidden;
border-radius: var(--radius);
background: var(--surface);
isolation: isolate;
opacity: 0;
transform: translateY(14px);
animation: rise .8s var(--ease) forwards;
transition: opacity .4s var(--ease), filter .4s var(--ease);
}
.tile:nth-of-type(2) { animation-delay: .08s; }
.tile:nth-of-type(3) { animation-delay: .16s; }
.tile:nth-of-type(4) { animation-delay: .24s; }
@keyframes rise { to { opacity: 1; transform: none; } }
.tile img {
position: absolute; inset: 0;
width: 100%; height: 100%;
object-fit: cover;
z-index: -2;
transition: transform 1s var(--ease);
}
.tile::after {
content: "";
position: absolute; inset: 0;
z-index: -1;
background: linear-gradient(to top, rgba(10, 18, 14, .62) 0%, rgba(10, 18, 14, .12) 45%, rgba(10, 18, 14, 0) 70%);
}
.tile-foot {
position: absolute;
left: clamp(18px, 2.4vw, 32px);
right: clamp(18px, 2.4vw, 32px);
bottom: clamp(18px, 2.4vw, 30px);
display: flex;
align-items: flex-end;
gap: 16px;
color: var(--on-image);
}
/* rechte Spalte: Beschriftung an die Außenkante */
.tile:nth-of-type(even) .tile-foot { flex-direction: row-reverse; text-align: right; }
.tile-label {
font-size: clamp(1.7rem, 2.8vw, 2.7rem);
line-height: 1.1;
letter-spacing: -.01em;
}
.tile-label small {
display: block;
margin-top: 6px;
font-size: .48em;
letter-spacing: .02em;
opacity: .85;
}
.tile-arrow {
flex: none;
width: 54px; height: 54px;
border-radius: 50%;
background: rgba(255, 255, 255, .18);
border: 1px solid rgba(255, 255, 255, .45);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
color: var(--on-image);
display: grid; place-items: center;
transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.tile-arrow svg { width: 20px; height: 20px; transition: transform .5s var(--ease); }
@media (hover: hover) {
.tiles:has(.tile:hover) .tile:not(:hover) { filter: saturate(.75) brightness(.92); }
.tile:hover img { transform: scale(1.05); }
.tile:hover .tile-arrow { background: var(--sage); border-color: var(--sage); color: var(--ink); }
.tile:hover .tile-arrow svg { transform: rotate(-45deg); }
}
.tile:focus-visible, .btn:focus-visible, .nav a:focus-visible { outline: 3px solid var(--sage); outline-offset: 3px; }
/* Logo-Siegel in der Mitte */
.seal {
position: absolute;
left: 50%; top: 50%;
z-index: 5;
width: clamp(220px, 21vw, 300px);
aspect-ratio: 1;
margin: 0;
border-radius: 50%;
background: var(--bg);
display: grid; place-items: center;
transform: translate(-50%, -50%) scale(.9);
opacity: 0;
animation: seal .9s .35s var(--ease) forwards;
}
.seal img { width: 94%; height: 94%; object-fit: contain; }
@keyframes seal { to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
/* Ring um das Siegel mit runden Übergängen in die Kachel-Lücken (Form kommt aus site.js) */
.seal-joint {
position: absolute;
left: 50%; top: 50%;
z-index: 4;
transform: translate(-50%, -50%);
fill: var(--bg);
pointer-events: none;
opacity: 0;
animation: fade .9s .35s var(--ease) forwards;
}
@keyframes fade { to { opacity: 1; } }
.scroll-hint {
position: absolute;
left: 50%; bottom: calc(var(--pad) + 14px);
transform: translateX(-50%);
z-index: 6;
width: 44px; height: 44px;
border-radius: 50%;
background: var(--bg);
display: grid; place-items: center;
box-shadow: 0 8px 24px rgba(25, 66, 66, .18);
animation: bob 2.4s var(--ease) infinite;
}
.scroll-hint svg { width: 18px; height: 18px; }
@keyframes bob { 50% { transform: translate(-50%, 6px); } }
/* ===== Mosaik aus Flächen (gleicher Stil wie die Kacheln) ===== */
.mosaic {
display: grid;
gap: var(--gap);
padding: 0 var(--pad) var(--pad);
}
.row { display: grid; gap: var(--gap); grid-template-columns: 1fr 1fr; }
.row--3 { grid-template-columns: repeat(3, 1fr); }
.row--wide { grid-template-columns: 1.25fr 1fr; }
.row--wide-r { grid-template-columns: 1fr 1.25fr; }
.panel {
position: relative;
overflow: hidden;
isolation: isolate;
border-radius: var(--radius);
padding: clamp(28px, 4.2vw, 72px);
min-height: min(82svh, 820px);
display: flex; flex-direction: column; justify-content: flex-end;
background: var(--surface);
}
.panel--auto { min-height: 0; }
.panel--mid { min-height: min(62svh, 620px); }
.panel--center { justify-content: center; }
.panel--ink { background: var(--ink); color: var(--bg); }
.panel--sage { background: var(--sage); }
.panel--cream { background: var(--surface); }
.panel--plain { background: transparent; }
/* Foto-Fläche */
.panel--photo { color: var(--on-image); background: var(--ink); }
.panel--photo > img {
position: absolute; inset: 0;
width: 100%; height: 100%;
object-fit: cover;
z-index: -2;
transition: transform 1.2s var(--ease);
}
.panel--photo::after {
content: ""; position: absolute; inset: 0; z-index: -1;
background: linear-gradient(to top, rgba(10, 22, 20, .72) 0%, rgba(10, 22, 20, .25) 40%, rgba(10, 22, 20, 0) 65%);
}
.panel--photo.plain::after { display: none; }
a.panel--photo:hover > img { transform: scale(1.04); }
/* Typografie in Flächen */
.kicker {
display: block;
font-size: 1rem;
letter-spacing: .2em;
text-transform: uppercase;
margin-bottom: 22px;
opacity: .75;
}
.panel--ink .kicker, .panel--photo .kicker { color: var(--sage); opacity: 1; }
.display { font-size: clamp(2.8rem, 6.2vw, 6.4rem); }
.title { font-size: clamp(2.2rem, 4.2vw, 4rem); }
.big {
font-size: clamp(1.25rem, 1.8vw, 1.65rem);
line-height: 1.45;
max-width: 32ch;
margin-top: 24px;
}
.panel--cream .big, .panel--sage .big { color: var(--muted); }
.panel--sage .big { color: var(--ink); opacity: .85; }
.panel--ink .big { color: color-mix(in srgb, var(--bg) 80%, transparent); }
.panel--photo .big { color: rgba(255, 255, 255, .9); }
/* Pfeil oben rechts in verlinkten Flächen */
.panel-arrow {
position: absolute;
top: clamp(20px, 2.6vw, 36px); right: clamp(20px, 2.6vw, 36px);
width: 64px; height: 64px;
border-radius: 50%;
display: grid; place-items: center;
background: rgba(255, 255, 255, .18);
border: 1px solid rgba(255, 255, 255, .45);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
color: var(--on-image);
transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.panel-arrow svg { width: 24px; height: 24px; transition: transform .5s var(--ease); }
a.panel:hover .panel-arrow { background: var(--sage); border-color: var(--sage); color: var(--ink); }
a.panel:hover .panel-arrow svg { transform: rotate(-45deg); }
.panel-arrow--ink { background: var(--ink); border-color: var(--ink); }
/* Kurze Fakten als Pillen */
.facts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.fact {
padding: 12px 22px;
border-radius: 999px;
font-size: 1.12rem;
background: rgba(255, 255, 255, .16);
border: 1px solid rgba(255, 255, 255, .35);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.panel--cream .fact, .panel--sage .fact { background: var(--bg); border-color: transparent; }
.panel--ink .fact { background: rgba(208, 230, 165, .12); border-color: transparent; }
/* Großes Zitat */
.statement {
font-size: clamp(2rem, 4.6vw, 4.6rem);
line-height: 1.12;
letter-spacing: -.025em;
max-width: 22ch;
margin: 0 auto;
text-align: center;
}
.statement-by { display: block; text-align: center; margin-top: 28px; font-size: 1.15rem; opacity: .7; }
/* 5 Säulen als große Wörter */
.words { list-style: none; padding: 0; margin: 10px 0 0; }
.words li {
display: flex; align-items: baseline; gap: clamp(16px, 2vw, 32px);
padding: clamp(10px, 1.4vw, 18px) 0;
border-bottom: 1px solid rgba(255, 255, 255, .12);
font-size: clamp(2.4rem, 6vw, 6rem);
line-height: 1;
letter-spacing: -.03em;
transition: color .3s var(--ease), padding .4s var(--ease);
}
.words li:hover { color: var(--sage); padding-left: 12px; }
.words small { font-size: 1rem; letter-spacing: .1em; color: var(--sage); width: 2.2em; flex: none; }
.words span { font-size: clamp(1.05rem, 1.4vw, 1.3rem); letter-spacing: 0; color: color-mix(in srgb, var(--bg) 70%, transparent); margin-left: auto; text-align: right; max-width: 26ch; line-height: 1.35; }
/* Qualifikationen (auf dunkler Fläche) */
.quals { list-style: none; padding: 0; margin: 10px 0 0; }
.quals li {
display: grid; grid-template-columns: 9em 1fr auto; align-items: baseline; gap: 12px 32px;
padding: clamp(18px, 2vw, 28px) 0;
border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.quals small { font-size: 1rem; letter-spacing: .06em; color: var(--sage); }
.quals strong { font-weight: 400; font-size: clamp(1.6rem, 3.2vw, 3rem); line-height: 1.05; letter-spacing: -.02em; }
.quals span { color: color-mix(in srgb, var(--bg) 70%, transparent); font-size: clamp(1.05rem, 1.4vw, 1.25rem); text-align: right; }
/* Liste mit Jahreszahl (auf heller Fläche) */
.list-big { list-style: none; padding: 0; margin: 10px 0 0; columns: 2; column-gap: clamp(32px, 5vw, 80px); }
.list-big li {
break-inside: avoid;
display: flex; gap: 20px; align-items: baseline;
padding: 18px 0;
border-bottom: 1px solid var(--line);
font-size: clamp(1.15rem, 1.6vw, 1.4rem);
line-height: 1.35;
}
.list-big small { flex: none; width: 3em; font-size: 1rem; color: var(--muted); }
/* Schritte */
.steps { list-style: none; padding: 0; margin: 40px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); }
.steps li { border-top: 1px solid rgba(255, 255, 255, .2); padding-top: 22px; }
.steps b { display: block; font-weight: 400; font-size: clamp(2.6rem, 4vw, 3.6rem); color: var(--sage); line-height: 1; }
.steps strong { display: block; font-weight: 400; font-size: clamp(1.4rem, 2vw, 1.8rem); margin-top: 18px; }
.steps span { display: block; margin-top: 10px; font-size: 1.12rem; color: color-mix(in srgb, var(--bg) 75%, transparent); }
/* Preise */
.price-big { margin-top: 30px; }
.price-big strong { display: block; font-weight: 400; font-size: clamp(3rem, 5vw, 4.8rem); line-height: 1; letter-spacing: -.03em; }
.price-big span { display: block; margin-top: 10px; font-size: 1.15rem; opacity: .75; }
.price-rows { margin-top: 36px; }
.price-rows div {
display: flex; justify-content: space-between; align-items: baseline; gap: 20px;
padding: 22px 0;
border-bottom: 1px solid var(--line);
font-size: clamp(1.3rem, 2vw, 1.8rem);
}
.price-rows div:first-child { border-top: 1px solid var(--line); }
.price-rows small { display: block; font-size: 1.05rem; color: var(--muted); margin-top: 6px; letter-spacing: 0; }
.price-rows strong { font-weight: 400; white-space: nowrap; font-size: clamp(1.6rem, 2.6vw, 2.4rem); }
/* Icon in Flächen */
.panel-icon {
width: 76px; height: 76px;
border-radius: 50%;
background: var(--bg);
display: grid; place-items: center;
margin-bottom: auto;
}
.panel-icon svg { width: 34px; height: 34px; }
.panel--ink .panel-icon { background: rgba(208, 230, 165, .14); color: var(--sage); }
/* BARF-Teller */
.plate-panel { align-items: center; justify-content: center; }
.plate-panel img { width: min(82%, 560px); filter: drop-shadow(0 34px 46px rgba(25, 66, 66, .25)); }
/* Buchungs-Fläche */
.booking { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(28px, 4vw, 72px); align-items: end; }
.book-links { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.book-links a {
display: flex; align-items: center; justify-content: space-between; gap: 16px;
padding: 22px 26px;
border-radius: 18px;
background: var(--bg);
font-size: clamp(1.15rem, 1.5vw, 1.35rem);
transition: background .3s var(--ease), color .3s var(--ease);
}
.book-links a:hover { background: var(--ink); color: var(--bg); }
.book-links svg { width: 22px; height: 22px; transition: transform .4s var(--ease); }
.book-links a:hover svg { transform: translate(2px, -2px); }
.book-links a:only-child { grid-column: 1 / -1; }
/* G&H-Zertifikat */
.cert { display: block; width: clamp(150px, 13vw, 200px); height: auto; margin-top: 36px; }
.quals-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.quals-head .cert { margin-top: 0; width: clamp(120px, 11vw, 170px); }
/* Kontakt */
.contact-links { display: grid; gap: 12px; margin-top: 40px; max-width: 520px; }
.contact-links a {
display: flex; align-items: center; gap: 18px;
padding: 20px 24px;
border-radius: 18px;
background: rgba(255, 255, 255, .07);
font-size: clamp(1.15rem, 1.6vw, 1.4rem);
transition: background .3s var(--ease);
}
.contact-links a:hover { background: rgba(208, 230, 165, .18); }
.contact-links a.contact-book { background: var(--sage); color: var(--ink); }
.contact-links a.contact-book svg { color: var(--ink); }
.contact-links a.contact-book:hover { background: #c2dc8f; }
.contact-links svg { width: 28px; height: 28px; color: var(--sage); }
.contact-links a > span:last-child { margin-left: auto; opacity: .5; }
.contact-links a > span:last-child svg { width: 22px; height: 22px; color: currentColor; }
/* Footer */
.site-footer {
border-radius: var(--radius);
background: var(--ink-2);
color: color-mix(in srgb, var(--bg) 75%, transparent);
padding: clamp(28px, 3.4vw, 48px);
display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
font-size: 1.05rem;
}
.footer-brand { display: flex; align-items: center; gap: 22px; }
.footer-logo { width: 96px; height: 96px; border-radius: 50%; background: var(--bg); display: grid; place-items: center; flex: none; }
.footer-logo img { width: 92%; }
.footer-cert { width: auto; height: 84px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 8px 26px; }
.footer-links a:hover { color: var(--bg); }
.footer-meta { width: 100%; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .95rem; opacity: .75; }
/* Unterseiten-Hero */
.page-hero { min-height: calc(100svh - 88px - var(--pad)); }
.page-hero h1 { font-size: clamp(3.2rem, 8vw, 8rem); letter-spacing: -.035em; line-height: .98; }
/* Text-Seite (Impressum) */
.legal { font-size: clamp(1.1rem, 1.4vw, 1.3rem); line-height: 1.6; max-width: 46em; margin-top: 48px; }
.legal h2 { font-size: clamp(1.5rem, 2.2vw, 2rem); margin: 52px 0 16px; letter-spacing: -.015em; }
.legal a { text-decoration: underline; text-underline-offset: 3px; }
.legal p + p { margin-top: 28px; }
.legal b { font-weight: 400; display: block; font-size: 1rem; letter-spacing: .16em; text-transform: uppercase; opacity: .7; margin-bottom: 6px; }
/* ===== Scroll-Animationen ===== */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.d1 { transition-delay: .1s; }
.d2 { transition-delay: .2s; }
.tile:focus-visible, .btn:focus-visible, .nav a:focus-visible, a.panel:focus-visible { outline: 3px solid var(--sage); outline-offset: 3px; }
/* ===== Responsive ===== */
@media (max-width: 1100px) {
.steps { grid-template-columns: repeat(2, 1fr); row-gap: 34px; }
.nav a { padding: 10px 12px; font-size: 1rem; }
}
@media (max-width: 980px) {
.nav { display: none; }
.burger { display: grid; margin-left: 10px; }
.book-btn { margin-left: auto; }
.booking { grid-template-columns: 1fr; align-items: start; }
.menu-open .nav {
display: flex; flex-direction: column; gap: 4px;
position: fixed; top: 88px; left: var(--pad); right: var(--pad);
padding: 10px;
background: var(--bg);
}
.menu-open .nav a { padding: 16px 18px; font-size: 1.35rem; }
.row, .row--3, .row--wide, .row--wide-r { grid-template-columns: 1fr; }
.panel { min-height: 0; }
.panel--photo { min-height: 64svh; }
.panel--photo.tall { min-height: 80svh; }
.plate-panel { min-height: 0; padding-block: 56px; }
.words span { display: none; }
.quals li { grid-template-columns: 1fr; gap: 6px; }
.quals span { text-align: left; }
.list-big { columns: 1; }
}
@media (max-width: 767px) {
body { font-size: 18px; }
.header-inner { height: 76px; }
.brand { width: 62px; height: 62px; }
.book-btn { height: 54px; padding: 0 18px; font-size: 1rem; }
.book-links { grid-template-columns: 1fr; }
.footer-cert { height: 72px; }
.brand img { width: 58px; height: 58px; }
.burger { width: 54px; height: 54px; }
.menu-open .nav { top: 76px; }
.hero { height: auto; min-height: 0; display: block; padding: 0 16px 16px; }
.tiles { grid-template-columns: 1fr; grid-template-rows: none; gap: 12px; }
.tile { height: 44svh; min-height: 260px; }
.tile:nth-of-type(even) .tile-foot { flex-direction: row; text-align: left; }
.tile-arrow { width: 50px; height: 50px; }
.seal {
position: static;
width: 210px;
margin: 4px auto -6px;
transform: scale(.9);
}
@keyframes seal { to { opacity: 1; transform: none; } }
.seal-joint { display: none; }
.scroll-hint { display: none; }
.mosaic { gap: 12px; padding: 0 16px 16px; }
.row { gap: 12px; }
.panel { padding: 30px 24px; }
.panel-arrow { width: 54px; height: 54px; }
.steps { grid-template-columns: 1fr; }
.contact-links a { padding: 18px 18px; }
.page-hero { min-height: calc(100svh - 76px - 16px); }
.footer-brand { flex-direction: column; align-items: flex-start; }
}
.book-short { display: none; }
@media (max-width: 400px) {
.book-btn { padding: 0 16px; gap: 8px; }
.book-long { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.book-short { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
.tile, .seal, .seal-joint { animation: none; opacity: 1; }
.tile { transform: none; }
.seal { transform: translate(-50%, -50%); }
.scroll-hint { animation: none; }
.reveal { opacity: 1; transform: none; transition: none; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 767px) {
.seal { transform: none; }
}