/* assets/css/minimal.css */
/* Brand palette based on logo: deep navy + steel blue + warm gold + light gray */

:root{
  /* Brand colors */
  --navy:#1e4276;         /* deep navy */
  --steel:#2a3f67;        /* steel blue */
  --sky:#3b5b8f;          /* link/hover blue */
  --gold:rgb(252, 202, 76);         /* warm gold */
  --gold-dark:goldenrod;

  /* Neutrals */
  --ink:#0b1220;          /* primary text */
  --muted:#5a6d8a;        /* secondary text */
  --paper:#ffffff;        /* card bg */
  --mist:#f3f6fb;         /* page bg */
  --border:#264067;       /* border */
  --shadow: 0 10px 30px rgba(11,30,58,.10);

  /* Mapping */
  --bg:var(--mist);
  --card:var(--paper);
  --text:var(--ink);
  --link:var(--sky);
  --link-hover:var(--gold);
  --accent:var(--gold);
  --accent-hover:var(--gold-dark);

  --header-bg:var(--navy);
  --header-text:#eef3ff;

  --radius:18px;
  --radius-sm:12px;

  --maxw: 1120px;
}

/* Good global baseline */
*, *::before, *::after { box-sizing: border-box; }

/* Base reset */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.5;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-hover)}
code,kbd,pre{
  font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}

/* Layout helpers */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 16px;}
main.wrap{padding-top:18px; padding-bottom:34px;}
.row{display:flex; gap:14px; align-items:flex-start;}
.row > *{flex:1}

@media (max-width: 860px){
  .row{
    flex-direction:row; 
    flex-wrap:wrap;}
}

/* Header + Nav */
.site-header{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  background:var(--header-bg);
  color:var(--header-text);
  border-radius:0 0 var(--radius) var(--radius);
  box-shadow: 0 6px 20px rgba(11,30,58,.12);
}
.brand{
  margin:0;
  font-weight:900;
  letter-spacing:.2px;
  color:var(--header-text);
  font-size:20px;
}
.site-nav{
  display:flex;
  gap:14px;
  align-items:center;
  flex-wrap:wrap;
}
.site-nav a{
  color:var(--header-text);
  opacity:.92;
  padding:8px 10px;
  border-radius:14px;
}
.site-nav a:hover{ color:var(--accent); opacity:1; }
.site-nav a.active{
  color:var(--accent);
  background: rgba(211,161,37,.14);
  border:1px solid rgba(211,161,37,.30);
  opacity:1;
  font-weight:700;
}

/* Hamburger toggle */
.nav-toggle{
  display:none;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.22);
  background:transparent;
  color:var(--header-text);
  cursor:pointer;
}
.nav-toggle:hover{ border-color: rgba(211,161,37,.55); color:var(--accent); }
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* Mobile dropdown menu */
@media (max-width: 860px){
  .nav-toggle{display:inline-flex;}
  .site-nav{
    display:none;
    position:absolute;
    right:16px;
    top:56px;
    background:var(--navy);
    border:1px solid rgba(255,255,255,.18);
    border-radius:16px;
    padding:10px;
    box-shadow: 0 12px 34px rgba(0,0,0,.22);
    flex-direction:column;
    min-width:210px;
    z-index:9999;

  }
  .site-nav.open{display:flex;}
  .site-nav a{width:100%;}
}

/* Footer */
.site-footer{
  margin-top:34px;
  padding:18px 16px;
  background: rgba(11,30,58,.06);
  border-top:1px solid var(--border);
}
.site-footer .muted{color:var(--muted); font-size:14px}

/* Cards */
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;
  box-shadow: var(--shadow);
}
.card + .card{margin-top:0px}
.card h1,.card h2,.card h3{margin:0 0 10px}
.card h1{font-size:34px; letter-spacing:-.2px}
.card h2{font-size:24px}
.card h3{font-size:18px}

/* Headings outside cards */
h1,h2,h3{margin:0 0 10px}
h1{font-size:34px; letter-spacing:-.2px}
h2{font-size:24px}
h3{font-size:18px}

/* Text helpers */
.hint{color:var(--muted); font-size:14px; margin:6px 0 0}
.muted{color:var(--muted)}
.hr{height:1px;background:var(--border);margin:14px 0}

/* Buttons */
.btn, button, input[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  font: inherit;          /* makes <a> match <button> */
  line-height: 1;         /* huge source of mismatch */
  text-decoration: none;  /* anchors */
  white-space: nowrap;

  gap:8px;
  padding:10px 14px;
  border-radius:14px;

  border:1px solid rgba(11,30,58,.18);
  background:var(--navy);
  color:#fff;
  cursor:pointer;
  font-weight:700;
  text-decoration:none;
}

.btn:hover, button:hover, input[type="submit"]:hover{
  background:#0f2a52;
}
.btn.secondary{
  background:#fff;
  color:var(--navy);
  border:1px solid var(--border);
}
.btn.secondary:hover{ border-color: rgba(211,161,37,.55); color:var(--gold-dark); }

.btn.primary{
  background:var(--accent);
  color:#1a1406;
  border:1px solid rgba(0,0,0,.08);
}
.btn.primary:hover{ background:var(--accent-hover); }

.btn.small{padding:7px 10px; border-radius:12px; font-size:14px}
.btn.danger{background:#8a1e2a}
.btn.danger:hover{background:#6f1721}

/* Remove default button quirks (keep it looking like .btn) */
button.btn{
  appearance: none;
  -webkit-appearance: none;
  background: var(--navy);
}
button.btn:hover{
  background:#0f2a52;
}

/* Remove anchor focus/outline weirdness (optional) */
a.btn{ -webkit-tap-highlight-color: transparent; }

/* Forms */
.form{margin-top:10px}
.field{display:flex; flex-direction:column; gap:6px; margin:10px 0;}
label{font-weight:700; font-size:14px}
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="date"], input[type="time"], input[type="password"], select, textarea{
  width:100%;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
  outline:none;
}
textarea{resize:vertical; min-height:120px}
input:focus, select:focus, textarea:focus{
  border-color: rgba(211,161,37,.55);
  box-shadow: 0 0 0 4px rgba(211,161,37,.18);
}
.help{font-size:13px;color:var(--muted)}
.form-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}

/* Alerts */
.alert{
  padding:12px 14px;
  border-radius:16px;
  border:1px solid var(--border);
  margin:12px 0;
  background:#fff;
}
.alert-success{background:#1e1777ff; color:#b9a21dff}
.alert-warning{background:#1e1777ff; color:#55e032}
.alert-error{background:#1e1777ff; color:#ac120dff}

/* Tables */
.table-wrap{overflow:auto; border-radius:16px; border:1px solid var(--border); background:#fff}
table{border-collapse:collapse; width:100%; font-size:14px}
th, td{padding:10px 12px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top}
th{background:rgba(11,30,58,.04); font-weight:800}
tr:hover td{background:rgba(59,91,143,.06)}

/* Badges */
.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.badge.good{border-color:#bfe6c8;background:#f1fff4;color:#1e5a2c}
.badge.warn{border-color:#f1ddb0;background:#fff8e6;color:#6a4a06}
.badge.dark{border-color:rgba(255,255,255,.22); background:rgba(255,255,255,.10); color:#fff}

/* Icons (simple, font-based) */
.icon-star{color:var(--gold); font-weight:900}
.icon-pin{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;height:22px;
  border-radius:999px;
  border:1px solid rgba(211,161,37,.38);
  background: rgba(211,161,37,.14);
  color:var(--gold-dark);
  font-size:13px;
}

.t-stars{
  line-height: 1;
  display: flex;
  gap: 6px;
  align-items: center;
}

.t-stars svg{
  width: 18px;
  height: 18px;
  display: block;
}


/* Tooltip bubble icon */
.tip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;height:18px;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:12px;
  color:var(--muted);
  margin-left:6px;
  cursor:help;
  background:#fff;
}

/* Coupon card style + print */
.coupon{
  border:2px dashed rgba(211,161,37,.65);
  background: linear-gradient(180deg, #fff 0%, rgba(211,161,37,.06) 100%);
}

/* coupon Print styles */
@media print{
  body{background:#fff}
  .site-header,.site-footer,.nav-toggle,.site-nav,.btn,.no-print{display:none !important}
  .wrap{max-width:100%; padding:0}
  .card{box-shadow:none; border:1px solid #ccc}
  .coupon{border:2px dashed #888}
}

/* Admin theme helpers */
.admin-shell .site-header{
  background: linear-gradient(180deg, var(--navy) 0%, #0a2143 100%);
}
.admin-shell .site-nav a.active{
  background: rgba(255,255,255,.10);
  border-color: rgba(211,161,37,.30);
}

/* Small screens spacing */
@media (max-width: 420px){
  .brand{font-size:18px}
  .card{padding:14px}
  .btn{width:100%}
  .form-actions .btn{width:100%}
}

/* ===== Gallery (Admin + Public) helpers ===== */

/* Normalize .btn across <a>, <button>, <input> so sizes match */
.btn,
a.btn,
button.btn,
input.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
  font: inherit;
}

.btn:focus {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Admin “toolbar” layout */
.admin-toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}

/* Grid utilities for album/image cards */
.grid-cards {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.thumb{
  width:100%;
  aspect-ratio:16/10;
  object-fit:contain;              /* was: cover */
  background: rgba(0,0,0,.04);     /* gives a nice letterbox */
  border-radius:12px;
  display:block;
}

/* ===== Public carousel (only used if 2+ images) ===== */
.carousel {
  position: relative;
  max-width: 1000px;
}

.car-track {
  display: flex;
  gap: 12px;
  overflow: auto;
  scroll-snap-type: x mandatory;
  padding: 10px 44px 10px 44px;
  border-radius: 16px;
  -webkit-overflow-scrolling: touch;
}

.car-slide {
  min-width: 100%;
  scroll-snap-align: start;
}

.car-slide img{
  width:100%;
  height:auto;
  max-height:70vh;
  object-fit:contain;
  background: rgba(0,0,0,.04);
  border-radius:16px;
  display:block;
}

.car-cap {
  margin-top: 8px;
  opacity: .85;
}

.car-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
}

.car-btn.prev { left: 6px; }
.car-btn.next { right: 6px; }

.car-dots {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 10px;
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 0;
  opacity: .35;
  cursor: pointer;
}

.dot.active { opacity: 1; }

/* Make <a class="card"> behave like a proper card */
a.card{
  display:block;
  color: inherit;
  text-decoration: none;
}
a.card:hover{
  text-decoration:none;
}

.btn.hearted { filter: saturate(1.1); }

@media (max-width: 860px) {
  .car-slide img { height: 320px; }
}


.testimonials-page .add-comment textarea[name="comment"]{
  min-height: 25px;
  height: 44px;
  resize: vertical;
}


/* Locations strip */
.locations-strip{
  background:var(--navy);
  color:var(--gold);
  padding:28px 0 22px;
  border-top:1px solid rgba(255,255,255,.22);
  border-bottom:1px solid rgba(255,255,255,.22);
}

.locations-wrap{
  max-width:1100px;
  margin:0 auto;
  padding:0 18px;
  radius: 18px;
}

.locations-title{
  margin:0 0 16px;
  text-align:center;
  font-weight:700;
  font-size:clamp(18px, 2.2vw, 26px);
  letter-spacing:.2px;
}

.locations-grid{
  list-style:none;
  margin:0 auto;
  padding:0;
  max-width:980px;

  display:grid;
  grid-template-columns:repeat(5, minmax(140px, 1fr));
  gap:10px 22px;
  align-items:center;
}

.locations-grid li{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:600;
  font-size:14px;
  line-height:1.2;
  opacity:.95;
}

.locations-grid li::before{
  content:"";
  width:18px;
  height:18px;
  flex:0 0 18px;
  background-repeat:no-repeat;
  background-size:18px 18px;

  /* white outline circle + check */
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.2 12.3l2.4 2.4 5.2-5.3'/%3E%3C/svg%3E");
}

/* Responsive */
@media (max-width: 900px){
  .locations-grid{ grid-template-columns:repeat(3, minmax(140px, 1fr)); }
}
@media (max-width: 600px){
  .locations-grid{ grid-template-columns:repeat(2, minmax(140px, 1fr)); }
}
