:root {
  --bg: #fff9f2;
  --bg-soft: #f7ede0;
  --surface: rgba(255, 255, 255, 0.78);
  --surface-strong: #ffffff;
  --text: #211817;
  --muted: #74645e;
  --line: rgba(70, 42, 30, 0.12);
  --line-strong: rgba(70, 42, 30, 0.18);
  --accent: #b3312d;
  --accent-dark: #7f2423;
  --accent-soft: #fff1ea;
  --gold: #d89f38;
  --rose: #f4b39d;
  --shadow: 0 22px 70px rgba(75, 43, 27, 0.11);
  --shadow-soft: 0 14px 40px rgba(75, 43, 27, 0.08);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --container: 1160px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 8% -8%, rgba(244, 179, 157, 0.42), transparent 30rem),
    radial-gradient(circle at 96% 10%, rgba(216, 159, 56, 0.20), transparent 28rem),
    radial-gradient(circle at 50% 110%, rgba(179, 49, 45, 0.08), transparent 30rem),
    linear-gradient(180deg, #fffaf4 0%, #fff7ef 42%, #fbefe4 100%);
  line-height: 1.55;
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image:
    linear-gradient(rgba(127,36,35,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(127,36,35,0.035) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.45), transparent 78%);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.skip-link { position:absolute; left:-999px; top:1rem; z-index:100; padding:.8rem 1rem; border-radius:999px; background:#fff; box-shadow:var(--shadow-soft); }
.skip-link:focus { left:1rem; }
.container { width: min(var(--container), calc(100% - 36px)); margin: 0 auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  padding: 10px 0;
  backdrop-filter: blur(20px);
  background: rgba(255, 249, 242, 0.72);
  border-bottom: 1px solid rgba(70,42,30,.07);
}
.header-shell {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 10px;
  border: 1px solid rgba(70,42,30,.11);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 18px 55px rgba(71, 43, 31, 0.08);
}
.brand { display:inline-flex; align-items:center; gap:11px; min-width:max-content; }
.brand-mark {
  width:42px; height:42px; display:grid; place-items:center;
  border-radius: 15px;
  color:#fff7ef; font-weight:900; letter-spacing:-.05em;
  background: linear-gradient(135deg, var(--accent), #da744b 54%, var(--gold));
  box-shadow: 0 12px 28px rgba(179,49,45,.23);
}
.brand strong { display:block; font-weight:900; line-height:1.05; letter-spacing:-.03em; }
.brand small { display:block; color:var(--muted); font-size:.76rem; font-weight:700; }
.main-nav { display:flex; align-items:center; gap:4px; }
.main-nav a { padding:10px 12px; color:#3f2e28; font-size:.9rem; font-weight:800; border-radius:999px; transition:.18s ease; }
.main-nav a:hover { background:rgba(179,49,45,.075); color:var(--accent-dark); }
.nav-pill { background:var(--text); color:#fff !important; box-shadow:0 12px 28px rgba(33,24,23,.16); }
.nav-pill:hover { background:var(--accent-dark) !important; color:#fff !important; }
.header-actions { display:flex; align-items:center; gap:9px; }
.language-switch { display:flex; align-items:center; gap:4px; padding:4px; background:#fff4ea; border:1px solid var(--line); border-radius:999px; color:var(--muted); }
.lang-btn { border:0; background:transparent; border-radius:999px; padding:6px 9px; cursor:pointer; font-weight:900; color:var(--muted); }
.lang-btn.active { background:#fff; color:var(--accent-dark); box-shadow:0 8px 22px rgba(70,39,25,.09); }
.menu-button { display:none; width:42px; height:42px; border:0; border-radius:50%; background:var(--text); padding:0 12px; cursor:pointer; }
.menu-button span { display:block; height:2px; background:white; margin:5px 0; border-radius:2px; }

.hero { padding: 30px 0 18px; position:relative; }
.hero::before {
  content:"";
  position:absolute;
  inset: 20px max(18px, calc((100vw - var(--container)) / 2)) 0;
  border-radius: 42px;
  background: linear-gradient(135deg, rgba(255,255,255,.52), rgba(255,241,226,.62));
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 24px 90px rgba(75,43,27,.08);
  pointer-events:none;
}
.hero-grid { position:relative; display:grid; grid-template-columns: 1.05fr .82fr; gap:34px; align-items:center; padding:22px; }
.hero-copy { padding: 10px 0 10px 6px; }
.eyebrow { margin:0 0 10px; color:var(--accent-dark); font-weight:900; letter-spacing:.14em; text-transform:uppercase; font-size:.72rem; }
h1, h2 { font-family:"Playfair Display", Georgia, serif; letter-spacing:-.04em; line-height:.99; margin:0; }
h1 { font-size: clamp(2.65rem, 5.7vw, 5.7rem); max-width: 880px; }
h2 { font-size: clamp(1.9rem, 3.45vw, 3.35rem); }
h3 { margin:0; line-height:1.18; }
.hero-lead { margin:16px 0 0; max-width: 620px; font-size: clamp(1.02rem, 1.45vw, 1.18rem); color:var(--muted); }
.hero-actions { margin-top:23px; display:flex; flex-wrap:wrap; gap:10px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 18px; border-radius:999px; font-weight:900; transition:.2s ease; border:0; cursor:pointer; }
.btn-primary { background:linear-gradient(135deg, var(--accent), var(--accent-dark)); color:#fff; box-shadow:0 18px 36px rgba(179,49,45,.23); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 22px 46px rgba(179,49,45,.30); }
.btn-ghost { background:rgba(255,255,255,.75); border:1px solid var(--line); color:var(--text); box-shadow:0 10px 26px rgba(75,43,27,.06); }
.btn-ghost:hover { background:#fff; transform:translateY(-2px); border-color:rgba(179,49,45,.25); }
.hero-visual { position:relative; min-height:530px; }
.photo-card { overflow:hidden; border-radius:var(--radius-xl); background:#fff; box-shadow:var(--shadow); border:1px solid rgba(255,255,255,.82); }
.main-photo-card { height:530px; position:relative; transform:none; border-radius:36px; }
.main-photo-card::before { content:""; position:absolute; inset:14px; z-index:1; border:1px solid rgba(255,255,255,.42); border-radius:26px; pointer-events:none; }
.main-photo-card img { width:100%; height:100%; object-fit:cover; object-position:48% 30%; transform:scale(1.01); }
.main-photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 46%, rgba(33,24,23,.62)); pointer-events:none; }
.photo-caption { position:absolute; left:18px; right:18px; bottom:18px; z-index:2; display:flex; justify-content:space-between; align-items:end; gap:16px; color:#fff; }
.photo-caption span { font-size:.75rem; text-transform:uppercase; letter-spacing:.14em; opacity:.82; font-weight:900; }
.photo-caption strong { font-size:1.45rem; font-family:"Playfair Display", Georgia, serif; }
.floating-card { position:absolute; z-index:3; padding:13px 15px; background:rgba(255,255,255,.78); border:1px solid rgba(255,255,255,.70); border-radius:20px; box-shadow:0 18px 46px rgba(56,30,19,.13); backdrop-filter: blur(16px); max-width:190px; }
.floating-card b { display:block; color:var(--accent-dark); }
.floating-card span { display:block; color:var(--muted); font-size:.84rem; }
.card-one { top:30px; left:-18px; }
.card-two { right:-12px; bottom:58px; }

.section { padding: 26px 0; }
.split-section { display:grid; grid-template-columns:.9fr 1.1fr; gap:22px; align-items:center; }
.content-block p:not(.eyebrow) { color:var(--muted); margin:14px 0 0; max-width:690px; }
.soft-panel { display:grid; grid-template-columns: 200px 1fr; gap:18px; align-items:center; padding:16px; border:1px solid rgba(255,255,255,.72); border-radius:var(--radius-xl); background:rgba(255,255,255,.72); box-shadow:var(--shadow-soft); backdrop-filter: blur(18px); }
.soft-panel img { width:100%; height:240px; object-fit:cover; object-position:48% 26%; border-radius:24px; }
.soft-panel h3 { font-size:1.18rem; }
.soft-panel p { color:var(--muted); margin:9px 0 0; }
.section-head { text-align:center; max-width:730px; margin:0 auto 14px; }
.section-head p:not(.eyebrow) { margin:10px auto 0; color:var(--muted); }
.choreography-section { position:relative; }
.choreography-section::before { content:""; position:absolute; inset:20px 0; background:linear-gradient(180deg, rgba(255,255,255,.36), rgba(247,237,224,.62), rgba(255,255,255,.24)); pointer-events:none; }
.choreography-section .container { position:relative; }
.service-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.service-card { min-height:172px; padding:19px; border:1px solid rgba(255,255,255,.74); border-radius:24px; background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,246,238,.72)); box-shadow:0 16px 42px rgba(69,39,24,.07); transition:.22s ease; position:relative; overflow:hidden; }
.service-card::after { content:""; position:absolute; width:110px; height:110px; right:-50px; top:-50px; border-radius:50%; background:rgba(216,159,56,.13); }
.service-card:hover { transform:translateY(-3px); box-shadow:0 22px 54px rgba(69,39,24,.12); border-color:rgba(179,49,45,.16); }
.service-card span { display:inline-grid; place-items:center; width:36px; height:36px; border-radius:14px; background:var(--accent-soft); color:var(--accent-dark); font-weight:900; margin-bottom:14px; }
.service-card h3 { position:relative; z-index:1; font-size:1.02rem; }
.service-card p { position:relative; z-index:1; color:var(--muted); margin:9px 0 0; font-size:.94rem; }

.video-card { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px; border-radius:30px; background:linear-gradient(135deg, #231817, #7f2423); color:#fff; box-shadow:var(--shadow); overflow:hidden; position:relative; }
.video-card::before { content:""; position:absolute; width:330px; height:330px; right:-130px; top:-165px; border-radius:50%; background:rgba(216,159,56,.25); }
.video-card::after { content:""; position:absolute; width:180px; height:180px; left:-80px; bottom:-100px; border-radius:50%; background:rgba(255,255,255,.08); }
.video-card > * { position:relative; z-index:1; }
.video-card .eyebrow { color:#ffd989; }
.video-card p:not(.eyebrow) { color:rgba(255,255,255,.76); margin:9px 0 0; }
.tiktok-link { display:inline-flex; align-items:center; gap:10px; padding:12px 16px; background:#fff; color:#111; border-radius:999px; font-weight:900; white-space:nowrap; box-shadow:0 14px 32px rgba(0,0,0,.16); }
.tiktok-link svg { width:23px; height:23px; fill:#111; }

.contact-grid { display:grid; grid-template-columns:.82fr 1fr; gap:22px; align-items:start; }
.contact-copy { position:sticky; top:112px; }
.contact-copy p:not(.eyebrow), .contact-note { color:var(--muted); margin:14px 0 0; }
.contact-form { padding:20px; border:1px solid rgba(255,255,255,.74); border-radius:var(--radius-xl); background:rgba(255,255,255,.78); box-shadow:var(--shadow-soft); backdrop-filter: blur(18px); }
.contact-form label { display:block; margin-bottom:12px; }
.contact-form span { display:block; margin-bottom:7px; color:#3b2924; font-weight:900; font-size:.86rem; }
.contact-form input, .contact-form textarea { width:100%; border:1px solid rgba(80,44,26,.12); border-radius:16px; background:rgba(255,250,244,.85); color:var(--text); padding:13px 14px; outline:0; transition:.2s ease; }
.contact-form textarea { resize:vertical; min-height:112px; }
.contact-form input:focus, .contact-form textarea:focus { border-color:rgba(179,49,45,.45); box-shadow:0 0 0 4px rgba(179,49,45,.10); background:#fff; }
.hidden-field { position:absolute; left:-9999px; opacity:0; }
.captcha-wrap { margin:10px 0 14px; min-height:68px; }
.submit-button { width:100%; }
.submit-button[disabled] { opacity:.7; cursor:wait; transform:none; }
.form-status { min-height:23px; margin:11px 0 0; font-weight:900; }
.form-status.success { color:#217a3c; }
.form-status.error { color:#a33623; }
.site-footer { padding:16px 0 26px; color:var(--muted); }
.footer-row { display:flex; justify-content:space-between; align-items:center; gap:14px; border-top:1px solid var(--line); padding-top:18px; font-size:.9rem; }
.footer-row p { margin:0; }
.footer-row nav { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.footer-row a { font-weight:900; color:var(--accent-dark); }
.reveal { opacity:0; transform:translateY(12px); transition:.62s ease; }
.reveal.in-view { opacity:1; transform:none; }

.booking-head-clean { margin-bottom:14px; }
.booking-section { position:relative; background:transparent; }
.booking-section::before { content:""; position:absolute; inset:16px max(18px, calc((100vw - var(--container)) / 2)); border-radius:38px; background:linear-gradient(135deg, rgba(255,255,255,.58), rgba(255,239,224,.66)); border:1px solid rgba(255,255,255,.72); pointer-events:none; }
.booking-section .container { position:relative; }
.booking-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.booking-wizard, .events-panel, .admin-card, .admin-panel { border:1px solid rgba(255,255,255,.76); border-radius:var(--radius-xl); background:rgba(255,255,255,.78); box-shadow:var(--shadow-soft); backdrop-filter:blur(18px); }
.booking-wizard { padding:18px; overflow:hidden; }
.wizard-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:16px; }
.wizard-step { display:flex; align-items:center; gap:10px; border:1px solid rgba(80,44,26,.10); background:rgba(255,250,244,.82); border-radius:18px; padding:11px; cursor:pointer; color:var(--muted); text-align:left; transition:.18s ease; }
.wizard-step span { width:30px; height:30px; border-radius:12px; display:grid; place-items:center; background:#fff; color:var(--accent-dark); font-weight:900; box-shadow:0 8px 20px rgba(70,39,25,.07); }
.wizard-step b { font-size:.9rem; }
.wizard-step.active { background:linear-gradient(135deg, rgba(179,49,45,.10), rgba(216,159,56,.13)); border-color:rgba(179,49,45,.22); color:var(--accent-dark); }
.booking-pane { display:none; }
.booking-pane.active { display:block; }
.booking-pane-head { margin-bottom:14px; }
.booking-pane-head span { display:block; font-size:1.13rem; font-weight:900; color:var(--text); }
.booking-pane-head p { margin:5px 0 0; color:var(--muted); }
.booking-service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.booking-service-card { border:1px solid rgba(80,44,26,.10); border-radius:22px; background:rgba(255,250,244,.78); padding:16px; cursor:pointer; transition:.2s ease; text-align:left; }
.booking-service-card:hover { transform:translateY(-2px); border-color:rgba(179,49,45,.26); background:#fff; }
.booking-service-card.active { background:#fff; border-color:rgba(179,49,45,.45); box-shadow:0 0 0 4px rgba(179,49,45,.09); }
.booking-service-card h3 { font-family:Inter, sans-serif; font-size:1rem; margin:0 0 6px; }
.booking-service-card p { margin:0; color:var(--muted); font-size:.9rem; }
.booking-service-meta { display:flex; gap:7px; flex-wrap:wrap; margin-top:11px; }
.booking-service-meta span { padding:5px 9px; border-radius:999px; background:#fff; border:1px solid var(--line); color:var(--accent-dark); font-size:.78rem; font-weight:900; }
.booking-time-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:14px; }
.booking-time-grid h3 { font-family:Inter, sans-serif; font-size:.9rem; margin:0 0 9px; }
.date-strip { display:grid; gap:7px; max-height:360px; overflow:auto; padding-right:4px; }
.date-button { width:100%; border:1px solid rgba(80,44,26,.10); background:rgba(255,250,244,.84); border-radius:16px; padding:10px 11px; text-align:left; cursor:pointer; transition:.18s ease; }
.date-button strong { display:block; color:var(--text); }
.date-button span { color:var(--muted); font-size:.84rem; }
.date-button.active { background:#fff; border-color:rgba(179,49,45,.44); box-shadow:0 0 0 4px rgba(179,49,45,.08); }
.slot-list { display:flex; flex-wrap:wrap; gap:8px; align-content:flex-start; min-height:150px; padding:13px; border-radius:20px; border:1px solid rgba(80,44,26,.10); background:rgba(255,250,244,.78); }
.slot-button { border:1px solid rgba(179,49,45,.16); background:#fff; border-radius:999px; padding:9px 13px; cursor:pointer; font-weight:900; color:var(--accent-dark); transition:.18s ease; }
.slot-button:hover { transform:translateY(-1px); }
.slot-button.active { background:linear-gradient(135deg, var(--accent), var(--accent-dark)); color:#fff; box-shadow:0 12px 26px rgba(179,49,45,.20); }
.slot-empty { color:var(--muted); margin:0; }
.booking-summary { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 13px; }
.booking-summary span { padding:8px 11px; border-radius:999px; background:var(--accent-soft); color:var(--accent-dark); font-weight:900; font-size:.84rem; }
.booking-fields { display:grid; grid-template-columns:repeat(2,1fr); gap:11px; }
.booking-fields label { display:block; }
.booking-fields label.full { grid-column:1 / -1; }
.booking-fields span { display:block; margin-bottom:7px; color:#3b2924; font-weight:900; font-size:.86rem; }
.booking-fields input, .booking-fields textarea { width:100%; border:1px solid rgba(80,44,26,.12); border-radius:16px; background:rgba(255,250,244,.84); color:var(--text); padding:13px 14px; outline:0; transition:.2s ease; }
.booking-fields input:focus, .booking-fields textarea:focus { border-color:rgba(179,49,45,.45); box-shadow:0 0 0 4px rgba(179,49,45,.10); background:#fff; }
.booking-captcha { margin-top:12px; }
.wizard-actions { display:flex; justify-content:space-between; gap:10px; margin-top:15px; }
#bookingSubmit { display:none; }
.events-panel { padding:18px; position:sticky; top:112px; }
.events-head h3 { font-family:Inter, sans-serif; font-size:1.12rem; }
.event-list { display:grid; gap:9px; margin-top:13px; }
.event-card { padding:13px; border:1px solid rgba(80,44,26,.10); border-radius:18px; background:rgba(255,250,244,.82); }
.event-card time { display:inline-block; color:var(--accent-dark); font-size:.76rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; margin-bottom:5px; }
.event-card h4 { margin:0; font-size:.98rem; }
.event-card p { margin:5px 0 0; color:var(--muted); font-size:.88rem; }
.event-pill { display:inline-block; margin-top:9px; padding:5px 8px; border-radius:999px; background:#fff; border:1px solid var(--line); color:var(--muted); font-size:.75rem; font-weight:900; }

@media (max-width: 920px) {
  .header-shell { border-radius:24px; }
  .main-nav { position:absolute; top:78px; left:18px; right:18px; display:none; padding:12px; border-radius:24px; background:rgba(255,255,255,.96); border:1px solid var(--line); box-shadow:var(--shadow); }
  .main-nav.open { display:grid; }
  .main-nav a { padding:12px 14px; }
  .menu-button { display:block; }
  .hero { padding-top:18px; }
  .hero::before { inset:12px 12px 0; border-radius:34px; }
  .hero-grid, .split-section, .contact-grid, .booking-layout { grid-template-columns:1fr; }
  .hero-grid { padding:16px; }
  .hero-visual { min-height:auto; order:-1; }
  .main-photo-card { height:min(520px, 82vh); }
  .card-one { left:10px; top:16px; }
  .card-two { right:10px; bottom:18px; }
  .contact-copy, .events-panel { position:static; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .soft-panel { grid-template-columns:170px 1fr; }
  .booking-time-grid { grid-template-columns:1fr; }
}

@media (max-width: 620px) {
  .container { width:min(100% - 24px, var(--container)); }
  .site-header { padding:8px 0; }
  .brand small { display:none; }
  .brand-mark { width:38px; height:38px; border-radius:14px; }
  .language-switch { font-size:.84rem; }
  .hero-grid { gap:18px; }
  .hero-copy { padding:4px 2px; }
  .main-photo-card { height:452px; border-radius:28px; }
  .main-photo-card img { object-position:48% 25%; }
  .floating-card { display:none; }
  .section { padding:22px 0; }
  .service-grid, .booking-service-grid, .booking-fields, .wizard-progress { grid-template-columns:1fr; }
  .service-card { min-height:auto; }
  .soft-panel { grid-template-columns:1fr; }
  .soft-panel img { height:330px; }
  .video-card { align-items:flex-start; flex-direction:column; padding:20px; border-radius:26px; }
  .contact-form, .booking-wizard, .events-panel { padding:16px; border-radius:24px; }
  .wizard-actions { flex-wrap:wrap; }
  .wizard-actions .btn { flex:1 1 auto; }
  .footer-row { flex-direction:column; text-align:center; }
}


/* v27: modern front-end polish, tighter spacing and cleaner hero */
:root {
  --bg: #fffaf6;
  --bg-soft: #f8efe7;
  --surface: rgba(255, 255, 255, 0.86);
  --surface-strong: #ffffff;
  --text: #231716;
  --muted: #725f58;
  --accent: #a92828;
  --accent-dark: #7b1d1d;
  --accent-soft: #fff0e8;
  --gold: #d4a247;
  --shadow: 0 18px 55px rgba(80, 45, 28, 0.10);
  --shadow-soft: 0 10px 30px rgba(80, 45, 28, 0.075);
  --radius-xl: 28px;
}

body {
  background:
    radial-gradient(circle at 14% -6%, rgba(255, 218, 198, 0.65), transparent 30rem),
    radial-gradient(circle at 91% 8%, rgba(212, 162, 71, 0.18), transparent 25rem),
    linear-gradient(180deg, #fffaf6 0%, #fff7f0 45%, #fbefe5 100%);
}

body::before {
  background-size: 72px 72px;
  opacity: .7;
}

.site-header {
  padding: 8px 0;
  background: rgba(255, 250, 246, 0.78);
  border-bottom: 1px solid rgba(70, 42, 30, 0.055);
}

.header-shell {
  min-height: 56px;
  padding: 7px 9px;
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(80, 44, 26, 0.095);
  box-shadow: 0 14px 38px rgba(70, 39, 25, 0.075);
}

.brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 14px;
}

.main-nav a {
  padding: 9px 11px;
  font-size: .88rem;
}

.hero {
  padding: 22px 0 10px;
}

.hero::before {
  inset: 16px max(18px, calc((100vw - var(--container)) / 2)) 0;
  border-radius: 36px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.74), rgba(255,242,230,.74)),
    radial-gradient(circle at 15% 15%, rgba(212, 162, 71, .15), transparent 18rem);
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: 0 20px 70px rgba(75,43,27,.075);
}

.hero-grid {
  grid-template-columns: minmax(0, .98fr) minmax(360px, .74fr);
  gap: clamp(18px, 3vw, 32px);
  padding: clamp(18px, 2.2vw, 28px);
}

.hero-copy {
  padding: 6px 0 6px 4px;
  max-width: 650px;
}

.eyebrow {
  margin-bottom: 9px;
  color: var(--accent-dark);
  font-size: .68rem;
  letter-spacing: .17em;
}

h1, h2 {
  letter-spacing: -0.055em;
}

h1 {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(2.2rem, 4.3vw, 4.35rem);
  line-height: .98;
  max-width: 690px;
  font-weight: 900;
  text-wrap: balance;
}

h2 {
  font-size: clamp(1.75rem, 3vw, 3.05rem);
  line-height: 1.03;
  text-wrap: balance;
}

.hero-lead {
  margin-top: 13px;
  max-width: 570px;
  font-size: clamp(1rem, 1.22vw, 1.12rem);
  line-height: 1.65;
  color: #64524c;
}

.hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.hero-points span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(120, 68, 42, .12);
  color: #5d453e;
  font-size: .84rem;
  font-weight: 850;
  box-shadow: 0 8px 22px rgba(70,39,25,.055);
}

.hero-points span::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 999px;
  background: var(--gold);
  box-shadow: 0 0 0 4px rgba(212, 162, 71, .16);
}

.hero-actions {
  margin-top: 20px;
}

.btn {
  min-height: 44px;
  padding: 11px 17px;
  border-radius: 999px;
}

.hero-visual {
  min-height: 490px;
}

.main-photo-card {
  height: 490px;
  border-radius: 32px;
}

.main-photo-card::before {
  inset: 12px;
  border-radius: 24px;
}

.photo-caption {
  left: 16px;
  right: 16px;
  bottom: 16px;
}

.floating-card {
  border-radius: 18px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, .84);
}

.card-one {
  top: 22px;
  left: -10px;
}

.card-two {
  right: -8px;
  bottom: 42px;
}

.section {
  padding: 19px 0;
}

.split-section,
.contact-grid {
  gap: 18px;
}

.content-block p:not(.eyebrow) {
  margin-top: 11px;
}

.section-head {
  margin-bottom: 12px;
}

.section-head p:not(.eyebrow) {
  margin-top: 8px;
}

.choreography-section::before {
  inset: 14px 0;
  background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,243,232,.58), rgba(255,255,255,.18));
}

.service-grid {
  gap: 10px;
}

.service-card {
  min-height: 158px;
  padding: 17px;
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,247,240,.78));
  box-shadow: 0 12px 32px rgba(69,39,24,.06);
}

.service-card span {
  width: 32px;
  height: 32px;
  border-radius: 12px;
  margin-bottom: 11px;
}

.service-card p {
  margin-top: 7px;
  font-size: .91rem;
}

.soft-panel,
.contact-form,
.booking-wizard,
.events-panel {
  background: rgba(255,255,255,.84);
  border-color: rgba(255,255,255,.82);
}

.soft-panel {
  padding: 14px;
  gap: 16px;
}

.soft-panel img {
  height: 218px;
}

.booking-head-clean {
  margin-bottom: 10px;
}

.booking-section::before {
  inset: 10px max(18px, calc((100vw - var(--container)) / 2));
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(255,255,255,.62), rgba(255,243,232,.68));
}

.booking-layout {
  gap: 14px;
}

.booking-wizard,
.events-panel {
  padding: 16px;
}

.wizard-progress {
  margin-bottom: 13px;
}

.wizard-step {
  border-radius: 16px;
  padding: 10px;
}

.booking-pane-head {
  margin-bottom: 11px;
}

.booking-service-grid {
  gap: 9px;
}

.booking-service-card {
  border-radius: 18px;
  padding: 14px;
}

.video-card {
  padding: 21px;
  border-radius: 26px;
  background:
    radial-gradient(circle at 85% 15%, rgba(212,162,71,.30), transparent 16rem),
    linear-gradient(135deg, #ffffff, #fff4eb);
  color: var(--text);
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: var(--shadow-soft);
}

.video-card .eyebrow {
  color: var(--accent-dark);
}

.video-card p:not(.eyebrow) {
  color: var(--muted);
}

.tiktok-link {
  background: #14100f;
  color: #fff;
}

.tiktok-link svg {
  fill: #fff;
}

.contact-copy {
  top: 98px;
}

.contact-copy p:not(.eyebrow) {
  margin-top: 11px;
}

.contact-form {
  padding: 18px;
}

.contact-form label {
  margin-bottom: 10px;
}

.contact-form input,
.contact-form textarea,
.booking-fields input,
.booking-fields textarea {
  border-radius: 14px;
  background: rgba(255, 250, 245, .92);
}

.site-footer {
  padding-top: 10px;
}

.footer-row {
  padding-top: 14px;
}

@media (max-width: 920px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }

  h1 {
    font-size: clamp(2rem, 9vw, 3.65rem);
  }

  .hero-visual {
    min-height: auto;
  }

  .main-photo-card {
    height: min(500px, 76vh);
  }
}

@media (max-width: 620px) {
  .hero {
    padding-top: 14px;
  }

  .hero::before {
    inset: 8px 10px 0;
    border-radius: 28px;
  }

  .hero-grid {
    padding: 14px;
    gap: 14px;
  }

  h1 {
    font-size: clamp(2rem, 10.5vw, 3.2rem);
    line-height: 1;
  }

  .hero-lead {
    font-size: .98rem;
    line-height: 1.58;
  }

  .hero-points {
    gap: 7px;
    margin-top: 13px;
  }

  .hero-points span {
    font-size: .78rem;
    min-height: 31px;
    padding: 7px 10px;
  }

  .main-photo-card {
    height: 420px;
    border-radius: 24px;
  }

  .section {
    padding: 17px 0;
  }

  .service-card,
  .booking-service-card {
    border-radius: 18px;
  }

  .video-card {
    padding: 18px;
  }
}


/* v33 Nepali spacing fix only - original colours/design preserved */
html[lang="ne"] h1 {
  line-height: 1.18;
  letter-spacing: -0.01em;
  word-spacing: .08em;
}

html[lang="ne"] .hero h1 {
  max-width: 860px;
}

html[lang="ne"] .hero-lead,
html[lang="ne"] .booking-service-card h3,
html[lang="ne"] .booking-service-card p,
html[lang="ne"] .booking-service-meta {
  line-height: 1.55;
}

@media (max-width: 700px) {
  html[lang="ne"] h1 {
    font-size: clamp(1.85rem, 8.8vw, 3rem);
    line-height: 1.22;
  }
}

/* v34 TikTok/video box styling copied from the provided reference styles.css only */
.video-card { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px; border-radius:30px; background:linear-gradient(135deg, #231817, #7f2423); color:#fff; box-shadow:var(--shadow); overflow:hidden; position:relative; }
.video-card::before { content:""; position:absolute; width:330px; height:330px; right:-130px; top:-165px; border-radius:50%; background:rgba(216,159,56,.25); }
.video-card::after { content:""; position:absolute; width:180px; height:180px; left:-80px; bottom:-100px; border-radius:50%; background:rgba(255,255,255,.08); }
.video-card > * { position:relative; z-index:1; }
.video-card .eyebrow { color:#ffd989; }
.video-card p:not(.eyebrow) { color:rgba(255,255,255,.76); margin:9px 0 0; }
.tiktok-link { display:inline-flex; align-items:center; gap:10px; padding:12px 16px; background:#fff; color:#111; border-radius:999px; font-weight:900; white-space:nowrap; box-shadow:0 14px 32px rgba(0,0,0,.16); }
.tiktok-link svg { width:23px; height:23px; fill:#111; }

@media (max-width: 620px) {

  .video-card { align-items:flex-start; flex-direction:column; padding:20px; border-radius:26px; }
}

