/* ===== Brand palette (logo-matched) ===== */
:root{
  --title-top: 28px;
  --title-bottom: 18px;
  --royal:#59207d;      /* deep royal purple */
  --royal-2:#6d2b98;    /* lighter purple gradient stop */
  --ink:#2b1438;        /* deep text */
  --gold:#ffcf5b;       /* gold sparkles */
  --pink:#ff89c6;       /* accent pink */
  --card:#ffffff;
  --ring:rgba(255,207,91,.35);
  --max:1100px;
  --radius:18px;
  --shadow: 0 14px 40px rgba(89,32,125,.18);
}

html,body{height:100%}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:"Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:#f8efff;
  background:
    radial-gradient(100% 60% at 10% -10%, rgba(255,207,91,.12), transparent 50%),
    radial-gradient(80% 60% at 90% 0%, rgba(255,137,198,.10), transparent 55%),
    linear-gradient(180deg, var(--royal), var(--royal-2) 55%, #3d135a);
  background-attachment: fixed;
}

.container{max-width:var(--max); margin:0 auto; padding:0px}

/* ===== Header / Brand ===== */
.header-wrap{
  width:100%;
  position:sticky; top:0; z-index:50;
  background: linear-gradient(180deg, rgba(45,10,70,.75), rgba(45,10,70,.45));
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,207,91,.25);
}
.header.pro{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px;
}

/* Logo + wordmark */
.brand.pro{display:flex; align-items:center; gap:50px; text-decoration:none}
.brand-logo-wrap{
  position:relative; display:inline-grid; place-items:center; isolation:isolate;
}

.brand-logo {
  height: 180px; /* or even 140px for more impact */
  width: auto;
  display: block;
  vertical-align: middle;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.25));
}

/* Gold halo behind the logo (not a box) */
.brand-logo-wrap::before{
  content:"";
  position:absolute; z-index:-1; width:140%; height:140%;
  border-radius:50%;
  background:
    radial-gradient(closest-side, rgba(255,207,91,.45), rgba(255,207,91,0) 65%),
    radial-gradient(closest-side at 70% 30%, rgba(255,137,198,.25), rgba(255,137,198,0) 60%);
  filter: blur(10px);
  opacity:.9;
}

.brand-title{
  margin:0;
  font-family:"Marcellus", serif;
  font-size:38px;
  line-height:1.2; display:inline-block; padding-bottom:2px;
  background: linear-gradient(92deg, #fff, var(--gold));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 2px 14px rgba(255,207,91,.35);
  letter-spacing:.3px; white-space:nowrap;
}
.brand-title span{
  background:inherit;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color: transparent;
}

@media (max-width:1024px){
  .brand-title{ font-size:32px }
  .brand-logo{ height:68px }
}
@media (max-width:820px){
  .brand-title{ font-size:24px }
  .brand-logo{ height:52px }
  .brand.pro{ gap:12px }
}

/* Nav pills */
.nav.pro{display:flex; justify-content:flex-end; gap:10px; align-items:center}
.pill{
  --b:rgba(255,207,91,.35);
  --bg:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  padding:9px 14px; border-radius:999px;
  border:1px solid var(--b);
  background:var(--bg);
  text-decoration:none; color:#ffeefc; font-weight:600;
  box-shadow: 0 2px 10px rgba(0,0,0,.15);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s;
}
.pill::after{
  content:"✦"; position:absolute; right:10px; top:-8px; font-size:14px; color:var(--gold);
  opacity:0; transition:opacity .2s;
}
.pill:hover{transform:translateY(-1px); box-shadow:0 8px 24px rgba(0,0,0,.28); border-color:rgba(255,207,91,.6); background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06))}
.pill:hover::after{opacity:1}
.pill.active{
  background:linear-gradient(180deg, #ffdfa1, var(--gold));
  color:#3a1459; border-color:transparent;
  box-shadow:0 10px 28px rgba(255,207,91,.45);
}

/* Mobile nav */
.menu-toggle{display:none; background:none; border:0; color:#ffeefc; font-size:22px; line-height:1; padding:8px; cursor:pointer}
.nav-drawer{display:none; flex-direction:column; gap:10px; padding:10px 0 14px}
.nav-drawer.open{display:flex}
@media (max-width: 820px){
  .header.pro{grid-template-columns:auto auto auto}
  .nav.pro{display:none}
  .menu-toggle{display:inline-block}
}

/* ===== Generic components ===== */
img{max-width:100%; height:auto; border-radius:12px}
hr{border:0; border-top:1px solid rgba(255,255,255,.18); margin:18px 0}
.footer{margin-top:32px; padding:20px 0; color:#e9d7ff; font-size:14px}

/* Cards & hero */
.grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:18px}
.card{background:rgba(255,255,255,.06); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid rgba(255,255,255,.12)}
.card img{display:block; width:100%; height:230px; object-fit:cover}
.card-body{padding:14px 14px 16px; color:#f3eaff}
.card h3{margin:0 0 6px; font-family:"Marcellus", serif}
.card p{margin:0 0 10px; color:#e9d7ff}

.hero{
  margin:24px auto 28px; padding:32px 24px; border-radius:var(--radius);
  background: linear-gradient(135deg, rgba(255,207,91,.12), rgba(255,137,198,.10));
  box-shadow: var(--shadow); position:relative; overflow:hidden;
}
.hero h2{font-family:"Marcellus", serif; font-size:40px; margin:0 0 8px}
.cta{display:inline-block; padding:12px 18px; border-radius:14px; border:1px solid rgba(255,207,91,.5);
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06)); color:#fff; text-decoration:none; font-weight:600}
.cta.primary{background:linear-gradient(180deg, #ffdfa1, var(--gold)); color:#3a1459; border-color:transparent}
.cta + .cta{margin-left:10px}

/* ——— Fancy hero ——— */
.hero.pro{
  position:relative;
  padding:42px 28px 34px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(120% 120% at 10% 0%, rgba(255,207,91,.12), rgba(255,137,198,.10) 40%, transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow:
    0 18px 50px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.18);
  overflow:hidden;
}

/* soft edge glow */
.hero.pro::before{
  content:"";
  position:absolute; inset:-2px;
  border-radius:26px;
  background:radial-gradient(120% 140% at 0% 0%, rgba(255,207,91,.22), rgba(255,137,198,.18) 35%, transparent 70%);
  pointer-events:none;
  mix-blend-mode:screen;
}

/* subtle vignette so content pops */
.hero.pro::after{
  content:"";
  position:absolute; inset:0; border-radius:24px;
  background: radial-gradient(90% 120% at 50% 30%, transparent 60%, rgba(0,0,0,.12) 100%);
  pointer-events:none;
}

.hero.pro h2{
  font-family:"Marcellus", serif;
  font-size:44px; line-height:1.1; margin:0 0 10px;
  letter-spacing:.2px;
  text-shadow: 0 2px 14px rgba(255,207,91,.25);
}
@media (max-width:820px){ .hero.pro h2{ font-size:34px } }

.hero.pro p{ margin:0 0 18px; max-width:70ch; color:#f5eefe }

.cta-row{ display:flex; gap:12px; flex-wrap:wrap }

/* button sparkle hover */
.cta{
  position:relative; overflow:hidden;
}
.cta.primary{
  background: linear-gradient(180deg, #ffdfa1, var(--gold));
  color:#3a1459; border-color:transparent;
}
.cta.primary::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(120deg, transparent 0, rgba(255,255,255,.6) 30%, transparent 60%);
  transform: translateX(-120%);
  transition: transform .6s ease;
  mix-blend-mode:overlay;
}
.cta.primary:hover::after{ transform: translateX(120%) }

/* — Decorations — */
.hero-decors{ position:absolute; inset:0; pointer-events:none; }
.orb{
  position:absolute; width:260px; height:260px; border-radius:50%;
  filter: blur(30px);
  opacity:.35;
}
.orb-1{
  left:-60px; top:-80px;
  background: radial-gradient(circle at 30% 30%, rgba(255,207,91,.55), rgba(255,137,198,.30), transparent 70%);
  animation: float 9s ease-in-out infinite;
}
.orb-2{
  right:-80px; bottom:-120px;
  background: radial-gradient(circle at 70% 70%, rgba(255,137,198,.45), rgba(255,207,91,.30), transparent 70%);
  animation: float 11s ease-in-out infinite reverse;
}

.twinkle{
  position:absolute; font-size:18px; color:var(--gold);
  text-shadow:0 0 12px rgba(255,207,91,.6);
  opacity:.85; animation: twinkle 2.4s infinite ease-in-out;
}
.t1{ left:22px;  top:18px;  animation-delay:.1s }
.t2{ right:300px;  top:28px;  animation-delay:.6s }
.t3{ right:60px; top:28px;  animation-delay:.9s }
.t4{ right:24px; bottom:22px; animation-delay:1.3s }
.t5{ left:80px;  bottom:34px; animation-delay:1.8s }

@keyframes twinkle{
  0%,100%{ transform:scale(.8); opacity:.4 }
  50%{ transform:scale(1.15); opacity:1 }
}
@keyframes float{
  0%,100%{ transform: translateY(0) }
  50%{ transform: translateY(-10px) }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .orb, .twinkle, .cta.primary::after{ animation:none }
}


/* A11y helper */
.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}

/* Layout */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:20px;
  margin-top:18px;
}

/* Enchanted card */
.feature-card.pro{
  position:relative;
  padding:14px 14px 16px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(120% 120% at 10% 0%, rgba(255,207,91,.10), rgba(255,137,198,.08) 40%, transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow:
    0 14px 40px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.14);
  overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.feature-card.pro::before{
  content:"";
  position:absolute; inset:-1px; border-radius:18px;
  background:radial-gradient(120% 140% at 0% 0%, rgba(255,207,91,.20), rgba(255,137,198,.15) 35%, transparent 70%);
  pointer-events:none; mix-blend-mode:screen;
}
.feature-card.pro:hover{
  transform: translateY(-4px);
  box-shadow: 0 22px 60px rgba(0,0,0,.28);
  border-color: rgba(255,207,91,.28);
}

/* Image area */
.feature-media{
  height:180px; border-radius:12px; overflow:hidden; margin-bottom:12px;
  background: rgba(0,0,0,.08);
}
.feature-media img{ width:100%; height:100%; object-fit:cover; display:block }

.feature-media img.fit-all { width:100%; height:100%; object-fit: cover; object-position: 40% 14%; display:block }

/* Text */
.feature-card.pro h3{
  margin:4px 0 6px; font-family:"Marcellus", serif; font-size:20px;
}
.feature-card.pro p{ margin:0; color:#efe2ff }

/* Sparkles */
.feature-decors{ position:absolute; inset:0; pointer-events:none }
.feature-card.pro .twinkle{
  position:absolute; right:14px; top:12px; color:var(--gold);
  text-shadow:0 0 10px rgba(255,207,91,.7);
  animation: twinkle 2.2s infinite ease-in-out;
}
@keyframes twinkle{
  0%,100%{ transform:scale(.8); opacity:.4 }
  50%{ transform:scale(1.15); opacity:1 }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .feature-card.pro .twinkle{ animation:none }
}

/* ——— Footer base ——— */
.site-footer{
  margin-top:32px;
  background:transparent;   /* no accidental bands behind it */
}

/* Full-bleed dark band behind contacts + socials */
.footer-band {
  background-color: #2a014f;  /* keep your dark band */
  border-top: 0;              /* remove the thin line causing the “cut” */
  box-shadow: none;           /* remove inset shadow that looks like a color shift */
  padding: 18px 0 16px;       /* keep your spacing */
}


/* Inner layout for the band */
.footer-band-inner{
  display:grid;
  gap:14px;
  justify-items:center;
  padding:0 16px;
}

/* Contacts row */
.contact-grid.simple{
  display:grid;
  grid-auto-flow:column;
  gap:14px;
  justify-content:center;
  align-items:center;
}
@media (max-width:720px){
  .contact-grid.simple{ grid-auto-flow:row }
}

.contact{
  display:flex; align-items:center; gap:12px;
  padding:10px 14px;
  border-radius:12px;
  text-decoration:none; color:#f6eefe;
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  transition: transform .15s ease, border-color .15s ease;
}
.contact:hover{ transform:translateY(-1px); border-color:rgba(255,207,91,.28) }
.contact .icon{
  width:34px; height:34px; border-radius:10px;
  display:grid; place-items:center;
  background: radial-gradient(circle at 40% 30%, rgba(255,207,91,.25), rgba(255,137,198,.18));
  color:var(--gold);
}
.contact .text strong{ display:block; font-weight:600; line-height:1.1 }
.contact .text em{ display:block; font-style:normal; opacity:.9 }

/* Socials */
.socials.centered{
  display:flex; gap:12px; justify-content:center; align-items:center;
}
.social{
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center;
  color:#ffeedb;
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  transition: transform .15s ease, border-color .15s ease;
}
.social:hover{ transform:translateY(-1px); border-color:rgba(255,207,91,.35) }

/* Legal strip (lighter, separate from the band) */
.legal{
  text-align:center;
  padding:14px 0 28px;
  border-top:1px solid rgba(255,255,255,.12);
}
.legal .disclaimer{ margin:0; font-size:.92rem; opacity:.85 }
.legal .copyright{ margin:4px 0 0; font-size:.86rem; opacity:.7 }

/* ===== Princesses page (scoped + high specificity) ===== */
.page-princesses .feature-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 22px;
  align-items: stretch;
}

/* Make every card equal height and stack nicely */
.page-princesses .feature-card.pro{
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Square frame; remove any fixed heights from earlier rules */
.page-princesses .feature-card.pro .feature-media{
aspect-ratio: 1 / 1;
  width:100%;
  height:auto !important;
  border-radius:14px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background: radial-gradient(90% 80% at 50% 40%, rgba(255,255,255,.10), rgba(255,255,255,.03));
}

/* Show entire image, same scale for all, no cropping */
.page-princesses .feature-card.pro .feature-media img{
  width:100% !important;
  height:100% !important;
  object-fit: cover !important;
  object-position: var(--focus, 50% 50%);  /* still works when there IS overflow */

  /* NEW: allow per‑card nudge even when there is no overflow */
  transform: translateY(var(--shiftY, 0));
  will-change: transform; /* smooth */
}

/* Typo rhythm + consistent button placement */
.page-princesses .feature-card.pro h3{
  margin:12px 0 6px;
  font-size:20px;
}

.page-princesses .feature-card.pro .summary{
  margin:0;
  color:#efe2ff;
  min-height:72px;                      /* keeps rows tidy; tweak if needed */
}

.page-princesses .feature-card.pro .cta-row{
  margin-top: auto;        /* pushes the row to the bottom of the card */
  padding-top: 16px;       /* space between summary and button */
  display: flex;
  justify-content: center; /* center the button */
}

.page-princesses .feature-card.pro .cta-row .cta{
  min-width:120px;
  text-align: center;
}

@media (max-width: 680px){
  .page-princesses .feature-grid{ gap:18px; }
  .page-princesses .feature-card.pro .summary{ min-height:60px; }
}

/* ===== Enquiry page — full revamp ===== */
.enquiry {
  --form-width: 800px;
  margin: 24px 0 36px; 
}
.enquiry h1 {
  max-width: var(--form-width);
  font-family: "Marcellus", serif;
  font-size: 32px;
  margin: 0 auto 14px;
  letter-spacing: .2px;
  text-shadow: 0 2px 14px rgba(255, 207, 91, .25);
  text-align: center;
}

/* Match heading width to form */
.enquiry-title {
  max-width: 800px;        /* same as your form's width */
  margin: 0 auto 20px;     /* centers block & adds spacing below */
  text-align: center;      /* centers the text itself */
  font-family: "Marcellus", serif;
  font-size: 32px;
  letter-spacing: .2px;
  text-shadow: 0 2px 14px rgba(255, 207, 91, .25);
}

.enquiry .enquiry-title,
.enquiry #enquiry-form {
  max-width: var(--form-width);
  margin-left: auto;
  margin-right: auto;
}

/* Glassy card */
.enquiry #enquiry-form{
  max-width: var(--form-width);
  margin: 0 auto;
  padding: 22px 18px;
  border-radius: 20px;
  border:1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(110% 120% at 0% 0%, rgba(255,207,91,.10), rgba(255,137,198,.08) 35%, transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow:
    0 18px 50px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.16);
  display: grid;
  gap: 14px;
}

/* Grid helpers */
.enquiry #enquiry-form .grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 720px){
  .enquiry #enquiry-form{ padding:16px 14px }
  .enquiry #enquiry-form .grid-2{ grid-template-columns:1fr }
}

/* Fields */
.enquiry #enquiry-form .field{ display:block; }
.enquiry #enquiry-form label{
  display:block;
  font-weight:600;
  margin: 0 0 6px;
}

/* Inputs */
.enquiry #enquiry-form input,
.enquiry #enquiry-form select,
.enquiry #enquiry-form textarea{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(30,10,50,.35);
  color:#fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .06s ease;
}

/* tidy native controls */
.enquiry #enquiry-form select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image: linear-gradient(45deg,transparent 50%, rgba(255,255,255,.8) 50%),
                    linear-gradient(135deg, rgba(255,255,255,.8) 50%, transparent 50%);
  background-position: calc(100% - 20px) 52%, calc(100% - 14px) 52%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right:36px;
}
.enquiry #enquiry-form input::placeholder,
.enquiry #enquiry-form textarea::placeholder{ color:rgba(255,255,255,.70) }

/* Focus ring = gold magic */
.enquiry #enquiry-form input:focus,
.enquiry #enquiry-form select:focus,
.enquiry #enquiry-form textarea:focus{
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255,207,91,.28);
  background: rgba(30,10,50,.48);
}

/* Error text (shown by JS) */
.enquiry #enquiry-form .err{
  display:block;
  color:#ffd1d1;
  font-size:.9rem;
  min-height:1.1em;
  margin-top:6px;
}

/* Checkbox — cute rounded + sparkle check */
.enquiry #enquiry-form .check{
  display:flex; align-items:center; gap:10px; margin:4px 2px 2px;
}

.enquiry #enquiry-form .check a {
  color: var(--gold);
  text-decoration: underline;
  text-decoration-color: rgba(255, 207, 91, 0.5);
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.enquiry #enquiry-form .check a:hover {
  color: #ffd86b; /* slightly lighter gold on hover */
  text-decoration-color: #ffd86b;
}

.enquiry #enquiry-form .check input{
  appearance:none; width:20px; height:20px;
  border-radius:7px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(30,10,50,.35);
  display:grid; place-items:center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  cursor:pointer;
}
.enquiry #enquiry-form .check input:focus{ box-shadow:0 0 0 3px rgba(255,207,91,.28) }
.enquiry #enquiry-form .check input:checked{
  border-color:transparent;
  background: linear-gradient(180deg, #ffdfa1, var(--gold));
  color:#3a1459;
}
.enquiry #enquiry-form .check input:checked::after{
  content:"✦"; font-size:14px; line-height:1;
}

/* Actions row / submit */
.enquiry #enquiry-form .actions{
  display: flex;
  gap: 12px;
  justify-content: center; /* centered instead of flex-start */
  margin-top: 6px;
}
.enquiry #enquiry-form .cta{
  padding:12px 18px;
  border-radius:14px;
  font-weight:700;
  box-shadow: 0 10px 28px rgba(255,207,91,.35);
  transform: translateY(0);
  cursor: pointer;
}

.enquiry #enquiry-form .cta:hover {
  filter: brightness(1.05); /* slight glow effect */
}

.enquiry #enquiry-form .cta:active {
  transform: translateY(1px);
}

.enquiry #enquiry-form .cta[disabled] {
  opacity: .6;
  pointer-events: none;
  cursor: default;
}

.enquiry #enquiry-form .cta:active{ transform: translateY(1px) }
.enquiry #enquiry-form .cta[disabled]{ opacity:.6; pointer-events:none }

/* Modal (kept consistent with site style) */
.modal{
  position:fixed; inset:0; display:none; place-items:center;
  background: rgba(0,0,0,.45); z-index:1000; padding:14px;
}
.modal[aria-hidden="false"]{ display:grid; }
.modal-card{
  max-width:460px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.16);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  box-shadow: 0 18px 60px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.16);
  padding:18px;
  text-align:center;
}
.modal-card h3{ font-family:"Marcellus",serif; margin:0 0 8px }

.privacy-policy {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
  color: #fff;
}

.privacy-policy h1, .privacy-policy h2 {
  font-family: "Marcellus", serif;
  text-shadow: 0 2px 14px rgba(255, 207, 91, .25);
}

.privacy-policy p, .privacy-policy li {
  line-height: 1.6;
}

.privacy-policy a {
  color: var(--gold);
  text-decoration: underline;
}


/* ===== Reviews ===== */
.reviews { margin: var(--title-top) 0 40px; position:relative; }
.reviews .muted{ opacity:.8; text-align:center; }

.reviews-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  align-items:start;
}

.review-card{
  position:relative;
  padding:18px 16px 16px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(120% 120% at 10% 0%, rgba(255,207,91,.10), rgba(255,137,198,.08) 40%, transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow: 0 14px 40px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.14);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  display:flex;
  flex-direction:column;
  min-height: 220px;
}

.review-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 22px 60px rgba(0,0,0,.28);
  border-color: rgba(255,207,91,.26);
}

/* Stars row */
.review-stars{ display:flex; gap:4px; align-items:center; margin:4px 0 10px; }
.review-stars .star{ width:18px; height:18px; opacity:.45; filter: drop-shadow(0 1px 3px rgba(0,0,0,.25)); }
.review-stars .star.filled{ opacity:1; fill: var(--gold); }

/* Quote: clamp by default, expand on toggle */
.review-quote{
  margin: 2px 0 10px;
  font-size: 18px;
  line-height: 1.55;
  color:#fff;
}

/* Clamp: ~7 lines on desktop, fewer on small screens */
.review-quote.clamp{
  display:-webkit-box;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

@media (max-width: 700px){
  .review-quote.clamp{ -webkit-line-clamp: 6; }
}

/* Toggle button */
.review-more{
  align-self:flex-start;
  margin: -2px 0 8px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
  color:#fff;
  font-weight:600;
  cursor:pointer;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.review-more:hover{
  transform: translateY(-1px);
  border-color: rgba(255,207,91,.45);
  box-shadow: 0 8px 20px rgba(0,0,0,.22);
}

/* Author pinned to the bottom so cards align nicely */
.review-author{
  margin-top:auto;
  opacity:.85;
  font-weight:600;
}


/* ===== Availability Page Styling ===== */
.availability-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 20px;
  text-align: center;
}

.availability-container h1 {
  font-family: "Marcellus", serif;
  font-size: 38px;
  color: var(--gold, #ffcf5b);
  text-shadow: 0 2px 14px rgba(255, 207, 91, 0.35);
  margin-bottom: 20px;
}

/* ===== FullCalendar Custom Theme ===== */
.fc {
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  border-radius: 16px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 10px 40px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.12);
}

.fc-toolbar-title {
  font-family: "Marcellus", serif;
  font-size: 24px;
  color: var(--gold, #ffcf5b);
}

.fc-button {
  background: rgba(255, 207, 91, 0.9);
  color: #2e1345;
  font-weight: bold;
  border-radius: 10px;
  border: none;
  padding: 6px 12px;
  transition: all 0.25s ease;
}
.fc-button:hover {
  background: var(--gold, #ffcf5b);
  box-shadow: 0 0 12px rgba(255, 207, 91, 0.8);
}

.fc-daygrid-day {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  transition: background 0.2s ease;
}
.fc-daygrid-day:hover {
  background: rgba(255,207,91,0.08);
}

/* ===== Booked Day Highlight ===== */
.fc-daygrid-day.fc-day-today {
  background: rgba(255, 207, 91, 0.15);
}
.fc-bg-event {
  background: repeating-linear-gradient(
    45deg,
    rgba(255, 207, 91, 0.3),
    rgba(255, 207, 91, 0.3) 10px,
    rgba(255, 255, 255, 0.08) 10px,
    rgba(255, 255, 255, 0.08) 20px
  ) !important;
  border-radius: 6px;
  animation: sparkleMove 6s linear infinite;
}

@keyframes sparkleMove {
  0% { background-position: 0 0; }
  100% { background-position: 40px 40px; }
}

/* Make events stand out more if shown as blocks */
.fc-event {
  background: var(--gold, #ffcf5b) !important;
  color: #2e1345 !important;
  font-weight: bold;
  border-radius: 6px;
}

/* Header row background + readable weekday text */
.fc .fc-col-header, 
.fc .fc-col-header-cell {
  background: rgba(255,255,255,.88);           /* light band behind day names */
}

.fc .fc-col-header-cell-cushion{
  color: var(--ink, #2b1438);                   /* your deep purple */
  font-weight: 700;
  text-shadow: none;                            /* keep it crisp on light bg */
}

/* ===== Gold page titles (Enquire + Reviews) ===== */
.enquiry .enquiry-title,
.reviews h1{
  /* width + centering to match your page blocks */
  max-width: 800px;               /* adjust if your page uses a different width */
  margin: 0 auto 14px;
  text-align: center;

  /* gold look */
  font-family: "Marcellus", serif;
  font-size: 38px;
  color: var(--gold, #ffcf5b);
  text-shadow: 0 2px 14px rgba(255,207,91,.35);
  letter-spacing: .2px;
}

/* Smaller screens */
@media (max-width: 700px){
  .enquiry .enquiry-title,
  .reviews h1{ font-size: 32px; }
}

.page-title,
.availability-container > h1,
.enquiry .enquiry-title,
.reviews h1{
  font-family:"Marcellus", serif;
  font-size:38px;
  color: var(--gold, #ffcf5b);
  text-shadow: 0 2px 14px rgba(255,207,91,.35);
  text-align:center;
  margin: var(--title-top) auto var(--title-bottom);
}

@media (max-width: 700px){
  .page-title,
  .availability-container > h1,
  .enquiry .enquiry-title,
  .reviews h1{ font-size:32px }
}



