/* ── APARTMENTS A7 – main.css ───────────────────────────────────── */
:root {
  --a7-or:        #D4581A;
  --a7-or-lt:     #E8794A;
  --a7-or-pale:   #FDF0E8;
  --a7-dk:        #2A2D30;
  --a7-dk2:       #1E2124;
  --a7-mid:       #5C6166;
  --a7-light:     #F5F5F5;
  --a7-text:      #1A1C1E;
  --a7-serif:     "Cormorant Garamond", Georgia, serif;
  --a7-sans:      "Montserrat", sans-serif;
  --a7-nav-h:     80px;
  --a7-tb-h:      40px;
  --a7-shadow:    0 4px 24px rgba(0,0,0,.08);
  --a7-shadow-lg: 0 12px 48px rgba(0,0,0,.14);
  --a7-trans:     .3s ease;
}
*,*::before,*::after { box-sizing: border-box; }
body { font-family: var(--a7-sans); font-weight: 300; color: var(--a7-text); -webkit-font-smoothing: antialiased; }
h1,h2,h3 { font-family: var(--a7-serif); font-weight: 300; line-height: 1.15; }
a { color: var(--a7-or); transition: color var(--a7-trans); }
a:hover { color: var(--a7-or-lt); }
img { max-width: 100%; height: auto; display: block; }

/* ── TOPBAR ─────────────────────────────────────────────────────── */
.a7-topbar { position: fixed; top: 0; left: 0; right: 0; height: var(--a7-tb-h); background: var(--a7-dk); z-index: 9990; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; transition: transform .35s ease; }
.a7-topbar.is-hidden { transform: translateY(-100%); }
.a7-topbar__left  { display: flex; align-items: center; gap: 20px; }
.a7-topbar__item  { display: flex; align-items: center; gap: 6px; font-size: 11px; color: rgba(255,255,255,.5); text-decoration: none; white-space: nowrap; transition: color var(--a7-trans); }
.a7-topbar__item:hover { color: var(--a7-or-lt); }
.a7-topbar__item svg { width: 12px; height: 12px; stroke: var(--a7-or); flex-shrink: 0; }
.a7-topbar__sep   { width: 1px; height: 12px; background: rgba(255,255,255,.12); }
.a7-topbar__right { display: flex; gap: 4px; }
.a7-topbar__lang  { font-size: 10px; font-weight: 600; letter-spacing: .12em; color: rgba(255,255,255,.35); text-decoration: none; padding: 3px 7px; border: 1px solid transparent; border-radius: 2px; transition: all var(--a7-trans); }
.a7-topbar__lang:hover, .a7-topbar__lang.is-active { color: var(--a7-or); border-color: rgba(212,88,26,.4); }

/* ── NAV ────────────────────────────────────────────────────────── */
.a7-nav { position: fixed; top: var(--a7-tb-h); left: 0; right: 0; height: var(--a7-nav-h); z-index: 9989; padding: 0 40px; display: flex; align-items: center; justify-content: space-between; gap: 32px; background: #fff; border-bottom: 1px solid rgba(212,88,26,.12); transition: top .4s, height .4s, background .4s, box-shadow .4s; }
.a7-nav.is-scrolled { top: 0; height: 68px; background: rgba(255,255,255,.62); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: var(--a7-shadow); }
.a7-nav__logo { display: block; flex-shrink: 0; line-height: 0; }
.a7-nav__logo img { height: 52px; width: auto; max-width: 200px; object-fit: contain; filter: drop-shadow(0 1px 3px rgba(212,88,26,.12)); transition: height .35s; }
.a7-nav.is-scrolled .a7-nav__logo img { height: 38px; }

/* WP Nav Menu & Elementor Nav Menu Widget */
.a7-menu, .a7-nav .elementor-nav-menu { display: flex; align-items: center; gap: 22px; list-style: none; padding: 0; margin: 0; flex: 1; justify-content: flex-end; }
.a7-menu li, .a7-nav .elementor-nav-menu li { list-style: none; }
.a7-menu a, .a7-nav .elementor-nav-menu a { font-size: 11px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; color: var(--a7-text); text-decoration: none; padding-bottom: 3px; position: relative; transition: color var(--a7-trans); white-space: nowrap; }
.a7-menu a::after, .a7-nav .elementor-nav-menu a::after { content: ""; position: absolute; bottom: 0; left: 0; width: 0; height: 1.5px; background: var(--a7-or); transition: width .3s; }
.a7-menu a:hover, .a7-menu .current-menu-item > a,
.a7-nav .elementor-nav-menu a:hover, .a7-nav .elementor-nav-menu .current-menu-item > a { color: var(--a7-or); }
.a7-menu a:hover::after, .a7-menu .current-menu-item > a::after,
.a7-nav .elementor-nav-menu a:hover::after, .a7-nav .elementor-nav-menu .current-menu-item > a::after { width: 100%; }

/* Jetzt Buchen Button */
.a7-nav-book, .a7-nav .elementor-button { background: var(--a7-or) !important; color: #fff !important; padding: 12px 24px !important; font-size: 10px !important; font-weight: 600 !important; letter-spacing: .14em !important; text-transform: uppercase !important; border: none !important; border-radius: 0 !important; white-space: nowrap; flex-shrink: 0; text-decoration: none !important; transition: background var(--a7-trans) !important; }
.a7-nav-book:hover, .a7-nav .elementor-button:hover { background: var(--a7-or-lt) !important; color: #fff !important; }

/* ── ELEMENTOR ──────────────────────────────────────────────────── */
.elementor-widget-button .elementor-button { border-radius: 0; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.elementor-widget-heading .elementor-heading-title { font-family: var(--a7-serif); font-weight: 300; }
.elementor-template-canvas { padding-top: 0 !important; }
body:not(.elementor-template-canvas) .site-main,
body:not(.elementor-template-canvas) #content { padding-top: calc(var(--a7-tb-h) + var(--a7-nav-h)); }

/* ── CONTACT FORM 7 ─────────────────────────────────────────────── */
.wpcf7-form input[type="text"],.wpcf7-form input[type="email"],.wpcf7-form input[type="tel"],.wpcf7-form textarea,.wpcf7-form select { width: 100%; padding: 12px 16px; border: 1px solid rgba(212,88,26,.2); border-radius: 0; font-family: var(--a7-sans); font-size: 13px; font-weight: 300; color: var(--a7-text); background: var(--a7-light); transition: border-color var(--a7-trans), background var(--a7-trans); outline: none; }
.wpcf7-form input:focus,.wpcf7-form textarea:focus { border-color: var(--a7-or); background: #fff; box-shadow: 0 0 0 3px rgba(212,88,26,.08); }
.wpcf7-form textarea { min-height: 120px; resize: vertical; }
.wpcf7-form input[type="submit"] { background: var(--a7-or); color: #fff; border: none; padding: 14px 32px; font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; font-family: var(--a7-sans); border-radius: 0; transition: background var(--a7-trans); }
.wpcf7-form input[type="submit"]:hover { background: var(--a7-or-lt); }
.wpcf7-not-valid-tip { color: #dc2626; font-size: 11px; margin-top: 4px; }
.wpcf7-mail-sent-ok { border: 1px solid var(--a7-or); background: var(--a7-or-pale); padding: 12px 16px; font-size: 13px; }

/* ── QUICKBOOKER ────────────────────────────────────────────────── */
.a7-qb { background: #fff; padding: 28px 32px; box-shadow: var(--a7-shadow-lg); border-top: 3px solid var(--a7-or); }
.a7-qb-form { display: flex; flex-direction: column; gap: 16px; }
.a7-qb-fields { display: flex; gap: 16px; flex-wrap: wrap; }
.a7-qb-field { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 140px; }
.a7-qb-field label { font-size: 9px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--a7-or); }
.a7-qb-field input,.a7-qb-field select { padding: 10px 14px; border: 1px solid rgba(212,88,26,.2); border-radius: 0; font-family: var(--a7-sans); font-size: 13px; background: var(--a7-light); outline: none; }
.a7-qb-field input:focus,.a7-qb-field select:focus { border-color: var(--a7-or); background: #fff; }
.a7-qb-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.a7-qb-footer span { font-size: 11px; color: var(--a7-mid); }
.a7-qb-footer button { background: var(--a7-or); color: #fff; border: none; padding: 13px 28px; font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; font-family: var(--a7-sans); transition: background var(--a7-trans); }
.a7-qb-footer button:hover { background: var(--a7-or-lt); }

/* ── VIATO CBE ──────────────────────────────────────────────────── */
#viatoCbe { width: 100%; min-height: 400px; }

/* ── SCROLL TO TOP ──────────────────────────────────────────────── */
.a7-scroll-top { position: fixed; bottom: 32px; right: 32px; width: 44px; height: 44px; background: var(--a7-or); color: #fff; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 999; opacity: 0; transform: translateY(12px); transition: opacity .3s, transform .3s, background var(--a7-trans); pointer-events: none; }
.a7-scroll-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.a7-scroll-top:hover { background: var(--a7-or-lt); }

/* ── NATIVE FOOTER ──────────────────────────────────────────────── */
.a7-native-footer { background: var(--a7-dk2); padding: 16px 40px; text-align: center; }
.a7-native-footer p,.a7-native-footer a { font-size: 11px; color: rgba(255,255,255,.3); text-decoration: none; }
.a7-native-footer a:hover { color: var(--a7-or-lt); }

/* ── RESPONSIVE ─────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .a7-topbar { padding: 0 24px; }
  .a7-topbar__item:not(:first-child) { display: none; }
  .a7-topbar__sep { display: none; }
  .a7-nav { padding: 0 24px; }
}
@media (max-width: 768px) {
  :root { --a7-tb-h: 0px; --a7-nav-h: 64px; }
  .a7-topbar { display: none; }
  .a7-nav { top: 0; padding: 0 20px; }
  .a7-nav__logo img { height: 40px; }
  .a7-menu,.a7-nav .elementor-nav-menu { display: none; }
  .a7-nav-book { padding: 10px 16px !important; font-size: 9px !important; }
}
@media (max-width: 480px) {
  .a7-nav__logo img { height: 34px; max-width: 140px; }
  .a7-nav { padding: 0 16px; }
}
