:root {

  --ink:#18231f;

  --deep:#10241e;

  --forest:#294c3d;

  --sand:#f4ebdd;

  --paper:#fffdf8;

  --lava:#e26642;

  --sun:#d7a64a;

  --muted:#69736d;

  --line:rgba(24,35,31,.14);

  --display:"Fraunces",Georgia,serif;

  --sans:"DM Sans",Arial,sans-serif;

}



* { box-sizing:border-box; }

html { scroll-behavior:smooth; }

body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.6 var(--sans); }

a { color:inherit; text-decoration:none; }

button { font:inherit; }

:focus-visible { outline:3px solid var(--sun); outline-offset:4px; }

.skip-link { position:fixed; z-index:50; top:8px; left:8px; padding:10px 16px; color:var(--ink); background:white; transform:translateY(-150%); }

.skip-link:focus { transform:none; }



.subpage-hero { position:relative; overflow:hidden; color:white; background:var(--deep); }

.subpage-hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(110deg,rgba(7,18,15,.98),rgba(7,18,15,.82) 58%,rgba(7,18,15,.5)),url("/public/footer-sunset.jpeg"); background-image:linear-gradient(110deg,rgba(7,18,15,.98),rgba(7,18,15,.82) 58%,rgba(7,18,15,.5)),image-set(url("/public/footer-sunset-v2-1269.avif") type("image/avif"),url("/public/footer-sunset-v2-1269.webp") type("image/webp"),url("/public/footer-sunset.jpeg") type("image/jpeg")); background-position:center; background-size:cover; background-repeat:no-repeat; }

.subpage-hero::after { content:""; position:absolute; right:-11vw; bottom:-22vw; width:44vw; aspect-ratio:1; border:1px solid rgba(255,255,255,.12); border-radius:50%; box-shadow:0 0 0 8vw rgba(255,255,255,.025),0 0 0 16vw rgba(255,255,255,.018); }

.subpage-nav,.subpage-head { position:relative; z-index:1; width:min(1180px,90vw); margin:auto; }

.subpage-nav { min-height:152px; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding-top:18px; }

.subpage-nav-links { display:flex; align-items:center; justify-content:flex-end; gap:clamp(10px,1.8vw,24px); flex-wrap:wrap; padding-top:12px; }

.subpage-nav-links > a { color:white; font-size:13px; font-weight:700; }

.subpage-nav-links > a:hover,.subpage-nav-links > a:focus-visible { color:var(--sun); }

.subpage-logo picture,.subpage-footer picture { display:block; }
.subpage-logo img { width:240px; height:auto; display:block; filter:drop-shadow(0 12px 24px rgba(0,0,0,.24)); }

.back-link { min-height:44px; display:inline-flex; align-items:center; gap:10px; margin-top:18px; padding:10px 16px; border:1px solid rgba(255,255,255,.3); border-radius:999px; font-size:14px; font-weight:700; transition:background .2s,color .2s,border-color .2s; }

.back-link:hover { color:var(--ink); border-color:var(--sun); background:var(--sun); }

.subpage-head { max-width:900px; margin-left:max(5vw,calc((100vw - 1180px)/2)); margin-right:5vw; padding:38px 0 92px; }

.eyebrow { display:block; margin-bottom:18px; color:var(--sun); font-size:12px; font-weight:700; letter-spacing:2.2px; text-transform:uppercase; }

h1,h2,h3 { margin:0; font-family:var(--display); font-weight:500; line-height:1.05; }

h1 { max-width:850px; font-size:clamp(52px,8vw,94px); letter-spacing:-3px; }

.subpage-head p { max-width:720px; margin:24px 0 0; color:rgba(255,255,255,.7); font-size:clamp(17px,2vw,21px); }



.page-main { width:min(1180px,90vw); margin:auto; padding:90px 0 120px; }

.section-intro { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw; align-items:end; margin-bottom:54px; }

.section-intro h2 { font-size:clamp(38px,5vw,62px); letter-spacing:-1.5px; }

.section-intro p { margin:0; color:var(--muted); font-size:18px; }



.legal-list { max-width:940px; margin:auto; border-top:1px solid var(--line); }

.legal-card { border-bottom:1px solid var(--line); }

.legal-card summary { min-height:82px; display:grid; grid-template-columns:56px 1fr 42px; align-items:center; gap:16px; padding:16px 0; list-style:none; cursor:pointer; }

.legal-card summary::-webkit-details-marker,.offer-details summary::-webkit-details-marker { display:none; }

.legal-number { color:var(--lava); font-size:12px; font-weight:700; letter-spacing:1.5px; }

.legal-card h3 { font-family:var(--sans); font-size:clamp(18px,2vw,23px); font-weight:600; }

.legal-toggle { width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--lava); font-size:22px; transition:transform .2s,background .2s,color .2s; }

.legal-card[open] .legal-toggle { color:white; background:var(--ink); transform:rotate(45deg); }

.legal-content { margin:0 58px 30px 72px; padding:24px 28px; border-left:3px solid var(--sun); color:var(--muted); background:var(--sand); }

.legal-content p { margin:0; }

.legal-note { max-width:940px; margin:48px auto 0; padding:22px 26px; border:1px solid var(--line); border-radius:16px; color:var(--muted); background:white; font-size:14px; }



.offers-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }

.price-card { position:relative; display:flex; flex-direction:column; min-height:460px; overflow:hidden; padding:34px; border:1px solid var(--line); border-radius:24px; background:white; box-shadow:0 18px 46px rgba(19,42,36,.08); transition:transform .25s,box-shadow .25s,border-color .25s; }

.price-card:hover { transform:translateY(-5px); border-color:rgba(41,76,61,.34); box-shadow:0 26px 64px rgba(19,42,36,.13); }

.price-card::after { content:""; position:absolute; top:-72px; right:-72px; width:160px; height:160px; border-radius:50%; background:var(--sand); }

.price-card.guide-card { color:white; border-color:transparent; background:var(--deep); }

.price-card.guide-card::after { background:rgba(255,255,255,.06); }

.card-topline { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:18px; }

.offer-icon { width:50px; height:50px; display:grid; place-items:center; border-radius:15px; color:var(--forest); background:var(--sand); font-size:24px; }

.guide-card .offer-icon { color:var(--deep); background:var(--sun); }

.price { font-family:var(--display); font-size:clamp(30px,4vw,44px); line-height:1; }

.price small { display:block; margin-top:6px; color:var(--muted); font:600 11px/1.2 var(--sans); letter-spacing:1px; text-align:right; text-transform:uppercase; }

.guide-card .price small { color:rgba(255,255,255,.55); }

.price-card h2 { position:relative; z-index:1; margin-top:40px; font-size:clamp(30px,4vw,44px); }

.price-card > p { position:relative; z-index:1; margin:17px 0 28px; color:var(--muted); }

.guide-card > p { color:rgba(255,255,255,.65); }

.card-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; }

.reserve-button,.learn-link { min-height:48px; display:inline-flex; align-items:center; justify-content:center; padding:12px 18px; border-radius:999px; font-size:14px; font-weight:700; cursor:pointer; }

.reserve-button { color:white; background:var(--lava); }

.reserve-button:hover { background:#c94f31; }

.learn-link { border:1px solid var(--line); background:transparent; }

.guide-card .learn-link { border-color:rgba(255,255,255,.28); }

.offer-details { position:relative; z-index:1; margin-top:22px; border-top:1px solid var(--line); }

.guide-card .offer-details { border-color:rgba(255,255,255,.16); }

.offer-details summary { display:flex; justify-content:space-between; align-items:center; min-height:48px; list-style:none; color:var(--forest); font-size:14px; font-weight:700; cursor:pointer; }

.guide-card .offer-details summary { color:var(--sun); }

.offer-details summary span:last-child { font-size:20px; transition:transform .2s; }

.offer-details[open] summary span:last-child { transform:rotate(45deg); }

.offer-details ul { margin:4px 0 0; padding:0 0 0 20px; color:var(--muted); }

.offer-details li { margin:7px 0; }

.guide-card .offer-details ul,.guide-card .offer-details p { color:rgba(255,255,255,.66); }

.offer-details strong { color:inherit; }

.multi-day-note { margin:18px 0 0; padding:16px 18px; border-left:3px solid var(--sun); background:rgba(215,166,74,.1); font-size:14px; }

.extras { display:grid; grid-template-columns:.8fr 1.2fr; gap:24px; margin-top:24px; }

.referral-card,.advice-card { padding:34px; border-radius:24px; }

.referral-card { border:1px solid var(--line); background:var(--sand); }

.advice-card { color:white; background:linear-gradient(135deg,var(--forest),var(--deep)); }

.extras h2 { margin:14px 0 12px; font-size:clamp(28px,4vw,40px); }

.extras p { margin:0; color:var(--muted); }

.advice-card p { color:rgba(255,255,255,.68); }

.advice-card .reserve-button { margin-top:24px; background:var(--sun); color:var(--ink); }



.subpage-footer { display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:center; padding:52px 5vw; color:white; background:#0c1915; }

.subpage-footer img { width:190px; display:block; }

.subpage-footer p { margin:0; color:rgba(255,255,255,.56); }

.subpage-footer nav { display:flex; gap:16px; flex-wrap:wrap; justify-content:flex-end; font-size:13px; }

.subpage-footer a:hover { color:var(--sun); }



@media (max-width:820px) {

  .subpage-nav { min-height:118px; }

  .subpage-nav-links { max-width:72%; gap:10px 16px; }

  .subpage-logo img { width:180px; }

  .back-link { margin-top:8px; font-size:13px; }

  .subpage-head { padding:36px 0 70px; }

  h1 { letter-spacing:-2px; }

  .page-main { padding:70px 0 90px; }

  .section-intro,.offers-grid,.extras { grid-template-columns:1fr; gap:22px; }

  .section-intro { margin-bottom:38px; }

  .price-card { min-height:0; }

  .subpage-footer { grid-template-columns:1fr; gap:24px; }

  .subpage-footer nav { justify-content:flex-start; }

}



@media (max-width:540px) {

  .subpage-nav { align-items:flex-start; }

  .subpage-nav-links { max-width:none; justify-content:flex-start; }

  .subpage-logo img { width:142px; }

  .back-link { width:44px; padding:0; justify-content:center; border-radius:50%; font-size:0; }

  .back-link span { font-size:20px; }

  .subpage-head { margin-left:5vw; padding-top:18px; }

  h1 { font-size:47px; }

  .legal-card summary { grid-template-columns:38px 1fr 38px; }

  .legal-content { margin:0 0 24px 38px; padding:20px; }

  .price-card,.referral-card,.advice-card { padding:26px 22px; border-radius:18px; }

  .card-actions { align-items:stretch; flex-direction:column; }

  .reserve-button,.learn-link { width:100%; }

}



@media (prefers-reduced-motion:reduce) {

  * { scroll-behavior:auto!important; transition:none!important; }

}



.subpage-footer > .site-copyright { grid-column:1 / -1; font-size:12px; line-height:1.6; color:rgba(255,255,255,.65); overflow-wrap:anywhere; }

.legal-content section[lang="de"] { margin-top:24px; }

.legal-content section[lang="de"] p + p { margin-top:16px; }



.price-on-request { font-size:clamp(22px,2.3vw,28px); line-height:1.2; text-align:right; }


/* TecTec concierge offers: retain the existing palette, type and cards. */
.concierge-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
.concierge-card { padding:28px; min-height:720px; }
.concierge-card .eyebrow { color:var(--forest); letter-spacing:1px; margin-bottom:12px; }
.concierge-card.guide-card .eyebrow { color:var(--sun); }
.concierge-card h2 { margin-top:12px; font-size:clamp(30px,3vw,42px); }
.concierge-card > p { min-height:104px; }
.offer-benefits { position:relative; z-index:1; padding-left:20px; margin:0 0 8px; }
.offer-benefits li { margin:9px 0; }
.offer-price { position:relative; z-index:1; font-family:var(--display); font-size:24px; margin:24px 0 16px; }
.concierge-card .card-actions { margin-top:auto; }
.common-panel { margin:48px 0 24px; padding:34px; border:1px solid var(--line); background:var(--sand); border-radius:24px; }
.common-panel h2,.offer-notes h2,.additional-services > h2 { font-size:clamp(28px,3vw,40px); }
.common-panel ul { padding-left:22px; max-width:940px; }
.common-panel li { margin:12px 0; }
.offer-notes { display:grid; gap:20px; }
.offer-notes p { color:var(--muted); }
.additional-services { margin-top:60px; }
.additional-services > h2 { margin-bottom:24px; }
.additional-services .price-card { min-height:0; padding:28px; }
.additional-services .price-card h2 { margin-top:0; font-size:30px; }
.offer-languages { display:flex; gap:6px; padding-top:24px; }
.offer-languages button { min-height:44px; min-width:44px; color:white; border:1px solid rgba(255,255,255,.35); background:transparent; border-radius:12px; cursor:pointer; }
.offer-languages button[aria-pressed="true"] { background:var(--sun); color:var(--deep); }
.subpage-nav { flex-wrap:wrap; }
@media(max-width:1000px) { .concierge-card { padding:24px; } .concierge-card .reserve-button { font-size:13px; padding:12px; } }
@media(max-width:820px) { .concierge-grid { grid-template-columns:1fr; } .concierge-card { min-height:0; } .concierge-card > p { min-height:0; } .common-panel { padding:26px; } }
@media(max-width:540px) { .offer-languages { padding-top:8px; } .subpage-nav { gap:12px; } .subpage-logo img { width:130px; } .common-panel { padding:22px; } }

/* Keep long translated words inside narrow mobile note panels. */
.offer-notes > article { min-width:0; overflow-wrap:anywhere; }

/* Complementary services within the existing three-offer page */
.personal-options .price-card { min-width:0; }
.personal-options .price-card p { line-height:1.7; }
#bareme-annulation { padding:16px; border-left:3px solid #b48b48; background:#fff8e9; }

/* Consistent site language flags: German, English, French. */
.site-language-switcher { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.site-language-switcher button, .offer-languages.site-language-switcher button { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:3px; border:0; border-radius:0; background:transparent; color:inherit; cursor:pointer; opacity:.65; }
.site-language-switcher img { display:block; width:38px; height:25px; object-fit:cover; }
.site-language-switcher button:hover, .site-language-switcher button[aria-pressed="true"], .offer-languages.site-language-switcher button[aria-pressed="true"] { opacity:1; background:transparent; }
.site-language-switcher button:focus-visible { outline:2px solid #d7a64a; outline-offset:2px; }
.site-language-note { margin:0; padding:12px 5vw; font-size:14px; color:#173d35; background:#f4ebdd; }
.site-language-note[hidden] { display:none; }
.subpage-nav, .masthead { flex-wrap:wrap; }
.site-language-switcher { margin-left:auto; }
@media(max-width:540px) { .site-language-switcher { gap:2px; } .offer-languages.site-language-switcher { padding-top:0; } }

/* Keep the legal-page back link readable inside the mobile navigation. */
@media(max-width:540px) { .subpage-nav-links > .back-link { width:auto; min-width:44px; padding:8px 12px; border-radius:999px; white-space:nowrap; } }

/* Let the remaining referral card fill the space after deduplication. */
.extras > :only-child { grid-column:1 / -1; }

/* Beta: preserve image proportions and allow translated text to wrap. */
img[data-brand-logo],.subpage-footer img,.footer-brand img{height:auto;object-fit:contain} .beta-secondary{grid-template-columns:repeat(2,minmax(0,1fr));margin-block:36px}.price-card{min-width:0}.offer-benefits li{overflow-wrap:anywhere}.offer-price{line-height:1.3}.site-language-switcher img{width:25px;height:auto}.request-preview{white-space:pre-wrap;overflow-wrap:anywhere}.check{align-items:start} @media(max-width:700px){.beta-secondary{grid-template-columns:1fr}.subpage-nav{flex-wrap:wrap;gap:12px}.masthead{flex-wrap:wrap;gap:12px}.actions{flex-wrap:wrap}}

.concierge-card{min-height:0}.concierge-card .offer-details{margin-bottom:24px}.offer-price{font-size:32px}.beta-secondary .concierge-card > p{min-height:0}


.privacy-commitment{margin-bottom:24px}.privacy-commitment p{margin:14px 0}.privacy-commitment h4{margin-bottom:18px}

