/* ========================================================================
   RFL — Reserveer & Contact formulier
   ======================================================================== */

/* -------- Reserve Page Layout -------- */
.rfl-reserve{padding:120px 0; background:var(--rfl-cream);}
.rfl-reserve__inner{
    display:grid; grid-template-columns:.95fr 1.05fr; gap:80px; align-items:start;
}
.rfl-reserve__title{margin:18px 0 22px;}
.rfl-reserve__title em{color:var(--rfl-gold); font-style:italic;}
.rfl-reserve__lead{
    font-size:16px; line-height:1.75; color:var(--rfl-ink-60);
    margin:0 0 32px; max-width:520px;
}
.rfl-reserve__list{list-style:none; padding:0; margin:0 0 36px; display:flex; flex-direction:column; gap:14px;}
.rfl-reserve__list li{
    display:flex; gap:14px; align-items:center;
    padding:14px 18px; background:var(--rfl-paper); border-radius:var(--rfl-radius-m);
    font-size:15px; color:var(--rfl-ink-60);
}
.rfl-reserve__list strong{color:var(--rfl-ink);}
.rfl-reserve__list-icon{
    color:var(--rfl-gold); font-size:18px; flex-shrink:0;
    width:32px; height:32px; display:grid; place-items:center;
    background:var(--rfl-cream); border-radius:50%;
}

.rfl-reserve__contact{
    padding:24px 28px; background:var(--rfl-ink); color:var(--rfl-paper);
    border-radius:var(--rfl-radius-m); margin-bottom:36px;
    display:flex; flex-direction:column; gap:6px;
}
.rfl-reserve__contact-label{
    font-size:11px; letter-spacing:.22em; text-transform:uppercase;
    color:var(--rfl-gold); font-weight:500;
}
.rfl-reserve__contact-phone{
    font-family:var(--rfl-serif); font-size:34px; line-height:1;
    color:var(--rfl-paper); text-decoration:none;
}
.rfl-reserve__contact-phone:hover{color:var(--rfl-gold);}

.rfl-reserve__figure{
    margin:0; border-radius:var(--rfl-radius-m); overflow:hidden;
    box-shadow:var(--rfl-shadow); position:relative;
}
.rfl-reserve__figure img{display:block; width:100%; height:auto;}
.rfl-reserve__figure figcaption{
    position:absolute; left:18px; bottom:18px;
    padding:8px 14px; background:rgba(14,14,14,.85); color:var(--rfl-paper);
    font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    border-radius:999px;
}

.rfl-reserve__formwrap{position:sticky; top:110px;}

/* -------- Form Component -------- */
.rfl-form{
    background:var(--rfl-paper);
    border-radius:var(--rfl-radius-m); overflow:hidden;
    box-shadow:0 30px 60px -30px rgba(0,0,0,.35);
    border:1px solid var(--rfl-line);
    position:relative; z-index:1;
}
.rfl-form__form{padding:44px 42px;}
.rfl-form__title{
    font-family:var(--rfl-serif); font-size:34px; font-weight:400;
    color:var(--rfl-ink); margin:0 0 8px;
}
.rfl-form__intro{color:var(--rfl-ink-60); margin:0 0 28px; line-height:1.65;}

.rfl-form__grid{
    display:grid; grid-template-columns:1fr 1fr; gap:18px;
}
.rfl-form__field{
    display:flex; flex-direction:column; gap:8px;
    font-size:14px;
}
.rfl-form__field--full{grid-column:1 / -1;}
.rfl-form__field > span{
    font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    color:var(--rfl-ink); font-weight:500;
}
.rfl-form__field input,
.rfl-form__field select,
.rfl-form__field textarea{
    font-family:var(--rfl-sans); font-size:15px;
    padding:14px 16px;
    background:var(--rfl-cream); border:1px solid transparent;
    border-radius:var(--rfl-radius-s); color:var(--rfl-ink);
    transition:border-color .35s var(--rfl-ease), background .35s var(--rfl-ease);
    outline:none; width:100%;
}
.rfl-form__field input:focus,
.rfl-form__field select:focus,
.rfl-form__field textarea:focus{
    border-color:var(--rfl-gold); background:var(--rfl-paper);
}
.rfl-form__field textarea{resize:vertical; min-height:120px;}
.rfl-form__field select{
    appearance:none; -webkit-appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='none' stroke='%23c8a35a' stroke-width='1.5' d='M1 1l5 5 5-5'/></svg>");
    background-repeat:no-repeat; background-position:right 16px center;
    background-size:11px;
    padding-right:38px;
}

.rfl-form__field--check{
    flex-direction:row; align-items:flex-start; gap:12px;
    background:var(--rfl-cream); padding:14px 16px; border-radius:var(--rfl-radius-s);
}
/* Defeat theme's appearance:none + circle styling for native check look */
.rfl-form__field--check input[type="checkbox"]{
    appearance:auto !important;
    -webkit-appearance:auto !important;
    width:18px !important; height:18px !important;
    border:none !important;
    border-radius:0 !important;
    background:transparent !important;
    padding:0 !important; margin:3px 0 0 !important;
    accent-color:var(--rfl-gold);
    flex-shrink:0;
    cursor:pointer;
}
.rfl-form__field--check input[type="checkbox"]::after{display:none !important;}
.rfl-form__field--check span{
    font-size:13px; letter-spacing:0; text-transform:none; font-weight:400;
    color:var(--rfl-ink-60); line-height:1.55;
}
.rfl-form__field--check a{color:var(--rfl-gold);}

.rfl-form__actions{
    display:flex; align-items:center; gap:18px; flex-wrap:wrap;
    margin-top:24px;
}
.rfl-form__hint{font-size:12px; color:var(--rfl-ink-60);}

/* ========================================================================
   Restaurant Reservations [booking-form] overrides
   Laat de .rtb-booking-form output er exact uit zien als .rfl-form__form
   ======================================================================== */
.rfl-form__form--rtb{padding:44px 42px;}
.rfl-form__form--rtb .rfl-form__hint{display:block; margin:18px 0 0;}

.rfl-form .rtb-booking-form{
    width:100%; margin:0; float:none; position:relative;
}
.rfl-form .rtb-booking-form-form{margin:0;}

/* -------- Fieldsets als grid, net als .rfl-form__grid -------- */
.rfl-form .rtb-booking-form fieldset{
    border:0; padding:0; margin:0 0 26px; min-width:0;
    display:grid; grid-template-columns:1fr 1fr; gap:18px;
}
.rfl-form .rtb-booking-form fieldset:last-of-type{margin-bottom:0;}
/* float haalt de legend uit de native fieldset-rendering → gewoon grid-item */
.rfl-form .rtb-booking-form legend{
    float:left; width:100%; grid-column:1 / -1;
    padding:0; margin:0; border:0;
    font-family:var(--rfl-serif); font-size:22px; font-weight:400; line-height:1.2;
    color:var(--rfl-ink);
}
.rfl-form .rtb-booking-form fieldset > div{margin:0; min-width:0;}

/* Veldindeling */
.rfl-form .rtb-booking-form fieldset > div.party,
.rfl-form .rtb-booking-form fieldset > div.table,
.rfl-form .rtb-booking-form fieldset > div.name,
.rfl-form .rtb-booking-form fieldset > div.add-message,
.rfl-form .rtb-booking-form fieldset > div.message,
.rfl-form .rtb-booking-form fieldset > div.rtb-textarea,
.rfl-form .rtb-booking-form fieldset > div.rtb-confirm,
.rfl-form .rtb-booking-form fieldset > div.rtb-checkbox,
.rfl-form .rtb-booking-form fieldset > div.rtb-radio,
.rfl-form .rtb-booking-form fieldset.rtb-form-footer > div{grid-column:1 / -1;}

/* -------- Labels -------- */
.rfl-form .rtb-booking-form label{
    display:block; margin:0 0 8px;
    font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    color:var(--rfl-ink); font-weight:500;
}

/* -------- Inputs -------- */
.rfl-form .rtb-booking-form input[type="text"],
.rfl-form .rtb-booking-form input[type="email"],
.rfl-form .rtb-booking-form input[type="tel"],
.rfl-form .rtb-booking-form input[type="date"],
.rfl-form .rtb-booking-form input[type="time"],
.rfl-form .rtb-booking-form input[type="number"],
.rfl-form .rtb-booking-form select,
.rfl-form .rtb-booking-form textarea{
    font-family:var(--rfl-sans); font-size:15px;
    padding:14px 16px;
    background:var(--rfl-cream); border:1px solid transparent;
    border-radius:var(--rfl-radius-s); color:var(--rfl-ink);
    transition:border-color .35s var(--rfl-ease), background .35s var(--rfl-ease);
    outline:none; width:100%; max-width:none; margin:0; box-shadow:none;
}
.rfl-form .rtb-booking-form input:focus,
.rfl-form .rtb-booking-form select:focus,
.rfl-form .rtb-booking-form textarea:focus{
    border-color:var(--rfl-gold); background:var(--rfl-paper);
}
.rfl-form .rtb-booking-form textarea{resize:vertical; min-height:120px;}
.rfl-form .rtb-booking-form select{
    appearance:none; -webkit-appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='none' stroke='%23c8a35a' stroke-width='1.5' d='M1 1l5 5 5-5'/></svg>");
    background-repeat:no-repeat; background-position:right 16px center;
    background-size:11px;
    padding-right:38px;
}

/* -------- Checkbox / consent -------- */
.rfl-form .rtb-booking-form .rtb-confirm label,
.rfl-form .rtb-booking-form .rtb-checkbox label:not(:first-child),
.rfl-form .rtb-booking-form .rtb-radio label:not(:first-child){
    display:flex; align-items:flex-start; gap:12px; margin:0;
    background:var(--rfl-cream); padding:14px 16px; border-radius:var(--rfl-radius-s);
    font-size:13px; letter-spacing:0; text-transform:none; font-weight:400;
    color:var(--rfl-ink-60); line-height:1.55;
}
.rfl-form .rtb-booking-form .rtb-confirm a,
.rfl-form .rtb-booking-form .rtb-checkbox a,
.rfl-form .rtb-booking-form .rtb-radio a{color:var(--rfl-gold);}
/* Defeat theme's appearance:none + circle styling for native check look */
.rfl-form .rtb-booking-form input[type="checkbox"],
.rfl-form .rtb-booking-form input[type="radio"]{
    appearance:auto !important;
    -webkit-appearance:auto !important;
    width:18px !important; height:18px !important;
    border:none !important;
    background:transparent !important;
    padding:0 !important; margin:2px .25em 0 0 !important;
    accent-color:var(--rfl-gold);
    flex-shrink:0; cursor:pointer; vertical-align:middle;
}
.rfl-form .rtb-booking-form input[type="checkbox"]{border-radius:0 !important;}
.rfl-form .rtb-booking-form input[type="checkbox"]::after,
.rfl-form .rtb-booking-form input[type="radio"]::after{display:none !important;}

/* -------- "Voeg bericht toe" link -------- */
.rfl-form .rtb-booking-form .add-message{margin:0;}
.rfl-form .rtb-booking-form .add-message a{
    display:inline-block;
    font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
    color:var(--rfl-gold); text-decoration:none;
    border-bottom:1px solid rgba(200,163,90,.45); padding-bottom:3px;
    transition:color .35s var(--rfl-ease), border-color .35s var(--rfl-ease);
}
.rfl-form .rtb-booking-form .add-message a:hover{
    color:var(--rfl-ink); border-bottom-color:var(--rfl-ink);
}

/* -------- Submit -------- */
.rfl-form .rtb-booking-form .rtb-form-footer{margin-top:2px;}
.rfl-form .rtb-booking-form .rtb-form-submit{margin:0;}
.rfl-form .rtb-booking-form .rtb-form-submit button,
.rfl-form .rtb-booking-form button[type="submit"]{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--rfl-gold); color:var(--rfl-ink);
    border:1px solid var(--rfl-gold); padding:16px 32px;
    border-radius:999px; cursor:pointer; width:auto;
    font-family:var(--rfl-sans);
    font-size:12px; letter-spacing:.22em; text-transform:uppercase; font-weight:500;
    transition:all .35s var(--rfl-ease);
}
.rfl-form .rtb-booking-form .rtb-form-submit button:hover,
.rfl-form .rtb-booking-form button[type="submit"]:hover{
    background:var(--rfl-ink); color:var(--rfl-paper); border-color:var(--rfl-ink);
}

/* -------- Meldingen & fouten -------- */
.rfl-form .rtb-booking-form .rtb-error{
    background:transparent; color:#b3261e;
    font-size:12px; letter-spacing:0; padding:0 0 6px;
}
.rfl-form .rtb-booking-form .rtb-error:before{display:none;}
.rfl-form .rtb-message{
    padding:20px 22px; margin:0;
    background:var(--rfl-cream); border-left:3px solid var(--rfl-gold);
    border-radius:var(--rfl-radius-s);
}
.rfl-form .rtb-message p{margin:0; color:var(--rfl-ink); line-height:1.65;}

/* -------- Reservering wijzigen / annuleren -------- */
.rfl-form .rtb-modification-toggle{
    float:none; display:inline-block; margin:0 0 20px; padding:11px 22px;
    background:var(--rfl-cream); color:var(--rfl-ink); border-radius:999px;
    font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
    transition:all .35s var(--rfl-ease);
}
.rfl-form .rtb-modification-toggle:hover{background:var(--rfl-ink); color:var(--rfl-paper);}
.rfl-form .rtb-modification-form:not(.rtb-hidden){
    display:grid; gap:14px;
    padding:22px; margin:0 0 26px;
    background:var(--rfl-cream); border-radius:var(--rfl-radius-s);
}
.rfl-form .rtb-modification-form label{margin:0;}
.rfl-form .rtb-modification-form label[for="rtb_modification_email"],
.rfl-form .rtb-modification-form input[name="rtb_modification_email"]{float:none; margin:0;}
.rfl-form .rtb-modification-form input{background:var(--rfl-paper) !important;}
.rfl-form .rtb-find-reservation-button-div{margin:0;}
.rfl-form .rtb-find-reservation-button{
    float:none; display:inline-block; margin:0; padding:14px 28px;
    background:var(--rfl-gold); color:var(--rfl-ink); border-radius:999px;
    font-size:11px; letter-spacing:.22em; text-transform:uppercase; font-weight:500;
    transition:all .35s var(--rfl-ease);
}
.rfl-form .rtb-find-reservation-button:hover{background:var(--rfl-ink); color:var(--rfl-paper);}
.rfl-form .rtb-bookings-results{float:none; margin:0;}

/* -------- Datum-/tijdkiezer (pickadate) -------- */
.rfl-form .picker__frame{border-radius:var(--rfl-radius-s); overflow:hidden;}
.rfl-form .picker__box{border:1px solid var(--rfl-line);}
.rfl-form .picker__day--selected,
.rfl-form .picker__day--selected:hover,
.rfl-form .picker__list-item--selected{
    background:var(--rfl-gold) !important; color:var(--rfl-ink) !important;
}
.rfl-form .picker__day--highlighted,
.rfl-form .picker__list-item--highlighted{border-color:var(--rfl-gold) !important;}

/* CF7 overrides — if a CF7 form replaces the fallback, make it look native */
.rfl-form .wpcf7-form{padding:44px 42px;}
.rfl-form .wpcf7 label{
    display:block;
    font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    color:var(--rfl-ink); font-weight:500;
    margin-bottom:8px;
}
.rfl-form .wpcf7 input[type="text"],
.rfl-form .wpcf7 input[type="email"],
.rfl-form .wpcf7 input[type="tel"],
.rfl-form .wpcf7 input[type="date"],
.rfl-form .wpcf7 input[type="time"],
.rfl-form .wpcf7 input[type="number"],
.rfl-form .wpcf7 input[type="url"],
.rfl-form .wpcf7 input[type="file"],
.rfl-form .wpcf7 select,
.rfl-form .wpcf7 textarea{
    width:100%; padding:14px 16px;
    background:var(--rfl-cream); border:1px solid transparent;
    border-radius:var(--rfl-radius-s); color:var(--rfl-ink);
    font-family:var(--rfl-sans); font-size:15px;
    outline:none;
}
.rfl-form .wpcf7 input:focus,
.rfl-form .wpcf7 select:focus,
.rfl-form .wpcf7 textarea:focus{border-color:var(--rfl-gold);}
.rfl-form .wpcf7-submit,
.rfl-form input[type="submit"]{
    background:var(--rfl-gold); color:var(--rfl-ink);
    border:1px solid var(--rfl-gold); padding:16px 32px;
    border-radius:999px; cursor:pointer;
    font-size:12px; letter-spacing:.22em; text-transform:uppercase; font-weight:500;
    transition:all .35s var(--rfl-ease);
}
.rfl-form .wpcf7-submit:hover,
.rfl-form input[type="submit"]:hover{background:var(--rfl-ink); color:var(--rfl-paper);}

@media (max-width:900px){
    .rfl-reserve{padding:80px 0;}
    .rfl-reserve__inner{grid-template-columns:1fr; gap:50px;}
    .rfl-reserve__formwrap{position:static;}
    .rfl-form__form{padding:32px 24px;}
    .rfl-form__form--rtb{padding:32px 24px;}
    .rfl-form__grid{grid-template-columns:1fr;}
    .rfl-form .rtb-booking-form fieldset{grid-template-columns:1fr;}
    .rfl-reserve__title{margin-bottom:18px;}
    .rfl-reserve__contact-phone{font-size:28px;}
}
@media (max-width:420px){
    .rfl-form__form,
    .rfl-form__form--rtb,
    .rfl-form .wpcf7-form{padding:24px 18px;}
    .rfl-form__title{font-size:26px;}
    .rfl-form__field input,
    .rfl-form__field select,
    .rfl-form__field textarea,
    .rfl-form .wpcf7 input[type="text"],
    .rfl-form .wpcf7 input[type="email"],
    .rfl-form .wpcf7 input[type="tel"],
    .rfl-form .wpcf7 input[type="date"],
    .rfl-form .wpcf7 input[type="time"],
    .rfl-form .wpcf7 select,
    .rfl-form .wpcf7 textarea,
    .rfl-form .rtb-booking-form input[type="text"],
    .rfl-form .rtb-booking-form input[type="email"],
    .rfl-form .rtb-booking-form input[type="tel"],
    .rfl-form .rtb-booking-form select,
    .rfl-form .rtb-booking-form textarea{padding:12px 14px; font-size:14px;}
    .rfl-form__actions{flex-direction:column; align-items:stretch;}
    .rfl-form__submit{width:100%; justify-content:center;}
    .rfl-form .rtb-booking-form .rtb-form-submit button{width:100%; justify-content:center;}
}
