/* Cookie consent banner + preferences for Hocking Hills Premier Cabins */
.cc-banner {
  position:fixed; left:0; right:0; bottom:0; z-index:2147483000;
  background:#FCF8EC; color:#2A211B;
  border-top:3px solid #49382E; box-shadow:0 -6px 22px rgba(0,0,0,0.18);
  font-family:Montserrat, Arial, sans-serif;
}
.cc-banner__inner {
  max-width:1200px; margin:0 auto; padding:18px 24px;
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 28px; justify-content:space-between;
}
.cc-banner__text { flex:1 1 380px; font-size:14px; line-height:1.55; margin:0; color:#3a2f27; }
.cc-banner__text a { color:#49382E; text-decoration:underline; text-underline-offset:2px; }
.cc-banner__actions { display:flex; flex-wrap:wrap; gap:10px; }

.cc-btn {
  font-family:inherit; font-size:14px; font-weight:600; line-height:1;
  padding:12px 20px; border-radius:6px; cursor:pointer; border:1px solid #49382E;
  transition:background-color 0.2s ease, color 0.2s ease;
}
.cc-btn--primary { background:#49382E; color:#FFFFFF; }
.cc-btn--primary:hover { background:#5c483b; }
.cc-btn--ghost { background:transparent; color:#49382E; }
.cc-btn--ghost:hover { background:#49382E; color:#FFFFFF; }

/* Preferences modal */
.cc-overlay {
  position:fixed; inset:0; z-index:2147483001; background:rgba(0,0,0,0.55);
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.cc-modal {
  background:#FFFFFF; color:#2A211B; width:100%; max-width:520px; border-radius:10px;
  font-family:Montserrat, Arial, sans-serif; box-shadow:0 20px 60px rgba(0,0,0,0.35);
  max-height:90vh; overflow:auto;
}
.cc-modal__head { padding:22px 24px 8px; }
.cc-modal__head h2 { margin:0 0 8px; font-size:20px; color:#49382E; }
.cc-modal__head p { margin:0; font-size:14px; line-height:1.55; color:#4a3f37; }
.cc-modal__head a { color:#49382E; text-decoration:underline; text-underline-offset:2px; }
.cc-row {
  display:flex; align-items:flex-start; gap:14px; justify-content:space-between;
  padding:18px 24px; border-top:1px solid #ece4d6;
}
.cc-row__info h3 { margin:0 0 4px; font-size:15px; color:#2A211B; }
.cc-row__info p { margin:0; font-size:13px; line-height:1.5; color:#5a5049; }
.cc-modal__foot { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; padding:18px 24px 22px; }
.cc-locked { font-size:13px; font-weight:600; color:#8a7d70; padding-top:2px; white-space:nowrap; }

/* Toggle */
.cc-switch { position:relative; display:inline-block; width:46px; height:26px; flex:0 0 auto; }
.cc-switch input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.cc-switch .cc-slider {
  position:absolute; inset:0; background:#cbb8a6; border-radius:999px; transition:background-color 0.2s ease;
}
.cc-switch .cc-slider::before {
  content:""; position:absolute; top:3px; left:3px; width:20px; height:20px;
  background:#fff; border-radius:50%; transition:transform 0.2s ease; box-shadow:0 1px 3px rgba(0,0,0,0.3);
}
.cc-switch input:checked + .cc-slider { background:#49382E; }
.cc-switch input:checked + .cc-slider::before { transform:translateX(20px); }
.cc-switch input:focus-visible + .cc-slider { outline:2px solid #49382E; outline-offset:2px; }

@media (max-width:600px) {
  .cc-banner__actions { width:100%; }
  .cc-banner__actions .cc-btn { flex:1 1 auto; }
}
