:root { --cream:#F7F4E8; --ink:#1F2118; --dark:#2A2A24; --lime:#A7C91A; --yellow:#E9DD00; --sand:#DDD4B4; --amber:#F2B84B; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
a,button,input,select,textarea,summary { outline-offset:4px; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--amber); }
section[id] { scroll-margin-top:76px; }
main { overflow:hidden; }
.topbar { position:fixed; z-index:20; top:0; left:0; right:0; height:76px; padding:0 clamp(22px,5vw,76px); display:flex; align-items:center; justify-content:space-between; background:rgba(31,33,24,.94); color:var(--cream); backdrop-filter:blur(12px); }
.brand { display:flex; align-items:center; }
.brand img { display:block; width:170px; height:auto; }
nav { display:flex; align-items:center; gap:30px; font-size:.88rem; font-weight:700; }
nav a { transition:color .2s; }
nav a:hover { color:var(--yellow); }
.nav-cta { border:1px solid var(--lime); border-radius:100px; padding:11px 19px; }
.menu-toggle { display:none; }
.hero { position:relative; margin-top:76px; background:var(--ink); color:var(--cream); }
.hero-copy-wrap { padding:62px 7vw 68px; background:var(--ink); }
.hero-copy { max-width:950px; display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.eyebrow { color:var(--lime); text-transform:uppercase; letter-spacing:.17em; font-size:.76rem; font-weight:800; margin:0 0 22px; }
h1,h2 { margin:0; line-height:.95; letter-spacing:-.055em; }
h1 { font-size:clamp(3rem,5.5vw,6rem); max-width:780px; }
h2 { font-size:clamp(2.5rem,5vw,5rem); }
.hero-copy .eyebrow { margin-bottom:-8px; }
.hero-copy>p:not(.eyebrow) { max-width:480px; line-height:1.7; color:#d7d5ca; margin:0; }
.button { max-width:100%; display:inline-flex; align-items:center; justify-content:space-between; gap:40px; border-radius:100px; padding:16px 22px; background:var(--yellow); color:var(--ink); font-weight:800; font-size:.9rem; text-align:left; }
.button span { font-size:1.2rem; }
.hero-image { width:100%; min-height:clamp(520px,67vw,860px); background:url('../images/fahrschule-wetzikon-elektroauto.webp') center 54%/cover no-repeat; }
.hero-tag { --badge-size:clamp(100px,9vw,130px); position:absolute; right:5vw; top:clamp(520px,67vw,860px); width:var(--badge-size); height:var(--badge-size); font-size:calc(var(--badge-size) * .123); transform:translateY(-50%); display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:50%; background:var(--yellow); color:var(--ink); }
.hero-tag strong { font-size:1.8em; }.hero-tag span { font-size:.8em; text-transform:uppercase; letter-spacing:.12em; }
.section { padding:110px 7vw; }
.section-label { display:flex; gap:15px; align-items:center; margin-bottom:65px; text-transform:uppercase; font-weight:800; letter-spacing:.13em; font-size:.75rem; }
.section-label span { display:grid; place-items:center; width:34px; height:34px; border:1px solid currentColor; border-radius:50%; }
.intro-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.42fr); gap:9vw; align-items:start; }
.intro-copy { display:flex; flex-direction:column; gap:42px; max-width:820px; }
.intro-text { font-size:1.12rem; line-height:1.75; max-width:680px; }
.intro-text p { margin:0 0 22px; }
.about-facts { display:flex; flex-wrap:wrap; gap:9px; margin-top:30px; }.about-facts span { padding:9px 13px; border:1px solid var(--sand); border-radius:100px; font-size:.76rem; font-weight:700; }
.portrait-card { width:min(100%,360px); margin:0; justify-self:end; background:var(--sand); border-radius:18px; overflow:hidden; transform:rotate(2deg); }
.portrait-card img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }
.portrait-card figcaption { display:flex; flex-direction:column; padding:18px 20px 22px; gap:5px; }.portrait-card figcaption span { font-size:.82rem; }
.reviews-section { padding:95px 0 75px 7vw; background:var(--yellow); }
.reviews-head { display:flex; justify-content:space-between; align-items:end; gap:50px; padding-right:7vw; margin-bottom:48px; }
.review-kicker { margin:0 0 18px; text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; font-weight:800; }
.reviews-head h2 { max-width:700px; }
.rating-summary { flex:0 0 auto; display:grid; grid-template-columns:auto auto; gap:6px 14px; align-items:center; }
.rating-summary .stars { letter-spacing:.12em; }.rating-summary small { grid-column:1/-1; opacity:.66; }
.review-track { display:flex; gap:22px; overflow-x:auto; padding:5px 7vw 22px 0; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-inline:contain; }
.review-track::-webkit-scrollbar { display:none; }
.review-card { flex:0 0 calc(50% - 5vw); min-height:310px; padding:34px; display:flex; flex-direction:column; border-radius:22px; background:var(--cream); scroll-snap-align:start; }
.card-stars { color:#8fae12; letter-spacing:.13em; }
.review-card blockquote { margin:30px 0 36px; font-size:clamp(1.25rem,2vw,1.8rem); line-height:1.35; font-weight:700; letter-spacing:-.02em; }
.review-author { margin-top:auto; padding:20px 0 0; min-height:auto; display:flex; flex-direction:column; gap:5px; border-top:1px solid var(--sand); background:none; color:var(--ink); }
.review-author span { font-size:.82rem; opacity:.6; }
.review-footer { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:15px 7vw 0 0; font-weight:700; }
.review-links { display:flex; flex-wrap:wrap; gap:24px; }
.elfsight-widget-shell { min-height:280px; margin-right:7vw; }
.elfsight-widget-shell>div { min-height:240px; }
.review-controls { display:flex; gap:10px; }
.review-controls button { width:48px; height:48px; border:1px solid var(--ink); border-radius:50%; background:transparent; color:var(--ink); font-size:1.2rem; cursor:pointer; transition:.2s; }
.review-controls button:hover { background:var(--ink); color:var(--yellow); }
.prices { background:var(--dark); color:var(--cream); }
.section-label.light { color:var(--sand); }
.prices-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:10vw; }
.muted { color:#b9b9ad; max-width:430px; line-height:1.7; }
.price-list { border-top:1px solid #5a5b51; }
.price-row { display:grid; grid-template-columns:1.5fr .7fr .7fr; gap:20px; padding:24px 0; border-bottom:1px solid #5a5b51; align-items:center; }
.price-row b { text-align:right; color:var(--yellow); }.price-row span { color:#b9b9ad; }.text-link { display:inline-block; margin-top:28px; color:var(--lime); font-weight:700; }
.price-note { margin:24px 0 0; color:#b9b9ad; line-height:1.6; }.terms-links { display:flex; flex-wrap:wrap; gap:25px; }
.faq-section { display:grid; grid-template-columns:.7fr 1.3fr; gap:10vw; background:var(--cream); }
.faq-intro { position:sticky; top:125px; align-self:start; }
.faq-intro>p:not(.eyebrow) { max-width:480px; margin:28px 0 0; line-height:1.7; }
.faq-list { border-top:1px solid var(--sand); }
.faq-list details { border-bottom:1px solid var(--sand); }
.faq-list summary { position:relative; padding:27px 58px 27px 0; list-style:none; font-size:1.12rem; font-weight:800; line-height:1.4; cursor:pointer; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; top:20px; right:0; width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; font-size:1.35rem; font-weight:400; transition:transform .2s,background .2s; }
.faq-list details[open] summary::after { content:"−"; background:var(--lime); }
.faq-list details p { max-width:720px; margin:0; padding:0 60px 28px 0; color:#555748; line-height:1.75; }
.faq-answer p:last-child { margin-bottom:0; }
.appointment-section { background:var(--sand); }
.appointment-intro { max-width:850px; margin-bottom:58px; }
.appointment-intro>p:not(.eyebrow) { max-width:640px; margin:28px 0 0; line-height:1.7; }
.appointment-form { max-width:1180px; padding:clamp(28px,5vw,62px); border-radius:30px; background:var(--cream); }
.appointment-form fieldset { margin:0; padding:0 0 48px; border:0; }
.appointment-form fieldset+fieldset { padding-top:45px; border-top:1px solid var(--sand); }
.appointment-form fieldset:last-child { padding-bottom:0; }
.appointment-form legend { width:100%; margin-bottom:30px; font-size:1.18rem; font-weight:800; }
.appointment-form legend span { display:inline-grid; place-items:center; width:34px; height:34px; margin-right:12px; border-radius:50%; background:var(--lime); }
.booking-fields { display:grid; gap:22px; }
.booking-fields.two-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
.personal-fields { grid-template-columns:repeat(6,minmax(0,1fr)); }
.personal-fields .field-heading { min-height:42px; display:flex; flex-direction:column; justify-content:flex-end; gap:3px; }
.personal-fields .field-heading small { font-weight:600; opacity:.7; }
.field-salutation,.field-postal { grid-column:span 2; }
.field-name,.field-street { grid-column:span 4; }
.field-email,.field-phone,.field-city,.field-license,.field-birthdate { grid-column:span 3; }
.appointment-form label { display:flex; flex-direction:column; gap:9px; font-size:.83rem; font-weight:800; }
.appointment-form input:not([type="checkbox"]),.appointment-form select { width:100%; height:54px; padding:0 16px; border:1px solid #aaa58f; border-radius:10px; background:#fffdf6; color:var(--ink); font:inherit; }
.time-selection { margin-top:30px; }.time-selection>span { display:flex; align-items:center; gap:12px; margin-bottom:14px; font-size:.83rem; font-weight:800; }.time-selection small { opacity:.55; font-weight:400; }
.time-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; }
.time-grid button { min-height:58px; padding:8px; border:1px solid #aaa58f; border-radius:10px; background:transparent; color:var(--ink); font-weight:800; cursor:pointer; }
.time-grid button small { display:block; margin-top:3px; }.time-grid button:hover:not(:disabled),.time-grid button.selected { border-color:var(--ink); background:var(--lime); }.time-grid button:disabled { opacity:.4; cursor:not-allowed; text-decoration:line-through; }
.privacy-check { margin:25px 0!important; flex-direction:row!important; align-items:flex-start; font-weight:400!important; line-height:1.5; }.privacy-check input { margin-top:3px; accent-color:var(--lime); }
.privacy-check a { text-decoration:underline; text-underline-offset:3px; }
.booking-submit:disabled { opacity:.38; cursor:not-allowed; }
.booking-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.custom-location-note { margin-top:30px; padding:28px; border-radius:16px; background:var(--yellow); }.custom-location-note p { max-width:650px; line-height:1.6; }.custom-location-note .button { margin-top:5px; }
.demo-message { margin:18px 0 0; padding:14px 16px; border-left:4px solid var(--lime); background:#e8ecd8; line-height:1.5; }
.booking-meta { max-width:1180px; display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }.booking-meta span { padding:10px 15px; border:1px solid #aaa58f; border-radius:100px; font-size:.75rem; font-weight:700; }
.direct-contact { max-width:1180px; display:grid; grid-template-columns:1fr 1fr; gap:clamp(35px,8vw,110px); margin-top:110px; padding-top:95px; border-top:1px solid #aaa58f; }
.contact-details>p:not(.eyebrow) { max-width:570px; margin:28px 0 35px; line-height:1.7; }
.contact-details dl { margin:0 0 35px; }.contact-details dl div { display:grid; grid-template-columns:90px 1fr; padding:13px 0; border-bottom:1px solid #aaa58f; }.contact-details dt { font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }.contact-details dd { margin:0; font-weight:700; }
.location-list { display:flex; flex-direction:column; gap:8px; line-height:1.45; }.location-list strong { margin-bottom:5px; }
.whatsapp-composer { align-self:start; padding:clamp(28px,4vw,48px); border-radius:24px; background:var(--yellow); }
.whatsapp-label { display:inline-block; margin-bottom:15px; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; }
.whatsapp-composer h3 { margin:0 0 30px; font-size:clamp(1.6rem,3vw,2.5rem); letter-spacing:-.04em; }
.whatsapp-composer label { display:block; margin-bottom:9px; font-size:.8rem; font-weight:800; }
.whatsapp-composer textarea { width:100%; resize:vertical; min-height:145px; padding:16px; border:1px solid #9e9674; border-radius:12px; background:var(--cream); color:var(--ink); font:inherit; line-height:1.55; }
.whatsapp-composer .button { margin:20px 0 12px; }.whatsapp-composer small { display:block; max-width:420px; line-height:1.5; opacity:.65; }
.button.dark { background:var(--ink); color:var(--cream); margin-bottom:10px; }
footer { min-height:300px; padding:65px 7vw 35px; display:grid; grid-template-columns:1.2fr 1fr .7fr 1fr; gap:40px; align-items:start; background:var(--ink); color:var(--cream); }
.footer-brand img { width:210px; } footer p { color:#aeb0a2; line-height:1.7; margin:0; } footer>div { display:flex; flex-direction:column; gap:12px; font-weight:700; } footer small { grid-column:1/-1; color:#777b6c; border-top:1px solid #3c3e34; padding-top:25px; }
.footer-about { gap:18px; }.footer-about>span { width:max-content; padding:8px 12px; border:1px solid #4b4e40; border-radius:99px; color:var(--lime); font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; }.footer-heading { margin-bottom:7px; color:var(--lime); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; }.footer-contact address { color:#aeb0a2; font-style:normal; font-weight:400; line-height:1.6; }
.legal-page { min-height:100vh; padding:125px 7vw 90px; background:var(--cream); color:var(--ink); }
.legal-nav { max-width:920px; margin:0 auto 70px; font-weight:800; }
.legal-nav a:hover,.legal-content a:hover { color:#718b00; }
.legal-content { max-width:920px; margin:0 auto; }
.legal-content>h1 { max-width:none; margin:18px 0 65px; }
.legal-content section { padding:30px 0; border-top:1px solid var(--sand); }
.legal-content h2 { margin:0 0 18px; font-size:clamp(1.35rem,2.5vw,2rem); letter-spacing:-.025em; }
.legal-content p { max-width:820px; margin:0 0 16px; line-height:1.75; }
.legal-content code { padding:2px 6px; border-radius:5px; background:var(--sand); font-size:.9em; }
.legal-content a { text-decoration:underline; text-underline-offset:3px; }
.legal-date { margin-top:40px!important; font-size:.82rem; opacity:.65; }

@media (max-width:850px) {
  section[id] { scroll-margin-top:66px; }
  .topbar { height:66px; }.brand img { width:145px; }
  .menu-toggle { position:relative; z-index:2; width:44px; height:44px; padding:0; display:grid; place-content:center; gap:7px; border:1px solid #656858; border-radius:50%; background:transparent; color:var(--cream); cursor:pointer; }
  .menu-toggle span { display:block; width:19px; height:2px; background:currentColor; transition:transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4.5px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4.5px) rotate(-45deg); }
  nav { position:fixed; top:66px; left:0; right:0; padding:26px 6vw 32px; display:flex; flex-direction:column; align-items:stretch; gap:0; background:var(--ink); border-top:1px solid #3b3e31; transform:translateY(-125%); visibility:hidden; opacity:0; transition:transform .25s,opacity .2s,visibility .25s; }
  nav.open { transform:translateY(0); visibility:visible; opacity:1; }
  nav a { display:block; padding:16px 0; border-bottom:1px solid #3b3e31; font-size:1.08rem; }
  nav .nav-cta { margin-top:18px; padding:14px 20px; border:1px solid var(--lime); text-align:center; }
  .hero { margin-top:66px; }.hero-image { min-height:58vw; }.hero-copy-wrap { padding:58px 6vw 65px; }.hero-copy { gap:25px; }.hero-copy .eyebrow { margin-bottom:0; }.hero-tag { --badge-size:clamp(82px,14vw,100px); right:6vw; top:58vw; }
  .section { padding:80px 6vw; }.section-label { margin-bottom:45px; }.intro-grid { grid-template-columns:1fr; gap:35px; }.portrait-card { width:min(100%,360px); justify-self:start; }
  .reviews-head { align-items:start; flex-direction:column; }.review-card { flex-basis:76vw; }.prices-grid,.faq-section { grid-template-columns:1fr; gap:50px; }.faq-intro { position:static; }.time-grid { grid-template-columns:repeat(3,1fr); }.direct-contact { grid-template-columns:1fr; }
  footer { grid-template-columns:1fr 1fr; } footer small { grid-column:1/-1; }
}
@media (max-width:520px) {
  h1 { font-size:clamp(2.75rem,14vw,3.45rem); } h2 { font-size:clamp(2.2rem,12vw,3.25rem); }.hero-image { min-height:340px; }.hero-tag { top:340px; }
  .section { padding-top:68px; padding-bottom:68px; }
  .reviews-section { padding:68px 0 58px 6vw; }.reviews-head { padding-right:6vw; margin-bottom:38px; }.review-card { flex-basis:87vw; min-height:280px; padding:26px; }.review-footer { align-items:flex-start; flex-direction:column; gap:24px; padding-right:6vw; }.review-links { flex-direction:column; gap:12px; }.elfsight-widget-shell { min-height:240px; margin-right:6vw; }
  .booking-fields.two-columns,.personal-fields { grid-template-columns:1fr; }.personal-fields>label { grid-column:1; }.personal-fields .field-heading { min-height:0; }.time-grid { grid-template-columns:repeat(2,1fr); }.appointment-form { border-radius:22px; }
  .price-row { grid-template-columns:1fr auto; }.price-row span { grid-column:1; }.price-row b { grid-column:2; grid-row:1/3; }
  .button { gap:22px; } footer { grid-template-columns:1fr; } footer small { grid-column:1; }
}
