/*
Theme Name: Branson Resort Theme V1
Theme URI: https://bransonwebsites.com/
Author: Branson Websites
Author URI: https://bransonwebsites.com/
Description: Version 1 custom hospitality theme with color controls, hero areas, slideshow, properties, and booking inquiry shortcode.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: branson-resort-theme
*/

:root {
  --bw-primary: #1e73be;
  --bw-accent: #c89b3c;
  --bw-header-bg: #ffffff;
  --bw-footer-bg: #1b1b1b;
  --bw-footer-text: #f2f2f2;
  --bw-body-text: #2c2c2c;
  --bw-heading: #111111;
  --bw-button-text: #ffffff;
  --bw-hero-overlay: rgba(0,0,0,.45);
  --bw-max-width: 1200px;
}

html { box-sizing: border-box; }
*, *:before, *:after { box-sizing: inherit; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--bw-body-text);
  line-height: 1.6;
  background: #fff;
}
a { color: var(--bw-primary); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }
.container { width: min(100% - 30px, var(--bw-max-width)); margin: 0 auto; }
.site-header {
  background: var(--bw-header-bg);
  position: sticky;
  top: 0;
  z-index: 999;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.topbar {
  background: var(--bw-primary);
  color: #fff;
  font-size: 14px;
}
.topbar .container { display:flex; justify-content:space-between; gap:20px; padding:8px 0; flex-wrap:wrap; }
.topbar a { color:#fff; }
.header-inner {
  display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 0;
}
.site-branding .site-title { font-size: 28px; font-weight: 700; color: var(--bw-heading); }
.site-branding .site-description { font-size: 14px; color: #666; }
.primary-menu ul { list-style:none; display:flex; gap:20px; padding:0; margin:0; flex-wrap:wrap; }
.primary-menu a { color: var(--bw-heading); font-weight:600; }
.bw-button,
button,
input[type=submit] {
  display:inline-block; background: var(--bw-primary); color: var(--bw-button-text); border:none;
  padding:12px 22px; border-radius:4px; cursor:pointer; font-weight:700;
}
.bw-button.alt { background: var(--bw-accent); }
.hero-banner, .page-hero {
  position:relative; color:#fff; min-height: 460px; display:flex; align-items:center; background-size:cover; background-position:center;
}
.hero-banner:before, .page-hero:before {
  content:""; position:absolute; inset:0; background: var(--bw-hero-overlay);
}
.hero-content { position:relative; z-index:2; padding:60px 0; max-width: 760px; }
.hero-content h1, .hero-content h2 { font-size: clamp(34px, 5vw, 58px); line-height:1.1; margin:0 0 12px; color:#fff; }
.hero-content p { font-size: 19px; margin: 0 0 20px; }
.bw-section { padding: 60px 0; }
.bw-section h2 { color: var(--bw-heading); font-size: clamp(28px, 4vw, 40px); margin-top:0; }
.bw-grid { display:grid; gap:24px; }
.bw-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.bw-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.card {
  background:#fff; border:1px solid #e9e9e9; border-radius:10px; overflow:hidden;
  box-shadow: 0 8px 18px rgba(0,0,0,.05);
}
.card-body { padding:20px; }
.card h3 { margin:0 0 10px; color:var(--bw-heading); }
.meta-list { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.meta-pill { background:#f2f4f6; padding:6px 10px; border-radius:999px; font-size:13px; }
.site-footer { background: var(--bw-footer-bg); color: var(--bw-footer-text); padding: 50px 0 25px; }
.site-footer a { color: var(--bw-footer-text); }
.footer-grid { display:grid; grid-template-columns: 2fr 1fr 1fr; gap:30px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); margin-top:25px; padding-top:20px; font-size:14px; }
.bw-slider { position:relative; overflow:hidden; }
.bw-slides { position:relative; min-height:540px; }
.bw-slide {
  position:absolute; inset:0; opacity:0; transform:translateX(30px); transition: opacity .8s ease, transform .8s ease;
  background-size:cover; background-position:center; display:flex; align-items:center;
}
.bw-slide.active { opacity:1; transform:translateX(0); z-index:2; }
.bw-slide::before { content:""; position:absolute; inset:0; background: var(--bw-hero-overlay); }
.bw-slide-inner { position:relative; z-index:2; color:#fff; padding:70px 0; max-width:760px; }
.bw-slide-inner h2 { color:#fff; font-size: clamp(34px, 5vw, 58px); margin:0 0 12px; line-height:1.1; }
.bw-slide-nav { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); display:flex; gap:10px; z-index:4; }
.bw-dot { width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,.55); cursor:pointer; }
.bw-dot.active { background:#fff; }
.bw-booking-form { background:#f8f8f8; padding:24px; border-radius:10px; border:1px solid #e5e5e5; }
.bw-booking-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:15px; }
.bw-booking-form label { display:block; font-weight:700; margin-bottom:6px; }
.bw-booking-form input, .bw-booking-form select, .bw-booking-form textarea {
  width:100%; padding:12px; border:1px solid #ccc; border-radius:5px; font:inherit;
}
.bw-booking-form textarea { min-height:120px; }
.bw-page-content { padding: 40px 0 70px; }
.bw-properties-archive .page-title,
.entry-title { color: var(--bw-heading); }
.bw-amenities { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px 20px; list-style:none; padding:0; }
.bw-amenities li { background:#f5f7f8; padding:10px 12px; border-radius:6px; }
@media (max-width: 900px) {
  .bw-grid-3, .bw-grid-2, .footer-grid, .bw-booking-grid { grid-template-columns:1fr; }
  .header-inner { flex-direction:column; align-items:flex-start; }
  .primary-menu ul { flex-direction:column; gap:10px; }
  .bw-slides { min-height:460px; }
}
