/* ========================================================================
   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);}

/* 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__grid{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 .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{padding:12px 14px; font-size:14px;}
    .rfl-form__actions{flex-direction:column; align-items:stretch;}
    .rfl-form__submit{width:100%; justify-content:center;}
}
