/* ============================================================
   ADMIN.CSS — Frontend + Block Editor Vorschau
   ============================================================ */

/* ============================================================
   0. FONTS (MONTSERRAT)
   ============================================================ */
@font-face {
    font-family: 'Montserrat';
    src: url('./fonts/Montserrat-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Montserrat';
    src: url('./fonts/Montserrat-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ============================================================
   1. CUSTOM PROPERTIES (TOKENS)
   ============================================================ */

:root {
    /* Farben */
    --color-primary: #233342;
    --color-accent:  #a69887;
    --color-surface: #f5f1ec;
    --color-text:    #333333;
    --color-muted:   #666666;
    --color-white:   #ffffff;

    /* Typografie */
    --font-heading:  "Montserrat", sans-serif;
    --font-body:     "Montserrat", sans-serif;

    /* Spacing */
    --space-xs:  0.5rem;
    --space-sm:  1rem;
    --space-md:  2rem;
    --space-lg:  3.5rem;
    --space-xl:  6rem;
    --space-2xl: 10rem;

    /* Layout */
    --content-width: 740px;
    --wide-width:    1200px;
}


/* ============================================================
   2. RESET
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
img, video              { max-width: 100%; height: auto; display: block; }
a                       { color: inherit; text-decoration: none; }


/* ============================================================
   3. BASE
   ============================================================ */

body {
    font-family: var(--font-body);
    font-size:   1rem;
    line-height: 1.65;
    color:       var(--color-text);
    background:  var(--color-white);
}

h1, h2, h3, h4 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: var(--space-sm);
    color: var(--color-primary);
}

p {
    margin-bottom: var(--space-sm);
}

.subheading {
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #8c7562;
    margin-bottom: var(--space-xs);
}

.text-center { text-align: center; }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }

.bg-surface { background-color: var(--color-surface); }
.bg-accent { background-color: var(--color-accent); color: var(--color-white); }
.bg-primary { background-color: var(--color-primary); color: var(--color-white); }

/* ============================================================
   4. LAYOUT
   ============================================================ */

.container {
    width:     100%;
    max-width: var(--wide-width);
    margin:    0 auto;
    padding:   0 var(--space-md);
}

.container--narrow {
    max-width: var(--content-width);
    text-align: left;
}

.container--narrow-left {
    max-width: var(--content-width);
    margin-left: 1rem;
}

.section-padding {
    padding: var(--space-xl) 0;
}
.section {
    padding: var(--space-xl) 0;
}

/* Columns */
.columns {
    display:   flex;
    gap:       var(--space-md);
    flex-wrap: wrap;
}

.columns.align-center {
    align-items: center;
}

.columns > *        { flex: 1 1 280px; }
.columns--2 > * {
    flex: 0 1 calc((100% - var(--space-md)) / 2);
}

.columns--3 > * {
    flex: 0 1 calc((100% - 2 * var(--space-md)) / 3);
}

.section-editor--content {
    display: grid;
    /* Erzeugt 3 Spalten: Links/Rechts flexibel (Padding), Mitte fixiert auf max. 1200px */
    grid-template-columns:
        [full-start] minmax(var(--space-md, 20px), 1fr)
        [content-start] min(100% - calc(2 * var(--space-md, 20px)), 1200px) [content-end]
        minmax(var(--space-md, 20px), 1fr) [full-end];
}

/* 1. Standardverhalten: JEDER Block landet automatisch in der mittleren Spalte */
.section-editor--content > * {
    grid-column: content;
}

/* 2. Wenn ein Block im Editor auf "Volle Breite" gestellt wird */
.section-editor--content > .alignfull {
    grid-column: full;
    width: 100%;
}

/* 3. Optional: Wenn ein Block auf "Weite Breite" gestellt wird (z.B. 1400px) */
.section-editor--content > .alignwide {
    grid-column: full-start / full-end;
    max-width: 1400px;
    justify-self: center;
    width: 100%;
}


/* ============================================================
   5. COMPONENTS
   ============================================================ */

/* Buttons */
.btn, #gform_submit_button_2 {
    display: inline-block;
    padding: 12px 24px;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.875rem;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
    text-align: center;
    text-decoration: none !important;
}
.btn--primary, #gform_submit_button_2 {
    background-color: var(--color-accent);
    color: var(--color-white);
    text-decoration: none !important;
}
.btn--primary:hover, #gform_submit_button_2:hover {
    background-color: #8c7562;
}
.btn--outline {
    background-color: transparent;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    text-decoration: none !important;
}
.btn--outline:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
}

/* Top Bar */
.top-bar {
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 0.75rem;
    padding: 8px 0;
}
.top-bar__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.top-bar__lang a {
    margin: 0 4px;
    opacity: 0.7;
}
.top-bar__lang a.active, .top-bar__lang a:hover {
    opacity: 1;
    font-weight: 700;
}

/* Header */
.site-header {
    position:   sticky;
    top:        0;
    z-index:    100;
    background: var(--color-white);
    width:      100%;
    padding: var(--space-sm) 0;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.site-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.site-header__logo img {
    height: 76px;
}

.site-header__nav ul {
    list-style: none;
    display: flex;
    gap: var(--space-md);
}
.site-header__nav a {
    font-weight: 700;
    font-size: 0.875rem;
    text-transform: uppercase;
    color: var(--color-primary);
    text-decoration: none;
}

.site-header__nav ul > li.current-menu-item a {
    color: var(--color-accent);
}

.site-header__nav a:hover {
    color: var(--color-accent);
}

#menu-item-822 {
    display: none;
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.site-header__actions a {
    text-decoration: none;
}

/* Hero */
.hero {
    position:            relative;
    background-image:    var(--hero-image);
    background-size:     cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
}
.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.2); /* Overlay for text readability */
    z-index: 1;
}

.hero--full       { min-height: 78vh; }
.hero--small      { min-height: 400px; }
.hero__overlay    { position: relative; z-index: 2; width: 100%; }
.hero__video      { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__bg-image   { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.hero__title {
    color: var(--color-white);
    font-size: clamp(2rem, 3.5vw, 3.2rem);
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}
.hero__subline {
    color: var(--color-white);
    font-size: 1.125rem;
    font-weight: 700;
    max-width: 600px;
    text-shadow: 0 2px 5px rgba(0,0,0,0.3);
}

/* Booking Form */
.hero__booking-form {
    margin-top: var(--space-md);
    background: rgba(35, 51, 66, 0.9);

}
.booking-form-wrapper {
    padding: var(--space-sm);
    border-radius: 4px;
    min-height: 90px;
}

.booking-form {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: flex-end;
    color: #fff;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    min-width: 150px;
}

.form-group label {
    font-size: 0.85rem;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.input-wrapper {
    display: flex;
    align-items: center;
    border: 1px solid var(--color-accent);
    padding: 8px 12px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.05);
    height: 45px;
}

.input-wrapper input {
    background: transparent;
    border: none;
    color: #fff;
    width: 100%;
    height: 100%;
    outline: none;
}

input[type="date"] {
    appearance: none;
    min-height: 100%;
    font-size: 0.9rem;
}

.input-suffix {
    margin-left: 8px;
    white-space: nowrap;
    font-size: 0.9rem;
}

.form-actions {
    flex: 1.1;
    min-width: 200px;
}

.form-actions > button {
    width: 100%;
    height: 100%;
    padding: 12px;
    background-color: var(--color-accent);
    border: none;
    cursor: pointer;
    font-weight: bold;
    text-transform: uppercase;
    height: 45px;
}

/* Browser-spezifische Icons für Date-Input stylen oder ausblenden */
input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(1);
    cursor: pointer;
}


/* Trust Badges */
.trust-badges {
    background: #8c7562;
    color: var(--color-white);
    padding: var(--space-sm) 0;
    font-size: 0.875rem;
    font-weight: 700;
}
.trust-badges__inner {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-sm);
}
.trust-badges .badge {
    text-transform: uppercase;
    font-weight: normal;
}

/* Feature Cards */
.rounded img {
    border: 0px;
    border-radius: 8px;
}

.feature-card {
    background: var(--color-white);
    padding: var(--space-sm);
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 8px;
}
.feature-card h3 {
    font-size: 1.15rem;
    color: var(--color-primary);
    padding: var(--space-xs);
}

.fc-content {
    min-height: 130px;
}

/* Room Cards */
.room-card {
    background: var(--color-white);
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.room-card img {
    width: 100%;
    aspect-ratio: 3/2;
    object-fit: cover;
}
.room-card__content {
    padding: var(--space-md);
}

/* Testimonial */
.section--testimonial {
    padding: var(--space-2xl) 0;
}
.testimonial-stars {
    color: var(--color-white);
    font-size: 2rem;
    margin-bottom: var(--space-sm);
}

blockquote {
    border-left: 0px !important;
}

.testimonial-quote {
    font-family: Georgia;
    font-size: clamp(1.25rem, 3vw, 2rem);
    font-style: italic;
    font-weight: 700;
    line-height: 1.4;
    max-width: 800px;
    margin: 0 auto var(--space-md) auto;
}
.testimonial-author {
    font-size: 0.875rem;
    opacity: 0.8;
}

.wp-block-separator {
    max-width: 20%;
    min-height: 4px;
}

.nav-links {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.nav-previous,
.nav-next {
    flex: 0 1 48%;
    margin: 0 !important;
    display: inline-block;
}

.nav-links a.btn {
    display: inline-block;
    width: auto;
}

.nav-next {
    text-align: right;
}

/* Footer */
.site-footer {
    position: relative;
    background: var(--color-primary);
    color: var(--color-white);
    padding-top: 100px;
}
.site-footer__wave {
    position: absolute;
    top: 0px;
    left: 0;
    width: 100%;
    line-height: 0;
    transform: translateY(-99%); /* pull up above footer */
}
.site-footer__wave svg {
    display: block;
    width: 100%;
    height: 8vw;
    min-height: 50px;
}
.site-footer__content {
    padding-bottom: var(--space-xl);
}
.footer-logo {
    max-width: 150px;
    margin-bottom: var(--space-md);
    filter: brightness(0) invert(1);
}
.footer-weather {
    text-align: right;
}
.weather-location {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.875rem;
}
.weather-temp {
    font-size: 2.5rem;
    font-weight: 700;
}

.site-footer a {
    text-decoration: none;
}

.site-footer a:hover {
    color: var(--color-accent);
}
.site-footer__bottom {
    margin-top: var(--space-xl);
    padding-top: var(--space-md);
    border-top: 1px solid rgba(255,255,255,0.1);
    display: flex;
    justify-content: space-between;
    font-size: 0.875rem;
}
.footer-nav ul {
    list-style: none;
    display: flex;
    gap: var(--space-sm);
}

/* Utility */
.mobile-only { display: none; }
.mobile-hidden { display: block; }

#konzeptionisten:hover {
    background-color: #000;
    color: #FFF !important;
}

/* ============================================================
   6. MEDIA QUERIES
   ============================================================ */

/* Tablet */
@media (max-width: 1024px) {
    .site-header__logo {
        min-width: 200px;
    }
    #menu-main-nav .menu-item:nth-child(1) {
        display: none;
    }

    .booking-form-wrapper .gform_wrapper form {
        flex-direction: column;
        align-items: stretch;
    }

    .form-group:nth-child(3), .form-group:nth-child(4) { display: none; }
}

/* Mobile */
@media (max-width: 768px) {
    .container {
        padding: 0 var(--space-sm);
        overflow: hidden;
    }

    /* Header & Navigation */
    .mobile-only { display: block; }
    .mobile-hidden { display: none; }
    
    .site-header__actions .btn {
        display: none;
    }
    .site-header__nav a {
        font-size: 1.0rem;
        padding-left: var(--space-sm);
    }

    .mobile-menu-toggle {
        background: none;
        border: none;
        font-size: 1.5rem;
        cursor: pointer;
        color: var(--color-primary);
    }

    /* Hero */
    .hero { background-image: var(--hero-image-mobile); }
    .hero--full  { min-height: 78vh; }
    .hero--small { min-height: 39vh; }
    .hero__title { font-size: 2.4rem; }

    #menu-item-822 {
        display: block;
        background-color: var(--color-accent);
        color: var(--color-white);
        text-decoration: none !important;
    }

    #menu-item-822 a {
        color: var(--color-white);
    }

    /* Booking Form */
    .booking-form-wrapper {padding: var(--space-sm);}
    .form-group:nth-child(1), .form-group:nth-child(2), .form-group:nth-child(3), .form-group:nth-child(4) { display: none; }
    .booking-form { gap: 15px; }
    .form-group { flex: 1 1 100%; }

    /* Columns → stacked */
    .columns--2 > *,
    .columns--3 > * { flex: 1 1 100%; }

    /* Bilder — volle Breite, kein Container-Padding */
    .full-width-mobile {
        width:       100vw;
        margin-left: calc( -1 * var(--space-md) );
    }

    .trust-badges__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .wp-block-list {
        padding: 0 4%;
    }

    .nav-links {
        display: block;
        margin-top: 3rem;
        padding-top: 2rem;
        border-top: 1px solid #eee;
    }

    .nav-previous,
    .nav-next {
        display: block;
        width: 100%;
        margin: 0 0 15px 0;
        box-sizing: border-box;
    }

    .nav-previous a,
    .nav-next a {
        text-decoration: underline;
    }

    .nav-next {
        margin-top: 1rem !important;
    }

    .nav-links a.btn {
        display: block;
        width: 100%;
        text-align: center;
        box-sizing: border-box;
    }

    .footer-weather {
        text-align: left;
        margin-top: var(--space-md);
    }
    .site-footer__bottom {
        flex-direction: column;
        align-items: center;
        gap: var(--space-sm);
    }
}

/* ============================================================
   7. BLOCK EDITOR & GFORM OVERRIDES
   ============================================================ */

.editor-styles-wrapper {
    font-family: var(--font-body);
    color:       var(--color-text);
}

.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3 {
    font-family: var(--font-heading);
}

.gform_required_legend {
    display: none;
}
