:root {
  --font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wrap: 1180px;
  --line: rgba(26, 31, 39, .13);
  --muted: #536070;
  --paper: #fffdf8;
  --cream: #fbf7ef;
  --shadow-soft: 0 22px 70px rgba(20, 31, 48, .14);
  --shadow-card: 0 12px 36px rgba(20, 31, 48, .08);
  --stay-ink: #14243f;
  --stay-blue: #253d63;
  --stay-sage: #879a8b;
  --stay-clay: #a95e42;
  --stay-clay-decor: #d98563;
  --stay-mist: #eef5ff;
  --stay-wash: #f5f9f6;
  --owner-ink: #202321;
  --owner-red: #8f1729;
  --owner-accent-on-dark: #e6c17c;
  --owner-red-soft: #f8e8ea;
  --owner-stone: #776f66;
  --owner-warm: #f7f3ec;
  --owner-gold: #c69a55;
}
.brand-stay { --brand-ink: var(--stay-ink); --brand-accent: var(--stay-clay); --brand-soft: var(--stay-mist); --brand-bg: var(--cream); }
.brand-owner { --brand-ink: var(--owner-ink); --brand-accent: var(--owner-red); --brand-soft: var(--owner-red-soft); --brand-bg: var(--owner-warm); }
.owner .owner-process .kicker, .owner .section.dark .kicker, .owner .owner-contact .kicker { color: var(--owner-accent-on-dark); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 96px; }
body { margin: 0; font-family: var(--font); background: var(--brand-bg); color: #202a3a; line-height: 1.5; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.nav { position: sticky; top: 0; z-index: 50; background: rgba(251, 247, 239, .92); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(28, 34, 44, .08); }
.owner .nav { background: rgba(247, 243, 236, .93); }
.nav-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.brand { display: flex; align-items: center; text-decoration: none; }
.brand-logo { width: 206px; max-height: 54px; object-fit: contain; object-position: left center; border-radius: 6px; }
.owner .brand-logo { width: 172px; }
.nav-links { display: flex; align-items: center; gap: 20px; color: var(--muted); font-size: 14px; font-weight: 760; }
.nav-links a, .nav-cta, .btn { text-decoration: none; }
.nav-cta, .btn { display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; padding: 14px 18px; border: 1px solid var(--brand-ink); background: var(--brand-ink); color: #fff; font-weight: 880; line-height: 1.1; }
.nav-cta { border-radius: 999px; padding: 10px 15px; box-shadow: 0 10px 24px rgba(20, 36, 63, .14); }
.btn.secondary { background: rgba(255, 255, 255, .8); color: var(--brand-ink); border-color: rgba(28, 34, 44, .18); }
.btn.light { background: #fff; color: var(--brand-ink); border-color: #fff; }
.light-on-image { background: rgba(255,255,255,.92); color: var(--stay-ink); }
.kicker, .eyebrow { margin: 0 0 14px; color: var(--brand-accent); font-size: 12px; font-weight: 920; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3, p, li, a { overflow-wrap: break-word; }
h1 { margin: 0 0 22px; color: var(--brand-ink); font-size: clamp(46px, 7vw, 84px); line-height: .94; letter-spacing: 0; }
h2 { margin: 0; color: var(--brand-ink); font-size: clamp(34px, 5vw, 58px); line-height: 1; letter-spacing: 0; }
.lead { margin: 0 0 28px; max-width: 660px; color: #4e596a; font-size: 21px; }
.section { padding: 78px 0; }
.section-head { max-width: 860px; margin-bottom: 30px; }
.section-head.centered, .owner-centered { text-align: center; margin-left: auto; margin-right: auto; }
.section-head.centered .section-lead, .owner-centered .section-lead { margin-left: auto; margin-right: auto; }
.section-lead { margin: 18px 0 0; max-width: 700px; color: var(--muted); font-size: 18px; }
.cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.image-hero { position: relative; min-height: calc(100vh - 76px); overflow: hidden; display: flex; align-items: stretch; }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,253,248,.96) 0%, rgba(255,253,248,.88) 35%, rgba(255,253,248,.24) 63%, rgba(255,253,248,.06) 100%), linear-gradient(180deg, rgba(20,36,63,.06), rgba(20,36,63,.18)); }
.stay-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 680px) 330px; gap: 42px; align-items: end; padding-top: 86px; padding-bottom: 64px; }
.hero-copy-on-image { align-self: center; }
.stay-quick-card { align-self: end; background: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.9); box-shadow: var(--shadow-soft); border-radius: 18px; padding: 22px; }
.card-label { display: block; color: var(--stay-clay); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 10px; }
.stay-quick-card strong { display: block; color: var(--stay-ink); font-size: 22px; line-height: 1.15; }
.mini-facts { display: grid; gap: 8px; margin-top: 18px; }
.mini-facts span { border: 1px solid rgba(20,36,63,.12); background: #fff; border-radius: 999px; padding: 8px 10px; color: #4f5a68; font-size: 13px; font-weight: 760; }
.stay-intro { background: var(--paper); }
.stay-intro-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 44px; align-items: start; }
.usecase-board { display: grid; gap: 14px; }
.usecase-card { position: relative; overflow: hidden; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-card); padding: 22px; }
.usecase-card:before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--stay-clay-decor); }
.usecase-card.company:before { background: var(--stay-blue); }
.usecase-card.private:before { background: var(--stay-sage); }
.usecase-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: #fff4ed; color: var(--stay-clay); font-size: 26px; font-weight: 950; line-height: 1; }
.usecase-card.company .usecase-icon { background: #eef5ff; color: var(--stay-blue); }
.usecase-card.private .usecase-icon { background: #f1f7f2; color: var(--stay-sage); }
.usecase-card .persona-tag { display: inline-flex; align-items: center; min-height: 26px; margin: 0 0 10px; padding: 5px 10px 4px; border-radius: 999px; background: rgba(189, 97, 70, .12); color: var(--stay-clay); font-size: 12px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.usecase-card.company .persona-tag { background: rgba(24, 77, 119, .1); color: var(--stay-blue); }
.usecase-card.private .persona-tag { background: rgba(114, 143, 122, .14); color: var(--stay-sage); }
.usecase-card h3 { margin: 0 0 8px; color: var(--stay-ink); font-size: 24px; line-height: 1.08; }
.usecase-card p { margin: 0; color: var(--muted); }
.usecase-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 16px 0 0; }
.usecase-card dl div { border: 1px solid rgba(20,36,63,.1); border-radius: 14px; padding: 11px 12px; background: rgba(255,253,248,.72); }
.usecase-card dt { margin: 0 0 4px; color: var(--stay-ink); font-size: 12px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.usecase-card dd { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.3; }
.usecase-card a { display: inline-block; margin-top: 14px; color: var(--stay-ink); font-weight: 850; text-decoration: none; }
.stay-living { background: var(--stay-wash); border-block: 1px solid rgba(20,36,63,.08); }
.living-layout { display: grid; grid-template-columns: 1.05fr .95fr; gap: 42px; align-items: center; }
.living-photo-frame { border-radius: 22px; overflow: hidden; box-shadow: var(--shadow-soft); min-height: 460px; }
.living-photo-frame img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; }
.included-grid { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.included-grid article { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: var(--shadow-card); }
.included-grid b { display: block; color: var(--stay-ink); font-size: 18px; margin-bottom: 6px; }
.included-grid span { color: var(--muted); font-size: 15px; }
.stay-process { background: var(--paper); }
.stay-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.stay-timeline article { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: var(--shadow-card); }
.stay-timeline span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--stay-ink); color: #fff; font-weight: 950; margin-bottom: 16px; }
.stay-timeline h3 { margin: 0 0 8px; color: var(--stay-ink); font-size: 20px; }
.stay-timeline p { margin: 0; color: var(--muted); }
.stay-faq { background: #fff; }
.faq-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 44px; }
.faq-list { display: grid; gap: 12px; }
.faq-list details { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; }
.faq-list summary { cursor: pointer; color: var(--brand-ink); font-weight: 880; font-size: 18px; }
.faq-list p { margin: 10px 0 0; color: var(--muted); }
.stay-locations { background: #fff; border-block: 1px solid rgba(20,36,63,.08); }
.locations-head { display: grid; grid-template-columns: minmax(0, .95fr) minmax(320px, .78fr); gap: 34px; align-items: end; margin-bottom: 34px; }
.location-map-layout { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 22px; align-items: stretch; }
.stay-map { min-height: 500px; border-radius: 22px; overflow: hidden; box-shadow: var(--shadow-soft); border: 1px solid rgba(20,36,63,.1); background: linear-gradient(135deg, #eef5ff, #fff8ef); }
.compact-map { min-height: 620px; }
.map-surface { position: relative; height: 100%; min-height: inherit; background: radial-gradient(circle at 24% 22%, rgba(135,154,139,.26), transparent 24%), radial-gradient(circle at 76% 72%, rgba(217,133,99,.22), transparent 26%), linear-gradient(135deg, rgba(20,36,63,.08), rgba(255,255,255,.26)); }
.map-surface:before { content: ""; position: absolute; inset: 38px; border: 1px solid rgba(20,36,63,.12); border-radius: 28px; background: linear-gradient(135deg, rgba(255,255,255,.35), rgba(255,255,255,.08)); }
.map-line { position: absolute; height: 2px; background: rgba(37,61,99,.22); transform-origin: left center; }
.line-a { left: 18%; top: 48%; width: 66%; transform: rotate(-16deg); }
.line-b { left: 22%; top: 66%; width: 58%; transform: rotate(20deg); }
.map-pin { position: absolute; display: grid; gap: 2px; min-width: 150px; padding: 13px 14px 12px 42px; border-radius: 16px; background: rgba(255,255,255,.9); border: 1px solid rgba(20,36,63,.12); box-shadow: 0 12px 34px rgba(20,31,48,.12); color: var(--stay-ink); }
.map-pin:before { content: ""; position: absolute; left: 15px; top: 17px; width: 14px; height: 14px; border-radius: 999px; background: var(--stay-clay-decor); box-shadow: 0 0 0 6px rgba(217,133,99,.18); }
.map-pin b { font-size: 15px; line-height: 1.05; }
.map-pin small { color: var(--muted); font-size: 12px; line-height: 1.25; }
.pin-zurich-south { left: 28%; top: 58%; }
.pin-zurich-west { left: 18%; top: 36%; }
.pin-zurich-north { left: 43%; top: 28%; }
.pin-duebendorf { left: 58%; top: 43%; }
.pin-spreitenbach { left: 28%; top: 75%; }
.pin-bern { left: 61%; top: 72%; }
.location-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.location-list article { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: var(--shadow-card); }
.location-list span, .availability-grid span { display: inline-flex; width: fit-content; margin-bottom: 14px; border: 1px solid rgba(217,133,99,.22); color: #9d573d; background: #fff3eb; border-radius: 999px; padding: 6px 10px; font-size: 12px; font-weight: 850; }
.location-list h3, .availability-grid h3 { margin: 0 0 8px; color: var(--stay-ink); font-size: 21px; line-height: 1.1; }
.location-list p, .availability-grid p { margin: 0; color: var(--muted); }
.availability-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.availability-strip article { background: linear-gradient(135deg, var(--stay-ink), var(--stay-blue)); color: #fff; border-radius: 18px; padding: 22px; box-shadow: var(--shadow-card); }
.availability-strip b { display: block; font-size: 20px; line-height: 1.1; margin-bottom: 8px; }
.availability-strip span { color: rgba(255,255,255,.76); }
.availability-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.availability-grid article { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-card); }
.availability-grid img { width: 100%; height: 150px; object-fit: cover; }
.availability-grid article > span, .availability-grid h3, .availability-grid p, .availability-grid a { margin-left: 18px; margin-right: 18px; }
.availability-grid article > span { margin-top: 18px; }
.availability-grid a { display: inline-flex; margin-top: 14px; margin-bottom: 18px; color: var(--stay-ink); font-weight: 850; text-decoration: none; }
.campaign-hero { position: relative; min-height: calc(100vh - 76px); overflow: hidden; display: flex; align-items: stretch; }
.campaign-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.campaign-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,253,248,.97) 0%, rgba(255,253,248,.84) 42%, rgba(255,253,248,.18) 76%, rgba(255,253,248,.05) 100%); }
.company-campaign .campaign-scrim { background: linear-gradient(90deg, rgba(20,36,63,.94) 0%, rgba(20,36,63,.74) 44%, rgba(20,36,63,.16) 78%, rgba(20,36,63,.04) 100%); }
.campaign-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 720px) 330px; gap: 46px; align-items: center; padding-top: 82px; padding-bottom: 68px; }
.company-campaign .campaign-hero h1, .company-campaign .campaign-hero .lead { color: #fff; }
.company-campaign .campaign-hero .eyebrow { color: #e7bf87; }
.company-campaign .campaign-hero .btn { background: #fff; color: var(--stay-ink); border-color: #fff; }
.company-campaign .campaign-hero .btn.secondary { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.28); }
.campaign-proof { align-self: end; display: grid; gap: 10px; background: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.8); box-shadow: var(--shadow-soft); border-radius: 18px; padding: 22px; }
.campaign-proof strong { color: var(--stay-ink); font-size: 22px; line-height: 1.12; }
.campaign-proof span { color: var(--muted); }
.campaign-split { display: grid; grid-template-columns: .82fr 1.18fr; gap: 42px; align-items: start; }
.campaign-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.campaign-card-grid article { min-height: 260px; display: grid; align-content: start; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: var(--shadow-card); }
.campaign-card-grid span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--stay-ink); color: #fff; font-weight: 950; margin-bottom: 24px; }
.campaign-card-grid h3 { margin: 0 0 10px; color: var(--stay-ink); font-size: 24px; line-height: 1.08; }
.campaign-card-grid p { margin: 0; color: var(--muted); }
.campaign-steps { display: grid; grid-template-columns: .72fr 1.28fr; gap: 42px; align-items: start; }
.campaign-steps ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.campaign-steps li { display: grid; grid-template-columns: minmax(0, .45fr) minmax(0, 1fr); gap: 14px; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: var(--shadow-card); }
.campaign-steps b { color: var(--stay-ink); font-size: 18px; line-height: 1.12; }
.campaign-steps span { color: var(--muted); }
.owner-hero { min-height: calc(100vh - 76px); display: block; }
.owner-hero:after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(24,25,24,.91) 0%, rgba(24,25,24,.78) 38%, rgba(24,25,24,.18) 70%, rgba(24,25,24,.02) 100%); }
.owner-hero-panel { position: relative; z-index: 2; min-height: calc(100vh - 76px); display: grid; grid-template-columns: minmax(0, 650px) 340px; gap: 44px; align-items: center; padding-top: 78px; padding-bottom: 64px; }
.owner-hero-copy h1, .owner-hero-copy .lead { color: #fff; }
.owner-hero-copy .eyebrow { color: #e6c17c; }
.owner-hero-copy .lead { color: rgba(255,255,255,.78); }
.owner-hero-copy .btn { background: #fff; color: var(--owner-ink); border-color: #fff; }
.owner-hero-copy .btn.secondary { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.26); }
.owner-metric-card { background: rgba(255,255,255,.92); border: 1px solid rgba(255,255,255,.8); box-shadow: 0 24px 80px rgba(0,0,0,.28); border-radius: 18px; padding: 24px; }
.owner-metric-card span { color: #6f1422; font-size: 12px; font-weight: 920; letter-spacing: .08em; text-transform: uppercase; }
.owner-metric-card strong { display: block; margin-top: 10px; color: var(--owner-ink); font-size: 28px; line-height: 1.03; }
.owner-metric-card p { margin: 14px 0 0; color: var(--muted); }
.owner-risk { background: var(--owner-warm); }
.risk-grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
.risk-lead { max-width: 820px; }
.risk-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.risk-cards article { min-height: 270px; display: grid; grid-template-rows: auto minmax(58px, auto) 1fr; align-content: start; background: var(--owner-ink); color: #fff; border-radius: 18px; padding: 34px 30px 30px; box-shadow: var(--shadow-card); }
.risk-cards b { color: var(--owner-gold); font-size: 13px; letter-spacing: .08em; line-height: 1; }
.risk-cards h3 { margin: 22px 0 14px; font-size: 25px; line-height: 1.05; }
.risk-cards p { margin: 0; color: rgba(255,255,255,.73); align-self: start; }
.owner-targets { background: #fff; }
.owner-target-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.owner-target-grid article { border: 1px solid var(--line); border-radius: 18px; padding: 22px; min-height: 260px; background: linear-gradient(180deg, #fff, #fbf7f2); box-shadow: var(--shadow-card); }
.owner-target-grid span { display: inline-flex; margin-bottom: 42px; border: 1px solid rgba(143,23,41,.16); color: var(--owner-red); background: var(--owner-red-soft); border-radius: 999px; padding: 7px 10px; font-size: 12px; font-weight: 850; }
.owner-target-grid h3 { margin: 0 0 10px; color: var(--owner-ink); font-size: 22px; line-height: 1.08; }
.owner-target-grid p { margin: 0; color: var(--muted); }
.owner-process { background: #211f1d; color: #fff; }
.owner-process h2 { color: #fff; }
.owner-process .section-lead { color: rgba(255,255,255,.72); }
.process-board { display: grid; grid-template-columns: .82fr 1.18fr; gap: 42px; align-items: start; }
.process-steps { display: grid; gap: 10px; }
.process-steps article { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 14px; row-gap: 4px; align-items: start; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.07); border-radius: 16px; padding: 18px; }
.process-steps span { grid-row: 1 / span 2; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--owner-red); color: #fff; font-weight: 940; }
.process-steps h3 { grid-column: 2; margin: 0; color: #fff; font-size: 20px; line-height: 1.16; }
.process-steps p { grid-column: 2; margin: 0; color: rgba(255,255,255,.72); }
.owner-fit { background: var(--owner-warm); }
.fit-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 42px; align-items: center; }
.fit-image { border-radius: 22px; overflow: hidden; box-shadow: var(--shadow-soft); }
.fit-image img { width: 100%; min-height: 430px; object-fit: cover; object-position: center right; }
.fit-list { margin: 24px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.fit-list li { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 15px 16px 15px 42px; color: #4f575f; box-shadow: var(--shadow-card); }
.fit-list li:before { content: ""; position: absolute; left: 17px; top: 22px; width: 9px; height: 9px; border-radius: 999px; background: var(--owner-red); }
.section.dark { background: var(--brand-ink); color: #fff; }
.section.dark h2 { color: #fff; }
.section.dark .section-lead { color: rgba(255,255,255,.75); }
.reference-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.reference { min-height: 72px; display: grid; place-items: center; text-align: center; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; color: #fff; background: rgba(255,255,255,.08); padding: 12px; font-weight: 820; }
.owner .reference { background: rgba(143,23,41,.18); border-color: rgba(255,255,255,.2); }
.logo-grid { grid-template-columns: repeat(3, 1fr); gap: 14px; }
.logo-reference { min-height: 118px; padding: 20px 24px; background: #fff; border-color: rgba(255,255,255,.54); box-shadow: 0 14px 38px rgba(0,0,0,.18); }
.owner .logo-reference { background: #fff; border-color: rgba(255,255,255,.56); color: var(--owner-ink); }
.logo-reference img { max-width: 100%; max-height: 68px; object-fit: contain; filter: none; }
.gssa-reference { grid-template-columns: auto 1fr; justify-content: center; column-gap: 14px; }
.gssa-reference img { width: 34px; max-height: 86px; }
.gssa-reference strong { color: var(--owner-ink); font-size: 22px; line-height: 1; letter-spacing: 0; }
.wordmark-reference { gap: 4px; color: var(--owner-ink); }
.wordmark-reference strong { display: block; font-size: 26px; line-height: 1.05; letter-spacing: 0; }
.wordmark-reference span, .caption-logo-reference span { color: var(--owner-stone); font-size: 14px; font-weight: 780; }
.caption-logo-reference { gap: 10px; }
.caption-logo-reference img { max-height: 44px; }
.stay-reviews { background: linear-gradient(180deg, #fff 0%, #f5fbf8 100%); }
.review-head { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.review-head h2 { margin-bottom: 12px; }
.review-head p { color: var(--muted); font-size: 18px; margin: 0 auto; }
.review-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 24px; align-items: stretch; }
.review-score-card { background: #0f513f; color: #fff; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; padding: 30px; box-shadow: var(--shadow-card); }
.review-score-card .kicker { color: rgba(255,255,255,.68); }
.review-score-card h2 { color: #fff; margin-bottom: 14px; }
.review-score-card p { color: rgba(255,255,255,.76); margin-bottom: 0; }
.review-stars { color: #f6c84c; font-size: 34px; line-height: 1; letter-spacing: 1px; margin: 4px 0 18px; text-shadow: 0 2px 10px rgba(0,0,0,.16); }
.review-status { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font-size: 13px; font-weight: 900; margin: 6px 0 18px; border: 1px solid rgba(255,255,255,.22); }
.review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.review-grid article { display: flex; flex-direction: column; min-height: 306px; background: #fff; border: 1px solid rgba(15,81,63,.13); border-radius: 22px; padding: 24px; box-shadow: 0 18px 44px rgba(15, 81, 63, .10); }
.review-card-stars { color: #f2b928; font-size: 20px; letter-spacing: 1px; line-height: 1; margin: 18px 0 16px; }
.review-grid blockquote { margin: 0; color: var(--ink); font-size: 17px; line-height: 1.52; font-weight: 720; }
.review-person { display: grid; grid-template-columns: 46px 1fr; gap: 12px; align-items: center; margin-top: auto; padding-top: 20px; }
.review-person-top { margin-top: 0; padding-top: 0; }
.review-avatar { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, #0f513f, #1f7a5f); color: #fff; font-size: 14px; font-weight: 950; letter-spacing: -.4px; }
.review-person span:last-child { display: block; min-width: 0; }
.review-person strong { display: block; color: var(--ink); font-size: 17px; line-height: 1.1; }
.review-person small { display: block; color: var(--muted); font-size: 13px; font-weight: 780; margin-top: 4px; }
.contact-band { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; background: var(--brand-ink); color: #fff; border-radius: 18px; padding: 34px; box-shadow: var(--shadow-soft); }
.contact-band h2 { color: #fff; }
.contact-band p { max-width: 760px; color: rgba(255,255,255,.76); font-size: 18px; }
.stay-contact { background: linear-gradient(135deg, var(--stay-ink), var(--stay-blue)); }
.owner-contact { background: linear-gradient(135deg, var(--owner-ink), #3a1c20); }
.footer { padding: 34px 0 52px; color: var(--muted); font-size: 14px; }
.footer-inner { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.directory { min-height: 100vh; display: grid; place-items: center; padding: 48px 0; background: linear-gradient(135deg, #fbf7ef, #eef5ff); }
.directory-card { background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-soft); border-radius: 18px; padding: 34px; max-width: 940px; }
.directory h1 { color: var(--stay-ink); }
.directory p { color: var(--muted); font-size: 18px; }
.directory-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px; }
.directory-link { border: 1px solid var(--line); border-radius: 14px; padding: 20px; text-decoration: none; background: #fbf7ef; }
.directory-link img { width: 100%; height: 84px; object-fit: contain; object-position: left center; margin-bottom: 12px; }
.directory-link strong { display: block; font-size: 24px; letter-spacing: 0; }
.directory-link span { color: var(--muted); }
.page-hero { padding: 92px 0 72px; background: var(--brand-bg); border-bottom: 1px solid var(--line); }
.owner-page-hero { background: linear-gradient(135deg, #211f1d, #3a1c20); }
.owner-page-hero h1, .owner-page-hero .lead { color: #fff; }
.owner-page-hero .lead { color: rgba(255,255,255,.78); }
.stay-page-hero { background: linear-gradient(135deg, #fffdf8, #eef5ff); }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 42px; align-items: start; }
.narrow { max-width: 900px; }
.contact-card, .info-panel, .list-panel { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px; box-shadow: var(--shadow-card); }
.owner .contact-card, .owner .info-panel, .owner .list-panel { background: #fff; color: var(--owner-ink); }
.contact-card { display: grid; gap: 10px; }
.contact-card strong { color: var(--brand-ink); font-size: 20px; }
.contact-card a { color: var(--brand-ink); font-weight: 850; text-decoration: none; }
.contact-card span { color: var(--muted); }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 30px; align-items: start; }
.contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: var(--shadow-card); }
.contact-form label { display: grid; gap: 7px; color: var(--brand-ink); font-weight: 820; }
.contact-form label.full, .contact-form button, .form-note, .form-status { grid-column: 1 / -1; }
.contact-form input, .contact-form textarea, .contact-form select { width: 100%; border: 1px solid rgba(28,34,44,.18); border-radius: 10px; padding: 12px 13px; font: inherit; color: #202a3a; background: #fff; }
.contact-form textarea { resize: vertical; }
.info-panel h2 { font-size: 30px; line-height: 1.05; margin-bottom: 18px; }
.form-note { margin: 0 0 4px; color: var(--muted); font-size: 15px; }
.consent-row { display: flex !important; grid-template-columns: none !important; align-items: flex-start; gap: 10px !important; color: var(--muted) !important; font-weight: 650 !important; font-size: 14px; }
.consent-row input { width: auto; margin-top: 3px; }
.form-status { display: none; border-radius: 12px; padding: 12px 14px; font-weight: 760; }
.form-status.is-visible { display: block; }
.form-status.success { background: #eef8f1; color: #1f6336; border: 1px solid rgba(31,99,54,.22); }
.form-status.error { background: #fff2f0; color: #8a1f12; border: 1px solid rgba(138,31,18,.2); }
.mobile-sticky-cta { display: none; }
.trust-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.trust-grid article { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: var(--shadow-card); }
.trust-grid span { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--brand-ink); color: #fff; font-weight: 950; margin-bottom: 18px; }
.trust-grid h3 { margin: 0 0 10px; color: var(--brand-ink); font-size: 22px; line-height: 1.1; }
.trust-grid p { margin: 0; color: var(--muted); }
.assessment-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.assessment-grid article { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: var(--shadow-card); }
.assessment-grid b { display: block; color: var(--owner-red); margin-bottom: 8px; }
.assessment-grid span { color: var(--muted); font-size: 15px; }

.check-list, .list-panel ul, .list-panel ol, .service-grid ul { margin: 0; padding-left: 20px; color: var(--muted); }
.check-list li, .list-panel li, .service-grid li { margin: 8px 0; }
.service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.service-grid.three-up { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.service-grid article { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 26px; box-shadow: var(--shadow-card); min-height: 100%; }
.service-grid article > span { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--brand-ink); color: #fff; font-weight: 950; margin-bottom: 18px; }
.owner .service-grid article > span { background: var(--owner-red); }
.service-grid h2 { font-size: 30px; line-height: 1.08; margin-bottom: 12px; }
.service-grid p { color: var(--muted); margin: 0 0 16px; }
.content-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px; align-items: start; }
.legal-content { max-width: 820px; }
.legal-content h2 { font-size: 30px; margin: 28px 0 10px; }
.legal-content h2:first-child { margin-top: 0; }
.legal-content p { color: var(--muted); font-size: 18px; }
.legal-content a, .footer a { color: inherit; text-decoration: none; font-weight: 780; }
@media (max-width: 980px) {
  .stay-hero-grid, .owner-hero-panel, .stay-intro-grid, .living-layout, .faq-layout, .risk-grid, .process-board, .fit-layout, .contact-band, .page-hero-grid, .contact-layout, .content-split, .locations-head, .location-map-layout, .campaign-hero-inner, .campaign-split, .campaign-steps, .review-layout { grid-template-columns: 1fr; }
  .image-hero, .owner-hero, .owner-hero-panel { min-height: auto; }
  .stay-hero-grid, .owner-hero-panel { padding-top: 64px; }
  .stay-quick-card, .owner-metric-card { max-width: 560px; }
  .stay-timeline, .owner-target-grid { grid-template-columns: repeat(2, 1fr); }
  .risk-cards { grid-template-columns: 1fr; }
  .risk-cards article { min-height: 190px; grid-template-rows: auto auto 1fr; }
  .reference-grid { grid-template-columns: repeat(3, 1fr); }
  .stay-map, .compact-map { min-height: 430px; }
  .availability-grid, .campaign-card-grid, .review-grid, .trust-grid, .assessment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campaign-hero, .campaign-hero-inner { min-height: auto; }
  .logo-grid, .service-grid, .service-grid.three-up { grid-template-columns: repeat(2, 1fr); }
  .nav-links { display: none; }
}
@media (max-width: 640px) {
  .wrap { padding: 0 18px; }
  .nav-inner { min-height: 68px; }
  .brand-logo { width: 168px; }
  .owner .brand-logo { width: 148px; }
  .nav-cta { display: none; }
  body { padding-bottom: 72px; }
  .mobile-sticky-cta { position: fixed; left: 14px; right: 14px; bottom: 14px; z-index: 80; display: flex; justify-content: center; text-decoration: none; border-radius: 999px; padding: 15px 18px; background: var(--brand-ink); color: #fff; font-weight: 920; box-shadow: 0 18px 44px rgba(0,0,0,.22); }
  h1 { font-size: 43px; }
  h2 { font-size: 34px; }
  .lead { font-size: 18px; }
  .section { padding: 54px 0; }
  .stay-hero-grid, .owner-hero-panel, .campaign-hero-inner { padding-top: 46px; padding-bottom: 46px; }
  .hero-scrim { background: linear-gradient(180deg, rgba(255,253,248,.95), rgba(255,253,248,.72)); }
  .owner-hero:after { background: linear-gradient(180deg, rgba(24,25,24,.88), rgba(24,25,24,.54)); }
  .included-grid, .stay-timeline, .owner-target-grid, .directory-links, .reference-grid, .logo-grid, .service-grid, .service-grid.three-up, .contact-form, .location-list, .availability-strip, .availability-grid, .campaign-card-grid, .campaign-steps li, .review-grid, .trust-grid, .assessment-grid, .usecase-card, .usecase-card dl { grid-template-columns: 1fr; }
  .usecase-icon { width: 48px; height: 48px; }
  .logo-reference { min-height: 106px; padding: 18px 20px; }
  .logo-reference img { max-height: 64px; }
  .gssa-reference img { width: 30px; max-height: 78px; }
  .wordmark-reference strong, .gssa-reference strong { font-size: 22px; }
  .living-photo-frame, .living-photo-frame img, .fit-image img { min-height: 300px; }
  .stay-map, .compact-map { min-height: 560px; }
  .map-surface:before { inset: 18px; }
  .map-pin { min-width: 0; width: 178px; padding: 11px 12px 10px 36px; }
  .map-pin:before { left: 13px; top: 15px; width: 12px; height: 12px; }
  .pin-zurich-south { left: 8%; top: 50%; }
  .pin-zurich-west { left: 6%; top: 24%; }
  .pin-zurich-north { left: 36%; top: 14%; }
  .pin-duebendorf { left: 38%; top: 38%; }
  .pin-spreitenbach { left: 12%; top: 72%; }
  .pin-bern { left: 40%; top: 78%; }
  .persona-card { padding-left: 26px; }
  .process-steps article { grid-template-columns: 42px minmax(0, 1fr); column-gap: 12px; row-gap: 10px; padding: 16px; }
  .process-steps span { grid-row: 1; width: 38px; height: 38px; border-radius: 10px; }
  .process-steps h3 { grid-column: 2; align-self: center; font-size: 18px; }
  .process-steps p { grid-column: 1 / -1; font-size: 15px; line-height: 1.45; overflow-wrap: break-word; word-break: normal; hyphens: auto; }
  .page-hero { padding: 62px 0 48px; }
  .contact-form label.full, .contact-form button { grid-column: 1; }
  .service-grid h2, .info-panel h2 { font-size: 26px; }
  .contact-band { padding: 24px; }
}

.language-switch { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(28,34,44,.14); border-radius: 999px; padding: 5px; background: rgba(255,255,255,.72); }
.language-switch a { padding: 5px 8px; border-radius: 999px; text-decoration: none; color: var(--muted); font-size: 12px; font-weight: 900; }
.language-switch a.active { background: var(--brand-ink); color: #fff; }
.quick-fact-grid, .price-grid, .objection-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.quick-fact-grid article, .price-grid article, .objection-grid article { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: var(--shadow-card); }
.quick-fact-grid b, .price-grid b, .objection-grid b { display: block; color: var(--brand-ink); font-size: 19px; line-height: 1.15; margin-bottom: 8px; }
.quick-fact-grid span, .price-grid span, .objection-grid span { color: var(--muted); }
.price-grid strong { display: block; color: var(--brand-ink); font-size: 26px; line-height: 1.05; margin-bottom: 8px; }
.notice-box { background: linear-gradient(135deg, var(--brand-ink), #31435f); color: #fff; border-radius: 22px; padding: 28px; box-shadow: var(--shadow-soft); }
.notice-box h2, .notice-box p, .notice-box li { color: #fff; }
.notice-box p, .notice-box li { color: rgba(255,255,255,.82); }
.contact-page .mobile-sticky-cta { display: none !important; }
@media (max-width: 980px) { .quick-fact-grid, .price-grid, .objection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .language-switch { margin-left: auto; } .quick-fact-grid, .price-grid, .objection-grid { grid-template-columns: 1fr; } .contact-page { padding-bottom: 0; } }

@media (max-width: 640px) { .mobile-sticky-cta { display: none !important; } .home-page { padding-bottom: 0; } }
