*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --maroon:#500000;--maroon-dk:#3c001c;--white:#ffffff;
  --g100:#f6f6f6;--g200:#eaeaea;--g300:#d1d1d1;
  --g500:#707070;--g600:#626262;--g900:#202020;
  --radius:6px;--shadow:0 4px 24px rgba(80,0,0,.08);--max:960px
}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--g200);color:var(--g900);min-height:100vh;line-height:1.6}

/* ── SKIP LINK ── */
.skip{position:absolute;top:-44px;left:0;background:var(--maroon);color:#fff;padding:10px 18px;z-index:999;border-radius:0 0 4px 0;transition:top .2s;font-size:14px;font-weight:600}
.skip:focus{top:0}

/* ── NAV ── */
nav{background:var(--maroon-dk);position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.nav-inner{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:52px}
.nav-brand{font-size:12px;font-weight:600;color:rgba(255,255,255,.55);letter-spacing:1px;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.nav-links{display:flex;gap:2px}
.nav-links a{color:rgba(255,255,255,.82);text-decoration:none;font-size:13px;font-weight:500;padding:7px 11px;border-radius:4px;transition:background .15s,color .15s;white-space:nowrap}
.nav-links a:hover,.nav-links a[aria-current="page"]{background:var(--maroon);color:#fff}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;color:rgba(255,255,255,.88);line-height:0}
@media(max-width:700px){
  .nav-brand{display:none}
  .nav-toggle{display:block}
  .nav-links{display:none;flex-direction:column;gap:0;position:absolute;top:52px;left:0;right:0;background:var(--maroon-dk);padding:6px 0 10px;box-shadow:0 4px 12px rgba(0,0,0,.25)}
  .nav-links.open{display:flex}
  .nav-links a{font-size:15px;padding:13px 20px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.07)}
  .nav-links a:last-child{border-bottom:none}
}

/* ── HEADER ── */
header{background:var(--maroon);text-align:center;padding:26px 20px 20px;border-bottom:4px solid var(--maroon-dk)}
.header-logo{max-width:260px;width:65%;height:auto;background:#fff;border-radius:8px;padding:12px 20px 10px;display:inline-block}
header p{font-size:13px;font-weight:300;color:rgba(255,255,255,.78);margin-top:10px;letter-spacing:.3px}
@media(max-width:480px){.header-logo{max-width:200px;width:78%;padding:10px 14px 8px}header p{font-size:12px}}

/* ── LAYOUT ── */
.page{max-width:var(--max);margin:0 auto;padding:24px 16px 56px}
@media(min-width:600px){.page{padding:36px 24px 64px}}

/* ── CARDS ── */
.card{background:#fff;border:1px solid var(--g300);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 18px;margin-bottom:18px}
@media(min-width:600px){.card{padding:28px 32px;margin-bottom:24px}}
.card-label{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--maroon);border-bottom:2px solid var(--maroon);padding-bottom:10px;margin-bottom:18px}
.card h1{font-family:'Playfair Display',serif;font-size:clamp(22px,4vw,30px);font-weight:700;color:var(--maroon);margin-bottom:14px;line-height:1.2}
.card p{font-size:15px;line-height:1.75;margin-bottom:14px}
.card p:last-child{margin-bottom:0}
.card a{color:var(--maroon)}
.card strong{font-weight:600}

/* ── HERO ── */
.hero{background:var(--maroon);color:#fff;border-radius:var(--radius);padding:32px 24px;margin-bottom:18px;box-shadow:var(--shadow)}
@media(min-width:600px){.hero{padding:48px 40px;margin-bottom:24px}}
.hero h1{font-family:'Playfair Display',serif;font-size:clamp(24px,6vw,42px);font-weight:700;line-height:1.15;margin-bottom:14px}
.hero p{font-size:clamp(14px,2.5vw,16px);font-weight:300;color:rgba(255,255,255,.84);max-width:560px;line-height:1.7;margin-bottom:22px}
.hero-btn{display:inline-block!important;background:#ffffff!important;color:var(--maroon)!important;font-size:13px!important;font-weight:700!important;letter-spacing:1.2px;text-transform:uppercase;text-decoration:none!important;border-radius:var(--radius);padding:13px 32px;transition:background .15s;touch-action:manipulation;line-height:1.4!important;font-family:'Inter',sans-serif!important}
.hero-btn:hover,.hero-btn:visited{background:var(--g200)!important;color:var(--maroon)!important}

/* ── FEATURE GRID ── */
.feat-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:18px}
@media(min-width:480px){.feat-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}}
.feat-card{background:#fff;border:1px solid var(--g300);border-radius:var(--radius);padding:20px 18px;box-shadow:var(--shadow)}
.feat-icon{font-size:26px;margin-bottom:10px}
.feat-card h2{font-family:'Playfair Display',serif;font-size:17px;font-weight:500;color:var(--maroon);margin-bottom:8px}
.feat-card p{font-size:13.5px;color:var(--g600);line-height:1.6}

/* ── TABLES ── */
.t-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:260px}
th{background:var(--maroon);color:#fff;text-align:left;padding:10px 14px;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}
td{padding:10px 14px;border-bottom:1px solid var(--g200)}
tr:last-child td{border-bottom:none}
tr:nth-child(even) td{background:var(--g100)}
.rate-note{font-size:12.5px;color:var(--g600);margin-top:12px;font-style:italic;line-height:1.65}

/* ── FAQ ── */
.faq-item{border-bottom:1px solid var(--g200)}
.faq-item:last-child{border-bottom:none}
.faq-q{width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:16px 0;font-family:'Inter',sans-serif;font-size:15px;font-weight:600;color:var(--g900);display:flex;justify-content:space-between;align-items:center;gap:12px;line-height:1.4;touch-action:manipulation}
.faq-q:hover{color:var(--maroon)}
.chevron{font-size:20px;color:var(--maroon);flex-shrink:0;transition:transform .2s;display:inline-block}
.faq-a{font-size:14.5px;color:var(--g600);line-height:1.75;padding-bottom:16px;display:none}
.faq-a a{color:var(--maroon)}
.faq-item.open .faq-a{display:block}
.faq-item.open .chevron{transform:rotate(180deg)}

/* ── FORM ── */
.g2{display:grid;grid-template-columns:1fr;gap:16px}
.g3{display:grid;grid-template-columns:1fr;gap:16px}
.g4{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:480px){.g2{grid-template-columns:1fr 1fr;gap:18px}}
@media(min-width:580px){.g3{grid-template-columns:1fr 1fr 1fr;gap:18px}}
@media(min-width:640px){.g4{grid-template-columns:1fr 1fr 1fr 1fr;gap:16px}}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:11.5px;font-weight:600;letter-spacing:.4px;color:var(--g600);text-transform:uppercase}
input[type=text],input[type=email],input[type=tel],input[type=date],textarea,select{
  font-family:'Inter',sans-serif;font-size:16px;color:var(--g900);
  background:var(--g100);border:1.5px solid var(--g300);
  border-radius:var(--radius);padding:12px 14px;
  transition:border-color .18s,box-shadow .18s;
  width:100%;outline:none;appearance:none;-webkit-appearance:none
}
input:focus,textarea:focus,select:focus{border-color:var(--maroon);box-shadow:0 0 0 3px rgba(80,0,0,.10);background:#fff}
textarea{resize:vertical;min-height:110px;line-height:1.55}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23500000' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}
.toggle-row{display:flex;align-items:center;gap:14px;padding:13px 16px;background:var(--g100);border:1.5px solid var(--g300);border-radius:var(--radius);cursor:pointer;transition:border-color .18s;min-height:52px;touch-action:manipulation}
.toggle-row:hover{border-color:var(--maroon)}
.toggle-row input[type=checkbox]{display:none}
.track{width:44px;height:24px;background:var(--g300);border-radius:12px;flex-shrink:0;position:relative;transition:background .2s}
.track::after{content:'';width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.toggle-row input:checked~.track{background:var(--maroon)}
.toggle-row input:checked~.track::after{left:23px}
.tog-label{font-size:14px;font-weight:500;color:var(--g900)}
.tog-sub{font-size:12px;color:var(--g500);margin-top:1px}
.submit-area{text-align:center;margin-top:14px}
.btn-book{display:inline-block;background:var(--maroon);color:#fff;font-family:'Inter',sans-serif;font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;border:none;border-radius:var(--radius);padding:16px 44px;cursor:pointer;transition:background .18s,transform .12s,box-shadow .18s;box-shadow:0 2px 12px rgba(80,0,0,.25);width:100%;max-width:320px;touch-action:manipulation}
.btn-book:hover{background:var(--maroon-dk);transform:translateY(-1px);box-shadow:0 6px 20px rgba(80,0,0,.30)}
.btn-book:active{transform:translateY(0)}
.submit-note{font-size:12px;color:var(--g600);margin-top:10px}
.field-err{font-size:11.5px;color:#b91c1c;font-weight:500;display:none}
.invalid{border-color:#b91c1c!important}
#success-msg{display:none;background:#e6f4ea;border:1.5px solid #a8d5b0;border-radius:var(--radius);padding:16px 20px;margin-bottom:20px;text-align:center;color:#1e5c2e;font-size:14.5px;font-weight:500}

/* ── CTA BUTTON ── */
.cta{display:inline-block!important;background:var(--maroon)!important;color:#ffffff!important;padding:13px 28px!important;border-radius:var(--radius);text-decoration:none!important;font-size:13px!important;font-weight:700!important;letter-spacing:1px;text-transform:uppercase;transition:background .15s;touch-action:manipulation;line-height:1.4!important;font-family:'Inter',sans-serif!important}
.cta:hover,.cta:visited{background:var(--maroon-dk)!important;color:#ffffff!important}

/* ── FOOTER ── */
footer{background:var(--maroon-dk);color:rgba(255,255,255,.65);text-align:center;padding:28px 20px;font-size:12px;letter-spacing:.3px;line-height:2}
footer a{color:rgba(255,255,255,.78);text-decoration:none}
footer a:hover{color:#fff}

/* ── CONFIRMATION MODAL ── */
.modal-overlay {
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,0.55);z-index:500;
  align-items:center;justify-content:center;padding:20px;
}
.modal-overlay.open { display:flex; }
.modal-box {
  background:#fff;border-radius:8px;
  box-shadow:0 8px 40px rgba(0,0,0,0.30);
  max-width:480px;width:100%;padding:28px 28px 24px;
  position:relative;animation:modalIn .2s ease;
}
@keyframes modalIn {
  from{opacity:0;transform:translateY(-16px)}
  to{opacity:1;transform:translateY(0)}
}
.modal-title {
  font-family:'Playfair Display',serif;
  font-size:20px;font-weight:700;color:var(--maroon);
  margin-bottom:6px;line-height:1.2;
}
.modal-subtitle {
  font-size:13px;color:var(--g600);margin-bottom:20px;line-height:1.5;
}
.modal-checks { display:flex;flex-direction:column;gap:14px;margin-bottom:24px; }
.modal-check-row {
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 14px;background:var(--g100);
  border:1.5px solid var(--g300);border-radius:var(--radius);
  cursor:pointer;transition:border-color .15s;
}
.modal-check-row:has(input:checked) { border-color:var(--maroon); background:#fdf6f6; }
.modal-check-row input[type="checkbox"] {
  width:18px;height:18px;flex-shrink:0;
  accent-color:var(--maroon);cursor:pointer;margin-top:2px;
}
.modal-check-row label {
  font-size:13.5px;line-height:1.6;color:var(--g900);
  cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400;
}
.modal-check-row label a {
  color:var(--maroon);font-weight:600;text-decoration:underline;
}
.modal-buttons { display:flex;gap:12px; }
.modal-confirm {
  flex:1;background:var(--maroon);color:#fff;
  border:none;border-radius:var(--radius);
  padding:13px 20px;font-family:'Inter',sans-serif;
  font-size:13px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;cursor:pointer;
  transition:background .15s,opacity .15s;
  touch-action:manipulation;
}
.modal-confirm:disabled { opacity:.45;cursor:not-allowed; }
.modal-confirm:not(:disabled):hover { background:var(--maroon-dk); }
.modal-cancel {
  flex:1;background:#fff;color:var(--maroon);
  border:2px solid var(--maroon);border-radius:var(--radius);
  padding:13px 20px;font-family:'Inter',sans-serif;
  font-size:13px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;cursor:pointer;
  transition:background .15s;touch-action:manipulation;
}
.modal-cancel:hover { background:var(--g100); }
