
:root {
  --black: #060606;
  --black-soft: #0b0a0a;
  --black-panel: #0d0c0c;
  --ivory: #f4ede7;
  --muted: #b7aaa3;
  --rose-light: #f3c9b6;
  --rose: #d89678;
  --rose-deep: #a85f45;
  --rose-dark: #6f3d2d;
  --line: rgba(216,150,120,.26);
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  background:
    radial-gradient(circle at 50% -10%, rgba(216,150,120,.05), transparent 25%),
    #050505;
  color:var(--ivory);
  font-family: "Helvetica Neue", Arial, sans-serif;
  line-height:1.65;
  overflow-x:hidden;
}
img, video { display:block; width:100%; }
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font:inherit; }

body:before {
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-2;
  background-image:url("assets/black-velvet-texture.webp");
  background-size:cover;
  background-position:center;
  opacity:.20;
  mix-blend-mode:normal;
}
body:after {
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:linear-gradient(rgba(0,0,0,.48), rgba(0,0,0,.82));
}

.site-header {
  position:fixed;
  z-index:50;
  inset:0 0 auto 0;
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 max(24px, 4vw);
  background:linear-gradient(to bottom, rgba(4,4,4,.96), rgba(4,4,4,.74), transparent);
  backdrop-filter:blur(8px);
}
.brand {
  display:flex;
  align-items:baseline;
  gap:12px;
}
.brand-main {
  font-family: Georgia, "Times New Roman", serif;
  font-size:1.34rem;
  letter-spacing:.13em;
  font-weight:500;
  background:linear-gradient(120deg,#ffe0d1 0%,#d79a7c 38%,#ffceb7 58%,#9c593f 100%);
  -webkit-background-clip:text;
  color:transparent;
  text-shadow:0 0 20px rgba(216,150,120,.08);
}
.brand-sub {
  font-size:.62rem;
  letter-spacing:.32em;
  color:#a88e82;
}
.nav {
  display:flex;
  align-items:center;
  gap:30px;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.19em;
}
.nav a:not(.nav-cta) { color:#c8bdb7; }
.nav a:hover { color:#fff; }
.nav-cta {
  padding:12px 18px;
  border:1px solid rgba(216,150,120,.52);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
  color:#efc1ae;
}
.nav-toggle { display:none; background:none; border:0; color:white; font-size:1.45rem; }

.hero {
  min-height:100vh;
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#050505;
}
.hero-image {
  position:absolute;
  top:0;
  left:34%;
  right:auto;
  bottom:0;
  width:66%;
  height:100%;
  object-fit:cover;
  object-position:34% top;
  filter:saturate(.82) contrast(1.03) brightness(.60);
}
.hero-shade {
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      rgba(4,4,4,.98) 0%,
      rgba(4,4,4,.94) 24%,
      rgba(4,4,4,.58) 38%,
      rgba(4,4,4,.22) 52%,
      rgba(4,4,4,.08) 72%,
      rgba(4,4,4,.03) 100%),
    linear-gradient(0deg, rgba(4,4,4,.82), transparent 48%);
}
.hero-content {
  position:relative;
  z-index:2;
  width:min(720px, 88vw);
  margin:0 0 7vh max(7.5vw, 54px);
}
.hero-logo-wrap {
  width:min(520px, 78vw);
  margin-bottom:24px;
}
.hero-logo {
  width:100%;
  height:auto;
  object-fit:contain;
  mix-blend-mode:normal;
  filter:contrast(1.05) saturate(.96);
  opacity:.96;
}
.eyebrow {
  margin:0 0 16px;
  color:#dba58c;
  font-size:.70rem;
  font-weight:500;
  letter-spacing:.25em;
  text-transform:uppercase;
}
.eyebrow span { color:#f0c0ab; padding:0 .45em; }
.hero-line {
  margin:24px 0 18px;
  font-family:"Snell Roundhand","Apple Chancery","Brush Script MT",cursive;
  font-size:clamp(2.2rem,4.4vw,4.1rem);
  line-height:1;
  color:#d68e70;
  text-shadow:0 0 25px rgba(216,150,120,.10);
}
.hero-copy {
  margin:0;
  max-width:620px;
  color:#d9d0cb;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.02rem;
}
.hero-actions {
  display:flex;
  gap:12px;
  margin-top:34px;
  flex-wrap:wrap;
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 25px;
  border:1px solid transparent;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.70rem;
  font-weight:700;
  cursor:pointer;
}
.btn-primary {
  background:linear-gradient(120deg,#f2c7b4 0%,#d59576 38%,#b36d51 100%);
  color:#140d0a;
  box-shadow:0 10px 30px rgba(146,74,49,.16);
}
.btn-ghost {
  border-color:rgba(216,150,120,.36);
  color:#f4e8e2;
  background:rgba(0,0,0,.18);
}
.scroll-cue {
  position:absolute;
  right:25px;
  bottom:34px;
  z-index:2;
  writing-mode:vertical-rl;
  letter-spacing:.27em;
  font-size:.59rem;
  color:rgba(255,255,255,.40);
}

.section { padding:116px max(6vw,30px); }
.section-heading {
  max-width:850px;
  margin:0 auto 56px;
  text-align:center;
}
.ornament {
  color:#c98567;
  font-size:.82rem;
  margin-bottom:18px;
  text-shadow:0 0 18px rgba(216,150,120,.30);
}
.section-heading h2,
.split-copy h2,
.booking h2,
.about h2 {
  margin:0 0 18px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.5rem,5vw,4.6rem);
  line-height:1.02;
  letter-spacing:-.025em;
  font-weight:400;
  background:linear-gradient(120deg,#f6d2c0 0%,#d99677 42%,#bd7558 100%);
  -webkit-background-clip:text;
  color:transparent;
}
.section-heading p:last-child {
  max-width:660px;
  margin-inline:auto;
  color:#bdb2ac;
  font-family:Georgia,"Times New Roman",serif;
}

.video-section {
  background:
    linear-gradient(rgba(0,0,0,.75), rgba(0,0,0,.90)),
    url("assets/black-velvet-texture.webp") center/cover;
  border-top:1px solid rgba(216,150,120,.12);
  border-bottom:1px solid rgba(216,150,120,.10);
}
.video-frame {
  width:min(1100px,100%);
  margin:auto;
  padding:13px;
  border:1px solid rgba(216,150,120,.42);
  background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(255,255,255,.005));
  box-shadow:0 30px 80px rgba(0,0,0,.58), inset 0 0 0 1px rgba(255,255,255,.01);
}
.video-frame:before {
  content:"";
  display:block;
  height:2px;
  margin:-7px 9% 10px;
  background:linear-gradient(90deg,transparent,#b56f52 25%,#edb39a 50%,#b56f52 75%,transparent);
}
.video-frame video {
  aspect-ratio:16/9;
  background:#000;
}

.split-section {
  width:min(var(--max),calc(100% - 40px));
  margin:auto;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:78px;
  align-items:center;
}
.split-media {
  min-height:660px;
  position:relative;
  padding:12px;
  border:1px solid rgba(216,150,120,.25);
  background:#090909;
}
.split-media:before,
.split-media:after {
  content:"";
  position:absolute;
  width:56px;
  height:56px;
  pointer-events:none;
}
.split-media:before {
  top:6px; left:6px;
  border-top:1px solid #c67b5d;
  border-left:1px solid #c67b5d;
}
.split-media:after {
  right:6px; bottom:6px;
  border-right:1px solid #c67b5d;
  border-bottom:1px solid #c67b5d;
}
.split-media img {
  min-height:636px;
  height:100%;
  object-fit:cover;
}
.split-copy p {
  color:#c5bbb5;
  font-family:Georgia,"Times New Roman",serif;
}
.text-link {
  display:inline-block;
  margin-top:18px;
  color:#dea58e;
  border-bottom:1px solid rgba(222,165,142,.35);
  padding-bottom:5px;
  letter-spacing:.03em;
}

.services {
  background:
    linear-gradient(rgba(4,4,4,.94), rgba(4,4,4,.96)),
    url("assets/black-velvet-texture.webp") center/cover;
  border-top:1px solid rgba(216,150,120,.10);
}
.service-grid {
  width:min(var(--max),100%);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.service-card {
  min-height:292px;
  padding:36px;
  border:1px solid rgba(216,150,120,.22);
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.003)),
    rgba(8,8,8,.83);
  position:relative;
}
.service-card:before {
  content:"";
  position:absolute;
  inset:9px;
  border:1px solid rgba(216,150,120,.08);
  pointer-events:none;
}
.service-card:hover {
  border-color:rgba(216,150,120,.40);
  transform:translateY(-2px);
  transition:.25s ease;
}
.service-number {
  color:#b9795e;
  font-size:.67rem;
  letter-spacing:.18em;
}
.service-card h3 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.62rem;
  font-weight:400;
  margin:28px 0 11px;
  color:#efc2ae;
}
.service-card p {
  color:#bdb2ac;
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  position:relative;
  z-index:1;
}

.gallery { padding-left:0; padding-right:0; }
.gallery .section-heading { padding-inline:30px; }
.gallery-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr .95fr;
  grid-template-rows:420px 420px;
  gap:8px;
  padding:0 8px;
}
.gallery-grid figure {
  margin:0;
  overflow:hidden;
  background:#090909;
  border:1px solid rgba(216,150,120,.15);
}
.gallery-grid img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.76) contrast(1.03) brightness(.88);
  transition:transform .7s ease, filter .4s ease;
}
.gallery-grid figure:hover img {
  transform:scale(1.02);
  filter:saturate(.86) contrast(1.03) brightness(.95);
}
.g1 { grid-row:1/3; }
.g2 { grid-column:2; }
.g3 { grid-column:3; }
.g4 { grid-column:2/4; }

.about {
  background:
    linear-gradient(rgba(4,4,4,.92),rgba(4,4,4,.95)),
    url("assets/black-velvet-texture.webp") center/cover;
}
.about-card {
  width:min(var(--max),100%);
  margin:auto;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:72px;
  padding:62px;
  border:1px solid rgba(216,150,120,.32);
  background:rgba(8,8,8,.78);
  box-shadow:0 36px 90px rgba(0,0,0,.40);
  position:relative;
}
.about-card:before {
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(216,150,120,.08);
}
.about-copy {
  color:#c4bab4;
  font-size:1.04rem;
  font-family:Georgia,"Times New Roman",serif;
  position:relative;
  z-index:1;
}

.booking {
  background:#050505;
  border-top:1px solid rgba(216,150,120,.10);
}
.booking-wrap {
  width:min(var(--max),100%);
  margin:auto;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:72px;
  align-items:start;
}
.booking-copy p {
  color:#bbb0aa;
  max-width:470px;
  font-family:Georgia,"Times New Roman",serif;
}
.direct-email {
  color:#e2a68e;
  display:inline-block;
  margin-top:16px;
  border-bottom:1px solid rgba(226,166,142,.32);
}
.booking-form {
  display:grid;
  gap:18px;
  padding:38px;
  border:1px solid rgba(216,150,120,.26);
  background:
    linear-gradient(rgba(8,8,8,.88),rgba(8,8,8,.94)),
    url("assets/black-velvet-texture.webp") center/cover;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
}
.field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
label { display:grid; gap:8px; }
label span {
  font-size:.69rem;
  text-transform:uppercase;
  letter-spacing:.17em;
  color:#bca49a;
}
input, textarea, select {
  width:100%;
  color:white;
  background:rgba(0,0,0,.76);
  border:1px solid rgba(216,150,120,.20);
  padding:14px 15px;
  outline:none;
}
input:focus, textarea:focus, select:focus {
  border-color:#d18c70;
  box-shadow:0 0 0 2px rgba(209,140,112,.05);
}
textarea { resize:vertical; }
.form-note {
  margin:0;
  color:#82766f;
  font-size:.75rem;
}

.footer {
  min-height:140px;
  padding:34px max(6vw,30px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  border-top:1px solid rgba(216,150,120,.16);
  background:#040404;
}
.footer-brand {
  display:flex;
  align-items:baseline;
  gap:16px;
}
.footer-script {
  color:#c97e60 !important;
  font-family:"Snell Roundhand","Apple Chancery","Brush Script MT",cursive !important;
  font-style:normal !important;
  font-size:1.4rem;
}
.footer-links {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  font-size:.76rem;
  color:#9f948e;
}

@media (max-width:900px) {
  .nav-toggle { display:block; }
  .nav {
    position:absolute;
    top:72px;
    right:20px;
    width:min(330px,calc(100vw - 40px));
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:16px;
    background:#080808;
    border:1px solid rgba(216,150,120,.20);
  }
  .nav.open { display:flex; }
  .nav a { padding:13px 10px; }
  .hero-image { width:100%; object-position:66% top; }
  .hero-shade {
    background:
      linear-gradient(0deg,rgba(4,4,4,.96),rgba(4,4,4,.40) 70%,rgba(4,4,4,.28));
  }
  .hero-content { margin-bottom:7vh; }
  .split-section,.about-card,.booking-wrap { grid-template-columns:1fr; }
  .split-media,.split-media img { min-height:520px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    grid-template-rows:380px 380px 380px;
  }
  .g1 { grid-row:1/3; }
  .g2 { grid-column:2; }
  .g3 { grid-column:2; }
  .g4 { grid-column:1/3; }
}
@media (max-width:620px) {
  .site-header { min-height:68px; }
  .brand-sub { display:none; }
  .section { padding:82px 22px; }
  .hero-content { margin-left:22px; margin-right:22px; width:auto; }
  .hero-logo-wrap { width:min(360px,88vw); }
  .hero-line { font-size:2.7rem; }
  .scroll-cue { display:none; }
  .service-grid { grid-template-columns:1fr; }
  .field-row { grid-template-columns:1fr; }
  .gallery-grid {
    display:flex;
    overflow-x:auto;
    gap:8px;
    padding:0 22px 12px;
  }
  .gallery-grid figure {
    min-width:82vw;
    height:500px;
  }
  .about-card,.booking-form { padding:30px 22px; }
  .footer { align-items:flex-start; flex-direction:column; }
  .footer-links { flex-direction:column; gap:8px; }
}

/* V4 velvet refinement */
body:before {
  background-repeat:no-repeat;
  background-attachment:fixed;
  filter:blur(.15px);
}
.video-section,
.services,
.about,
.booking-form {
  background-image:
    linear-gradient(rgba(3,3,4,.76), rgba(3,3,4,.90)),
    url("assets/black-velvet-texture.webp");
  background-size:cover;
  background-position:center;
}
.hero-logo-wrap {
  padding: 8px 0 4px;
}
.service-card {
  border-radius: 2px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.015), 0 18px 45px rgba(0,0,0,.18);
}
.split-media {
  background:
    linear-gradient(rgba(4,4,5,.35), rgba(4,4,5,.45)),
    url("assets/black-velvet-texture.webp") center/cover;
}
.gallery-grid figure {
  box-shadow:0 18px 50px rgba(0,0,0,.28);
}
@media (min-width: 901px) {
  .hero-content {
    width:min(610px, 43vw);
    margin-left:max(7vw, 70px);
    margin-bottom:7vh;
  }
  .hero-logo-wrap {
    width:min(500px, 35vw);
    margin-left:0;
  }
  .hero-image {
    width:58%;
    object-position:60% top;
  }
}
  .hero-logo-wrap { width:min(500px, 36vw); }
  .hero-image { width:100%; object-position:66% top; }
}

.hero-logo {
  mix-blend-mode: normal;
  background: transparent;
}

@media (min-width: 901px) {
  .hero-image {
    left:34% !important;
    right:auto !important;
    width:66% !important;
    object-position:34% top !important;
  }
  .hero-content {
    position:relative;
    z-index:3;
  }
  .hero-shade {
    z-index:1;
  }
}


/* V4.9 — Original Music */
.original-music {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: 110px 24px;
  background:
    radial-gradient(circle at 50% 15%, rgba(187,111,76,.10), transparent 38%),
    linear-gradient(180deg, rgba(8,7,7,.96), rgba(3,3,3,1));
  border-top: 1px solid rgba(205,137,103,.18);
  border-bottom: 1px solid rgba(205,137,103,.18);
}
.original-music::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background:
    radial-gradient(circle at 20% 35%, rgba(255,255,255,.035) 0 1px, transparent 1.5px),
    radial-gradient(circle at 72% 60%, rgba(255,255,255,.025) 0 1px, transparent 1.5px);
  background-size: 11px 11px, 15px 15px;
}
.music-inner {
  position:relative;
  z-index:1;
  max-width:760px;
  margin:0 auto;
}
.original-music .eyebrow {
  letter-spacing:.34em;
  font-size:.74rem;
  color:#c98969;
  margin-bottom:18px;
}
.original-music h2 {
  margin:0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight:400;
  font-size:clamp(2.2rem, 4.5vw, 4rem);
  line-height:1.08;
  color:#dca07f;
  text-shadow:0 0 18px rgba(211,133,94,.10);
}
.original-music .rule {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:min(310px,70vw);
  margin:26px auto 22px;
  color:#d59a79;
  font-size:.65rem;
}
.original-music .rule span {
  height:1px;
  flex:1;
  background:linear-gradient(90deg, transparent, rgba(211,143,106,.8));
}
.original-music .rule span:last-child {
  background:linear-gradient(90deg, rgba(211,143,106,.8), transparent);
}
.original-music p {
  margin:0 auto 32px;
  color:rgba(255,255,255,.78);
  font-family:Georgia, "Times New Roman", serif;
  font-size:1.05rem;
  line-height:1.7;
}
.music-listen-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:180px;
  padding:15px 28px;
  border:1px solid #c47f5e;
  color:#e2ad8f;
  background:rgba(12,8,7,.52);
  letter-spacing:.18em;
  text-decoration:none;
  transition:.25s ease;
}
.music-listen-btn:hover {
  background:#c98969;
  color:#0a0807;
  box-shadow:0 0 24px rgba(201,137,105,.20);
}
@media (max-width:700px) {
  .original-music { padding:78px 20px; }
}


/* V4.11 — Luxury booking inquiry */
.booking {
  position:relative;
  background:
    linear-gradient(rgba(3,3,4,.89), rgba(3,3,4,.96)),
    url("assets/black-velvet-texture.webp") center/cover;
  border-top:1px solid rgba(216,150,120,.16);
}
.booking-wrap {
  width:min(var(--max),100%);
  margin:auto;
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:78px;
  align-items:start;
}
.booking-copy {
  position:sticky;
  top:125px;
  padding-top:18px;
}
.booking-copy h2 {
  max-width:520px;
}
.booking-intro {
  max-width:470px;
  margin:22px 0 0;
  color:#c5bab4 !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.03rem;
  line-height:1.8;
}
.booking-rule {
  width:min(260px,70%);
  display:flex;
  align-items:center;
  gap:11px;
  color:#d49a7a;
  margin:25px 0 24px;
  font-size:.6rem;
}
.booking-rule span {
  flex:1;
  height:1px;
  background:linear-gradient(90deg,rgba(212,154,122,.08),rgba(212,154,122,.78));
}
.booking-rule span:last-child {
  background:linear-gradient(90deg,rgba(212,154,122,.78),rgba(212,154,122,.08));
}
.booking-note {
  margin-top:38px;
  padding-top:24px;
  border-top:1px solid rgba(216,150,120,.16);
}
.booking-note-label {
  display:block;
  margin-bottom:8px;
  color:#957e73;
  font-size:.64rem;
  letter-spacing:.21em;
}
.booking-panel {
  position:relative;
}
.booking-panel::before {
  content:"";
  position:absolute;
  inset:-8px;
  pointer-events:none;
  border:1px solid rgba(216,150,120,.08);
}
.booking-form {
  position:relative;
  display:grid;
  gap:20px;
  padding:42px;
  border:1px solid rgba(216,150,120,.28);
  background:
    linear-gradient(rgba(7,6,7,.90),rgba(5,5,6,.95)),
    url("assets/black-velvet-texture.webp") center/cover;
  box-shadow:0 32px 90px rgba(0,0,0,.42);
}
.booking-form::before,
.booking-form::after {
  content:"";
  position:absolute;
  width:54px;
  height:54px;
  pointer-events:none;
}
.booking-form::before {
  top:10px;
  left:10px;
  border-top:1px solid rgba(216,150,120,.48);
  border-left:1px solid rgba(216,150,120,.48);
}
.booking-form::after {
  right:10px;
  bottom:10px;
  border-right:1px solid rgba(216,150,120,.48);
  border-bottom:1px solid rgba(216,150,120,.48);
}
.booking-form .field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.booking-form label {
  display:grid;
  gap:8px;
  position:relative;
  z-index:1;
}
.booking-form label > span {
  font-size:.66rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#b9a098;
}
.booking-form input,
.booking-form textarea,
.booking-form select {
  width:100%;
  min-height:50px;
  border:1px solid rgba(216,150,120,.20);
  border-radius:0;
  background:rgba(0,0,0,.67);
  color:#f4ece8;
  padding:14px 15px;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.booking-form textarea {
  min-height:145px;
  resize:vertical;
}
.booking-form input::placeholder,
.booking-form textarea::placeholder {
  color:#746963;
}
.booking-form input:focus,
.booking-form textarea:focus,
.booking-form select:focus {
  border-color:rgba(226,164,137,.72);
  background:rgba(0,0,0,.82);
  box-shadow:0 0 0 2px rgba(210,138,108,.06);
}
.form-footer {
  display:flex;
  align-items:center;
  gap:22px;
  margin-top:4px;
  position:relative;
  z-index:1;
}
.booking-submit {
  min-width:190px;
}
.form-privacy {
  margin:0;
  color:#776d68;
  font-size:.70rem;
  line-height:1.5;
}
.hp-field {
  position:absolute !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  height:1px !important;
  width:1px !important;
  margin:-1px !important;
  padding:0 !important;
  border:0 !important;
}
.booking-success {
  grid-column:1 / -1;
  text-align:center;
  padding:46px 28px;
  position:relative;
  z-index:4;
}
.success-gem {
  color:#d49979;
  margin-bottom:13px;
}
.booking-success h3 {
  margin:0 0 10px;
  color:#e1a88d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:2.2rem;
  font-weight:400;
}
.booking-success p {
  margin:0 auto;
  max-width:520px;
  color:#c6bbb5;
  font-family:Georgia,"Times New Roman",serif;
}
@media (max-width:900px) {
  .booking-wrap { grid-template-columns:1fr; gap:46px; }
  .booking-copy { position:static; }
}
@media (max-width:620px) {
  .booking-form { padding:30px 22px; }
  .booking-form .field-row { grid-template-columns:1fr; }
  .form-footer { align-items:stretch; flex-direction:column; }
  .booking-submit { width:100%; }
}


/* V4.12 — Mobile optimization */
@media (max-width: 700px) {
  html, body {
    overflow-x: hidden;
  }

  .site-header {
    min-height: 64px;
    padding: 0 18px;
    background: rgba(4,4,4,.94);
    backdrop-filter: blur(10px);
  }

  .brand-main {
    font-size: 1.08rem;
    letter-spacing: .12em;
  }

  .nav-toggle {
    display: block;
    padding: 8px;
    line-height: 1;
  }

  .nav {
    top: 64px;
    right: 12px;
    left: 12px;
    width: auto;
    max-height: calc(100vh - 82px);
    overflow-y: auto;
    padding: 12px;
    background:
      linear-gradient(rgba(6,6,7,.97), rgba(6,6,7,.99)),
      url("assets/black-velvet-texture.webp") center/cover;
    border: 1px solid rgba(216,150,120,.22);
    box-shadow: 0 18px 50px rgba(0,0,0,.48);
  }

  .nav a {
    padding: 14px 12px;
    border-bottom: 1px solid rgba(216,150,120,.10);
  }

  .nav .nav-cta {
    margin-top: 8px;
    text-align: center;
    border: 1px solid rgba(216,150,120,.46);
  }

  /* Hero */
  .hero {
    min-height: 100svh;
    align-items: flex-end;
  }

  .hero-image {
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    height: 100% !important;
    object-position: 64% top !important;
    filter: saturate(.82) contrast(1.03) brightness(.54);
  }

  .hero-shade {
    background:
      linear-gradient(0deg,
        rgba(4,4,4,.98) 0%,
        rgba(4,4,4,.96) 24%,
        rgba(4,4,4,.72) 46%,
        rgba(4,4,4,.28) 70%,
        rgba(4,4,4,.10) 100%),
      linear-gradient(90deg, rgba(4,4,4,.28), rgba(4,4,4,.05));
  }

  .hero-content {
    width: auto !important;
    margin: 0 20px 7vh !important;
    padding-top: 130px;
  }

  .hero-logo-wrap {
    width: min(390px, 88vw) !important;
    margin: 0 0 18px !important;
  }

  .hero-logo {
    width: 100%;
  }

  .hero .eyebrow {
    font-size: .62rem;
    line-height: 1.75;
    letter-spacing: .18em;
  }

  .hero-line {
    font-size: clamp(2.2rem, 11vw, 3.4rem);
    margin: 16px 0 12px;
  }

  .hero-copy {
    max-width: 94%;
    font-size: .98rem;
    line-height: 1.7;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 24px;
    width: 100%;
  }

  .hero-actions .btn {
    width: 100%;
  }

  /* General section spacing */
  .section {
    padding: 76px 20px;
  }

  .section-heading {
    margin-bottom: 34px;
  }

  .section-heading h2,
  .split-copy h2,
  .booking h2,
  .about h2 {
    font-size: clamp(2.15rem, 10vw, 3rem);
    line-height: 1.05;
  }

  .section-heading p:last-child {
    font-size: .97rem;
    line-height: 1.75;
  }

  /* Video */
  .video-section {
    padding-left: 14px;
    padding-right: 14px;
  }

  .video-frame {
    width: 100%;
    padding: 7px;
    box-shadow: 0 18px 55px rgba(0,0,0,.5);
  }

  .video-frame video {
    width: 100%;
    aspect-ratio: 16 / 9;
  }

  /* Experience */
  .split-section {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    gap: 34px;
  }

  .split-media {
    min-height: 0 !important;
    height: auto;
    padding: 8px;
  }

  .split-media img {
    min-height: 0 !important;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    /* Mobile experience image: crop out excess ceiling while keeping Melani + chandelier */
    object-position: center 42%;
  }

  .split-copy {
    padding-right: 0;
  }

  .split-copy p {
    font-size: .98rem;
    line-height: 1.8;
  }

  /* Services */
  .service-grid {
    gap: 10px;
  }

  .service-card {
    min-height: 0;
    padding: 30px 25px 32px;
  }

  .service-card h3 {
    margin-top: 20px;
  }

  /* Portfolio: stacked editorial cards instead of horizontal scroll */
  .gallery {
    padding-left: 0;
    padding-right: 0;
  }

  .gallery-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: 10px;
    padding: 0 14px;
    overflow: visible;
  }

  .gallery-grid figure,
  .gallery-grid .g1,
  .gallery-grid .g2,
  .gallery-grid .g3,
  .gallery-grid .g4 {
    grid-column: auto !important;
    grid-row: auto !important;
    min-width: 0;
    height: auto;
  }

  .gallery-grid figure img {
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
  }

  .gallery-grid .g4 img {
    aspect-ratio: 16 / 10;
  }

  /* Music */
  .original-music {
    padding: 74px 20px;
  }

  .original-music h2 {
    font-size: clamp(2.15rem, 10vw, 3rem);
  }

  .music-listen-btn {
    width: min(260px, 88vw);
  }

  /* About */
  .about-card {
    gap: 28px;
    padding: 30px 22px;
  }

  .about-copy {
    font-size: .98rem;
    line-height: 1.8;
  }

  /* Booking */
  .booking {
    padding-left: 16px;
    padding-right: 16px;
  }

  .booking-wrap {
    width: 100%;
    gap: 34px;
  }

  .booking-copy {
    padding: 0 4px;
  }

  .booking-panel::before {
    inset: -5px;
  }

  .booking-form {
    padding: 28px 18px;
    gap: 16px;
  }

  .booking-form::before,
  .booking-form::after {
    width: 38px;
    height: 38px;
  }

  .booking-form .field-row {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .booking-form input,
  .booking-form textarea,
  .booking-form select {
    min-height: 52px;
    font-size: 16px; /* prevents iPhone Safari auto-zoom */
  }

  .booking-form textarea {
    min-height: 150px;
  }

  .booking-submit {
    min-height: 54px;
  }

  /* Footer */
  .footer {
    padding: 30px 20px;
    gap: 22px;
  }

  .footer-brand {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .footer-script {
    font-size: 1.25rem;
  }

  .footer-links {
    width: 100%;
  }

  .footer-links a,
  .footer-links span {
    display: block;
  }
}

/* Slightly larger phone / small tablet refinement */
@media (min-width: 701px) and (max-width: 900px) {
  .hero-image {
    width: 100% !important;
    left: 0 !important;
    object-position: 68% top !important;
  }

  .hero-content {
    width: min(620px, 80vw) !important;
  }

  .gallery-grid {
    padding: 0 18px;
  }

  .booking-form {
    padding: 34px 28px;
  }
}


/* V4.13 — Final mobile polish */
@media (max-width: 700px) {

  /* HERO: give portrait and logo separate visual space */
  .hero {
    min-height: 92svh;
  }

  .hero-image {
    object-position: 76% top !important;
    filter: saturate(.82) contrast(1.03) brightness(.50);
  }

  .hero-shade {
    background:
      linear-gradient(0deg,
        rgba(4,4,4,.99) 0%,
        rgba(4,4,4,.96) 28%,
        rgba(4,4,4,.70) 50%,
        rgba(4,4,4,.22) 73%,
        rgba(4,4,4,.06) 100%),
      linear-gradient(90deg,
        rgba(4,4,4,.18) 0%,
        rgba(4,4,4,.10) 45%,
        rgba(4,4,4,.02) 100%);
  }

  .hero-content {
    margin: 0 20px 5.5vh !important;
    padding-top: 112px;
  }

  .hero-logo-wrap {
    width: min(350px, 82vw) !important;
    margin-bottom: 14px !important;
  }

  .hero-line {
    font-size: clamp(2rem, 9.6vw, 3rem);
    line-height: 1.02;
  }

  .hero-copy {
    font-size: .94rem;
    line-height: 1.62;
  }

  /* EDITORIAL HEADINGS: slightly smaller, cleaner line breaks */
  .section-heading h2,
  .split-copy h2,
  .about h2,
  .original-music h2,
  .booking h2 {
    font-size: clamp(2rem, 8.8vw, 2.72rem);
    line-height: 1.04;
  }

  .split-copy h2 {
    font-size: clamp(2.05rem, 8.6vw, 2.65rem);
  }

  .about-card h2 {
    font-size: clamp(2rem, 8.4vw, 2.55rem);
    line-height: 1.07;
  }

  /* SERVICES: tighten the very long scroll */
  .service-card {
    padding: 24px 22px 26px;
  }

  .service-card h3 {
    margin-top: 14px;
    margin-bottom: 10px;
  }

  .service-card p {
    line-height: 1.62;
  }

  /* PORTFOLIO: consistent luxury editorial crops */
  .gallery-grid figure img {
    aspect-ratio: 4 / 4.6 !important;
    height: auto !important;
    object-fit: cover;
    object-position: center 28%;
  }

  .gallery-grid .g2 img {
    object-position: center 32%;
  }

  .gallery-grid .g3 img {
    object-position: center 24%;
  }

  .gallery-grid .g4 img {
    aspect-ratio: 4 / 3.6 !important;
    object-position: center 28%;
  }

  /* ABOUT */
  .about-card {
    padding: 26px 18px 28px;
  }

  .about-copy {
    line-height: 1.68;
  }

  /* BOOKING: preserve all fields, tighten spacing */
  .booking {
    padding-top: 68px;
    padding-bottom: 72px;
  }

  .booking-wrap {
    gap: 28px;
  }

  .booking-intro {
    line-height: 1.68;
  }

  .booking-note {
    margin-top: 28px;
    padding-top: 20px;
  }

  .booking-form {
    padding: 24px 16px;
    gap: 13px;
  }

  .booking-form label {
    gap: 6px;
  }

  .booking-form .field-row {
    gap: 13px;
  }

  .booking-form input,
  .booking-form textarea,
  .booking-form select {
    min-height: 48px;
    padding: 12px 13px;
  }

  .booking-form textarea {
    min-height: 132px;
  }

  .form-footer {
    gap: 14px;
    margin-top: 2px;
  }

  /* FOOTER: compact, intentional, polished */
  .footer {
    padding: 34px 24px 42px;
    border-top: 1px solid rgba(216,150,120,.16);
    gap: 18px;
  }

  .footer-brand {
    gap: 8px;
  }

  .footer-brand strong {
    color: #d9a083;
    letter-spacing: .14em;
    font-size: 1.02rem;
  }

  .footer-script {
    color: #b87457;
    font-size: 1.18rem;
    margin-top: 2px;
  }

  .footer-links {
    display:flex;
    flex-wrap:wrap;
    gap: 8px 16px;
    align-items:center;
    margin-top: 6px;
  }

  .footer-links a,
  .footer-links span {
    display:inline-block;
    color:#a89b95;
    text-decoration:none;
    font-size:.86rem;
  }

  .footer-links a:hover {
    color:#d7a083;
  }
}


/* V4.14 — Final production polish */
@media (max-width: 700px) {
  /* On phones, the logo is the hero. The portrait is intentionally removed so
     the mark is not competing with a face directly behind it. */
  .hero {
    min-height: auto;
    padding: 118px 0 74px;
    align-items: center;
    background:
      radial-gradient(circle at 50% 24%, rgba(216,150,120,.07), transparent 34%),
      linear-gradient(rgba(4,4,4,.90), rgba(4,4,4,.98)),
      url("assets/black-velvet-texture.webp") center/cover;
  }

  .hero-image {
    display: none !important;
  }

  .hero-shade {
    background:
      radial-gradient(circle at 50% 34%, rgba(216,150,120,.06), transparent 36%),
      linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.30));
  }

  .hero-content {
    width: auto !important;
    margin: 0 20px !important;
    padding-top: 0 !important;
    text-align: left;
  }

  .hero-logo-wrap {
    width: min(390px, 90vw) !important;
    margin: 0 auto 20px !important;
  }

  .hero .eyebrow {
    text-align: center;
  }

  .hero-line {
    text-align: left;
  }

  .hero-copy {
    max-width: 100%;
  }
}
