@import url("https://fonts.googleapis.com/css2?family=Limelight&family=Montserrat:wght@400;500;600;700;800&display=swap");

:root{
  --bg:#f8eedb;
  --panel:#fff7e9;
  --panel-2:#f2dfbd;
  --ink:#302018;
  --muted:#684f3d;
  --gold:#b9822f;
  --gold-2:#7a4d1a;
  --jade:#52786f;
  --burgundy:#8b2f2f;
  --cream:#fffaf0;
  --line:rgba(120,77,26,.20);
  --line-strong:rgba(120,77,26,.34);
  --shadow:0 22px 55px rgba(92,58,23,.16);
  --radius:24px;
  --radius-sm:18px;
  --container:min(1240px, calc(100% - 32px));
  --font-display:"Limelight", "Copperplate", "Cinzel Decorative", Georgia, serif;
  --font-body:"Montserrat", Arial, Helvetica, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(184,130,47,.18), transparent 28%),
    radial-gradient(circle at 85% 8%, rgba(82,120,111,.13), transparent 26%),
    linear-gradient(180deg, #fff8eb 0%, #f8ecd6 48%, #eedbbd 100%);
  font-family:var(--font-body);
  line-height:1.65;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(135deg, rgba(122,77,26,.045) 25%, transparent 25%) 0 0/34px 34px,
    linear-gradient(225deg, rgba(82,120,111,.035) 25%, transparent 25%) 0 0/34px 34px,
    repeating-linear-gradient(90deg, rgba(122,77,26,.04) 0, rgba(122,77,26,.04) 1px, transparent 1px, transparent 96px);
  opacity:.45;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.container{width:var(--container);margin-inline:auto}
.topbar{
  position:sticky; top:0; z-index:40;
  background:rgba(255,250,242,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  box-shadow:0 8px 28px rgba(92,58,23,.08);
}
.nav{
  display:flex; justify-content:space-between; align-items:center;
  gap:16px; padding:14px 0;
}
.brand{display:flex; align-items:center; gap:14px; min-width:0}
.brand-medallion{
  width:58px;
  height:58px;
  min-width:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(180,125,45,.55);
  color:#fff7df;
  background:
    radial-gradient(circle at 35% 25%, #f4d28a 0%, #c99135 42%, #8d5b1f 100%);
  box-shadow:
    0 8px 18px rgba(95,61,20,.22),
    inset 0 0 0 3px rgba(255,255,255,.16);
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:-0.04em;
  line-height:1;
  font-family: Georgia, "Times New Roman", serif;
  text-shadow:0 2px 4px rgba(0,0,0,.28);
}.brand-copy strong{
  display:block; color:var(--gold-2); letter-spacing:.08em; text-transform:uppercase; font-size:.95rem;
}
.brand-copy span{display:block; color:var(--muted); font-size:.82rem}
.nav-links{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px}
.nav-links a{
  color:var(--muted); padding:8px 12px; border-radius:999px; transition:.2s ease; font-size:.96rem;
}
.nav-links a:hover,.nav-links a.active{color:#fffaf0; background:linear-gradient(180deg, var(--jade), #365c54)}
.page-wrap{padding:28px 0 70px}
.card{
  position:relative; background:linear-gradient(180deg, rgba(255,252,246,.98), rgba(251,242,225,.98));
  border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;
}
.card::after{
  content:""; position:absolute; inset:14px; border:1px solid rgba(122,77,26,.16); border-radius:18px; pointer-events:none;
}
.shell{padding:34px}
.page-hero{
  display:grid; grid-template-columns:1.12fr .88fr; gap:24px; align-items:stretch; margin-bottom:24px;
}
.hero-copy{min-height:100%; display:flex; flex-direction:column; justify-content:center}
.poster-hero{
  min-height:100%; position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); min-height:560px;
  box-shadow:var(--shadow);
}
.poster-hero img{width:100%; height:100%; object-fit:cover; filter:saturate(1.05) contrast(1.03) brightness(1.05)}
.poster-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(48,32,24,.04) 0%, rgba(48,32,24,.10) 48%, rgba(48,32,24,.36) 100%);
  display:flex; align-items:flex-end;
}
.poster-content{padding:34px; width:100%; color:#fffaf0; text-shadow:0 2px 12px rgba(48,32,24,.55)}
.poster-content p,.poster-content span,.poster-content h2{color:#fffaf0}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:999px;
  border:1px solid var(--line-strong); color:var(--gold-2); text-transform:uppercase;
  letter-spacing:.14em; font-size:.74rem; margin-bottom:18px;
  background:rgba(255,250,241,.78);
}
h1,h2{margin:0 0 12px; line-height:.98; font-weight:400; color:var(--ink); font-family:var(--font-display); letter-spacing:.018em}
h3,h4{margin:0 0 12px; line-height:1.08; font-weight:800; color:var(--ink); font-family:var(--font-body)}
h1{font-size:clamp(2.9rem, 4.8vw, 5.2rem)}
h2{font-size:clamp(2rem, 3vw, 3.1rem)}
h3{font-size:1.65rem}
p,li{color:var(--muted)}
.lede{font-size:1.08rem; max-width:62ch}
.btn-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:24px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 20px;
  border-radius:999px; border:1px solid var(--gold); cursor:pointer; transition:.2s ease;
  font-weight:800; font-family:var(--font-body);
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(180deg, #d6a75d, #a76f25); color:#fff8e8; box-shadow:0 10px 22px rgba(122,77,26,.16)}
.btn-secondary{color:var(--jade); background:rgba(255,250,241,.82); border-color:rgba(82,120,111,.42)}
.quick-stats,.grid-2,.grid-3,.download-grid,.event-grid,.instructor-grid,.mini-gallery{display:grid; gap:18px}
.quick-stats{grid-template-columns:repeat(3, minmax(0,1fr)); margin-top:26px}
.grid-2{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid-3,.instructor-grid{grid-template-columns:repeat(3, minmax(0,1fr))}
.download-grid,.event-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
.stat,.feature,.panel,.download-card,.event-card,.timeline-item,.contact-panel,.instructor-card{
  padding:22px; border-radius:var(--radius-sm); background:rgba(255,255,255,.52); border:1px solid rgba(122,77,26,.16);
  box-shadow:0 12px 28px rgba(92,58,23,.07);
}
.stat strong{display:block; color:var(--gold-2); font-size:1.06rem; margin-bottom:4px}
.section{margin-top:24px}
.section-head{display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:20px}
.section-head p{max-width:68ch; margin:0}
.media-card{
  overflow:hidden; border-radius:var(--radius-sm); border:1px solid rgba(122,77,26,.16); background:#fffaf0;
}
.media-card img{width:100%; height:100%; min-height:260px; object-fit:cover}
.media-stack{display:grid; gap:18px}
.kicker{
  display:block; color:var(--burgundy); text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; margin-bottom:10px;
}
.table-wrap{overflow:auto; border-radius:18px; border:1px solid rgba(122,77,26,.18); background:rgba(255,255,255,.44)}
table{width:100%; border-collapse:collapse; background:rgba(255,250,241,.82)}
th,td{padding:15px 16px; text-align:left; border-bottom:1px solid rgba(122,77,26,.12)}
th{color:var(--gold-2); background:rgba(184,130,47,.10)}
.timeline{display:grid; gap:14px}
.timeline-item{display:grid; grid-template-columns:130px 1fr; gap:18px; align-items:start}
.day-pill{color:var(--burgundy); font-weight:700; text-transform:uppercase; letter-spacing:.08em}
.form-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px}
form{display:grid; gap:14px}
label{display:grid; gap:8px; color:var(--gold-2); font-weight:700}
input,textarea,select{
  width:100%; padding:14px 15px; border-radius:14px; border:1px solid rgba(122,77,26,.24);
  background:rgba(255,255,255,.72); color:var(--ink); font:inherit;
}
textarea{min-height:150px; resize:vertical}
.flash-wrap{display:grid; gap:10px; margin-bottom:18px}
.flash{padding:14px 16px; border-radius:14px; border:1px solid rgba(122,77,26,.18)}
.flash.success{background:rgba(82,120,111,.12); color:#315249}
.flash.error{background:rgba(139,47,47,.11); color:#7b2929}
.footer{margin-top:28px; color:var(--muted)}
.footer .shell{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap}
.hero-subline{color:var(--gold-2); font-size:1.02rem}
@media (max-width: 1024px){
  .page-hero,.grid-3,.instructor-grid,.grid-2,.download-grid,.event-grid,.quick-stats{grid-template-columns:1fr}
  .section-head{flex-direction:column; align-items:start}
}
@media (max-width: 720px){
  .nav{flex-direction:column; align-items:flex-start}
  .nav-links{justify-content:flex-start}
  .shell{padding:22px}
  .poster-hero{min-height:420px}
  .timeline-item,.form-grid{grid-template-columns:1fr}
  h1{font-size:2.55rem}
}


/* Light Speakeasy overrides for image-backed cards */
.home-bg-card > .card.shell,
.hotel-bg-card > .card.shell,
.schedule-card-bg > .card.shell,
.tell-friend-hero,
.enquiry-card {
  color: #302018;
}
.home-bg-card .feature,
.home-bg-card .panel,
.home-bg-card .stat,
.hotel-bg-card .bullet-card,
.hotel-bg-card .panel,
.hotel-bg-card .download-card,
.hotel-bg-card table,
.schedule-card-bg .timeline-item,
.schedule-card-bg .feature,
.schedule-card-bg .download-card,
.enquiry-card form {
  background: rgba(255,250,240,.70) !important;
  border-color: rgba(122,77,26,.22) !important;
  color: #302018;
}
.home-bg-card h1,.home-bg-card h2,.home-bg-card h3,.home-bg-card p,.home-bg-card span,
.hotel-bg-card h1,.hotel-bg-card h2,.hotel-bg-card h3,.hotel-bg-card p,.hotel-bg-card span,.hotel-bg-card td,.hotel-bg-card th,.hotel-bg-card small,
.schedule-card-bg h1,.schedule-card-bg h2,.schedule-card-bg h3,.schedule-card-bg p,.schedule-card-bg span,
.enquiry-card h2,.enquiry-card label {
  text-shadow: 0 1px 8px rgba(255,255,255,.55) !important;
}


/* Light Art-Deco / Speakeasy typography pass */
.brand-copy strong,
.eyebrow,
.kicker,
.day-pill,
th,
.btn,
label,
.nav-links a {
  font-family: var(--font-body);
}

.brand-copy strong {
  letter-spacing: .12em;
}

.hero-copy h1,
.page-hero h1,
.section h2,
.poster-content h2 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: .02em;
}

p, li, input, textarea, select, td, small {
  font-family: var(--font-body);
}

/* Remove the hazy/fogged look from content blocks */
.stat,
.feature,
.panel,
.download-card,
.event-card,
.timeline-item,
.contact-panel,
.instructor-card,
.bullet-card,
.form-card,
.check-row {
  background: rgba(255, 250, 241, .90);
  border-color: rgba(122, 77, 26, .22);
  box-shadow: 0 10px 26px rgba(92, 58, 23, .08);
  backdrop-filter: none;
}

.home-bg-card .feature,
.home-bg-card .panel,
.home-bg-card .stat,
.hotel-bg-card .bullet-card,
.hotel-bg-card .panel,
.hotel-bg-card .download-card,
.hotel-bg-card table,
.schedule-card-bg .timeline-item,
.schedule-card-bg .feature,
.schedule-card-bg .download-card {
  background: rgba(255, 250, 241, .88) !important;
  border-color: rgba(122, 77, 26, .24) !important;
  backdrop-filter: none !important;
}

/* Keep text readable without the cloudy strip effect */
.home-bg-card h1,
.home-bg-card h2,
.home-bg-card h3,
.home-bg-card p,
.home-bg-card span,
.hotel-bg-card h1,
.hotel-bg-card h2,
.hotel-bg-card h3,
.hotel-bg-card p,
.hotel-bg-card span,
.hotel-bg-card td,
.hotel-bg-card th,
.hotel-bg-card small,
.schedule-card-bg .timeline-item h3,
.schedule-card-bg .timeline-item p,
.schedule-card-bg .feature h3,
.schedule-card-bg .download-card h3,
.schedule-card-bg .download-card p {
  text-shadow: none !important;
}

/* Sharper 1920s photo treatment: less mist, more warm contrast */
.poster-hero img,
.home-bg-card > .card.shell::before,
.hotel-bg-card > .card.shell::before,
.schedule-card-bg > .card.shell::before {
  filter: sepia(.10) saturate(1.10) contrast(1.07) brightness(1.03) !important;
}

.home-bg-card > .card.shell::after,
.hotel-bg-card > .card.shell::after,
.schedule-card-bg > .card.shell::after {
  background:
    linear-gradient(90deg, rgba(255, 246, 229, .20), rgba(255, 246, 229, .06)),
    radial-gradient(circle at top right, rgba(184, 130, 47, .18), transparent 48%) !important;
}

/* On image hero cards, give text a neat Art-Deco plaque instead of broad fog */
.hero-copy > .eyebrow:first-child,
.home-bg-card .hero-copy > .eyebrow:first-child {
  background: rgba(255, 250, 241, .88);
}

.home-bg-card .hero-copy > h1,
.home-bg-card .hero-copy > .hero-subline,
.home-bg-card .hero-copy > .lede {
  max-width: 850px;
  text-shadow: 0 2px 10px rgba(255, 250, 241, .45);
}




/* =========================================================
   SUBTLE GLOBAL READABILITY TWEAK
   Keeps the light Art Deco style, but reduces the heavy
   plaque effect from the previous version.
   ========================================================= */

:root{
  --readable-paper: rgba(255, 250, 240, .72);
  --readable-paper-soft: rgba(255, 250, 240, .62);
  --readable-ink: #2b1b14;
  --readable-muted: #4f3b30;
  --readable-border: rgba(122, 77, 26, .18);
}

/* Keep photo sections brighter without washing them out */
.home-bg-card > .card.shell::after,
.hotel-bg-card > .card.shell::after,
.schedule-card-bg > .card.shell::after {
  background:
    linear-gradient(90deg, rgba(255, 246, 224, .34), rgba(255, 246, 224, .10)),
    radial-gradient(circle at top right, rgba(205, 151, 63, .10), transparent 45%) !important;
}

.tell-friend-bg,
.enquiry-bg,
.poster-overlay {
  background: linear-gradient(180deg, rgba(255, 246, 224, .12), rgba(32, 20, 14, .16)) !important;
}

.home-bg-card > .card.shell::before,
.hotel-bg-card > .card.shell::before,
.schedule-card-bg > .card.shell::before,
.poster-hero img {
  filter: sepia(.06) saturate(1.06) contrast(1.06) brightness(1.04) !important;
}

/* Large text: readable but no solid blocky highlight */
.home-bg-card h1,
.home-bg-card h2,
.hotel-bg-card h1,
.hotel-bg-card h2,
.schedule-card-bg h1,
.schedule-card-bg h2,
.tell-friend-hero h1,
.enquiry-card h2,
.poster-content h2 {
  color: var(--readable-ink) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.72),
    0 3px 12px rgba(255,250,240,.62),
    0 10px 28px rgba(32,20,14,.16) !important;
  background: transparent !important;
  box-decoration-break: initial;
  -webkit-box-decoration-break: initial;
  padding: 0 !important;
  line-height: 1.05 !important;
}

/* Small labels remain softly backed for legibility */
.home-bg-card .eyebrow,
.hotel-bg-card .eyebrow,
.schedule-card-bg .eyebrow,
.tell-friend-hero .eyebrow,
.enquiry-card .eyebrow,
.poster-content .eyebrow {
  background: rgba(255, 250, 240, .74) !important;
  color: var(--gold-2) !important;
  border-color: var(--readable-border) !important;
  text-shadow: none !important;
}

/* Body copy over photos gets a softer glass-paper strip */
.home-bg-card .hero-copy > p,
.home-bg-card .card.shell > p,
.hotel-bg-card .hero-copy > p,
.hotel-bg-card .card.shell > p,
.schedule-card-bg .card.shell > p,
.tell-friend-content > p,
.enquiry-content > p,
.poster-content > p {
  display: block;
  width: fit-content;
  max-width: 760px;
  color: var(--readable-muted) !important;
  background: var(--readable-paper-soft) !important;
  border: 1px solid var(--readable-border);
  border-radius: 12px;
  padding: 8px 12px;
  text-shadow: none !important;
}

/* Cards on photo sections: reduce opacity compared with previous version */
.home-bg-card .feature,
.home-bg-card .panel,
.home-bg-card .stat,
.hotel-bg-card .bullet-card,
.hotel-bg-card .panel,
.hotel-bg-card .download-card,
.hotel-bg-card .table-wrap,
.hotel-bg-card table,
.schedule-card-bg .timeline-item,
.schedule-card-bg .feature,
.schedule-card-bg .download-card,
.tell-friend-form-card,
.enquiry-card form,
.poster-content {
  background: rgba(255, 250, 240, .76) !important;
  color: var(--readable-ink) !important;
  border-color: var(--readable-border) !important;
  backdrop-filter: blur(2px) !important;
  text-shadow: none !important;
}

.home-bg-card .feature *,
.home-bg-card .panel *,
.home-bg-card .stat *,
.hotel-bg-card .bullet-card *,
.hotel-bg-card .panel *,
.hotel-bg-card .download-card *,
.hotel-bg-card table *,
.schedule-card-bg .timeline-item *,
.schedule-card-bg .feature *,
.schedule-card-bg .download-card *,
.tell-friend-form-card *,
.enquiry-card form *,
.poster-content * {
  text-shadow: none !important;
}

.home-bg-card p,
.hotel-bg-card p,
.schedule-card-bg p,
.tell-friend-hero p,
.enquiry-card p,
.poster-content p {
  color: var(--readable-muted) !important;
}

.home-bg-card h3,
.hotel-bg-card h3,
.schedule-card-bg h3,
.tell-friend-form-card h3,
.enquiry-card h3,
.poster-content h2 {
  color: var(--readable-ink) !important;
}

.btn-row {
  position: relative;
  z-index: 3;
}

.brand-copy strong{
  display:block;
  max-width:260px;
  line-height:1.2;
}
