:root{
  --bg:#080807;
  --panel:#121210;
  --panel-strong:#0d0d0c;
  --gold:#b99245;
  --gold-light:#e1c37d;
  --gold-pale:#f1dfb4;
  --text:#f5f1e8;
  --muted:#aaa69e;
  --line:#2b2924;
  --line-gold:#594a2b;
  --danger:#a94b4b;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 50% 0,rgba(185,146,69,.06),transparent 34rem),
    var(--bg);
  color:var(--text);
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%}

/* Premium horizontal hero: 42% brand / 58% portrait */
.hero{
  width:100%;
  max-width:1600px;
  height:388px;
  margin:0 auto;
  display:grid;
  grid-template-columns:42% 58%;
  background:#070706;
  border-right:1px solid #211f1a;
  border-bottom:1px solid var(--line-gold);
  border-left:1px solid #211f1a;
  overflow:hidden;
}
.hero-brand{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  min-width:0;
  background:
    radial-gradient(circle at 20% 18%,rgba(225,195,125,.08),transparent 19rem),
    linear-gradient(135deg,#0d0d0c 0%,#080807 72%,#11100d 100%);
}
.hero-brand::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(225,195,125,.13);
  pointer-events:none;
}
.brand-lockup{
  position:relative;
  width:100%;
  padding:34px clamp(30px,4.5vw,72px);
  text-align:left;
}
.brand-mark{
  width:54px;
  height:54px;
  margin-bottom:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  border:1px solid rgba(225,195,125,.62);
  color:var(--gold-light);
  font-family:Georgia,"Times New Roman",serif;
  font-size:21px;
  letter-spacing:.02em;
}
.brand-mark i{
  display:block;
  width:1px;
  height:28px;
  background:linear-gradient(transparent,var(--gold-light),transparent);
  transform:rotate(19deg);
}
.brand-kicker,
.eyebrow{
  color:var(--gold-light);
  font-size:11px;
  line-height:1.35;
  letter-spacing:.28em;
  font-weight:700;
}
.hero h1{
  margin:8px 0 0;
  color:var(--gold-pale);
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  text-transform:uppercase;
}
.brand-name{
  display:block;
  font-size:clamp(38px,4vw,64px);
  line-height:.92;
  letter-spacing:.035em;
}
.brand-studio{
  display:block;
  margin-top:5px;
  color:#d2b97f;
  font-size:clamp(19px,1.75vw,28px);
  line-height:1;
  letter-spacing:.19em;
}
.brand-rule{
  width:min(285px,82%);
  height:1px;
  margin:16px 0 11px;
  background:linear-gradient(90deg,var(--gold-light),rgba(225,195,125,.12));
}
.brand-signature{
  margin:0;
  color:#e7dcc4;
  font-size:11px;
  font-weight:700;
  letter-spacing:.32em;
}
.location{
  margin:12px 0 17px;
  color:#b9b3a8;
  font-size:14px;
}
.hero-photo{
  position:relative;
  min-width:0;
  height:388px;
  overflow:hidden;
  background:#100f0d;
}
.hero-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:64% 32%;
}
.photo-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,7,6,.70) 0%,rgba(7,7,6,.17) 15%,transparent 33%),
    linear-gradient(0deg,rgba(5,5,4,.17),transparent 36%);
  pointer-events:none;
}

.btn{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  border:1px solid var(--gold);
  border-radius:2px;
  padding:13px 20px;
  text-decoration:none;
  font-weight:800;
  letter-spacing:.1em;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.btn:hover:not(:disabled){
  transform:translateY(-1px);
  box-shadow:0 12px 30px rgba(185,146,69,.16);
}
.btn:focus-visible,
input:focus-visible,
select:focus-visible,
.slot:focus-visible{
  outline:2px solid var(--gold-light);
  outline-offset:3px;
}
.primary{
  background:linear-gradient(135deg,var(--gold-light),var(--gold));
  color:#090908;
}
.hero-btn{
  min-width:218px;
  padding:12px 18px;
  font-size:12px;
}
.btn-arrow{font-size:17px;font-weight:400;line-height:1}
.btn:disabled{opacity:.38;cursor:not-allowed}
.wide{width:100%;font-size:15px}

main{
  position:relative;
  z-index:3;
  max-width:1100px;
  margin:-20px auto 0;
  padding:0 18px 64px;
}
.card{
  margin-bottom:18px;
  padding:28px;
  background:linear-gradient(145deg,rgba(20,20,18,.99),rgba(14,14,13,.99));
  border:1px solid var(--line);
  border-radius:3px;
  box-shadow:0 22px 60px rgba(0,0,0,.34);
}
.booking-card{border-top-color:rgba(225,195,125,.58)}
.section-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:end;
  margin-bottom:22px;
}
.contact{color:var(--muted);font-size:13px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label,.label-title{
  display:flex;
  flex-direction:column;
  gap:8px;
  color:#d9d4c9;
  font-size:12px;
  font-weight:700;
  letter-spacing:.035em;
}
input,select{
  width:100%;
  background:#0a0a09;
  color:var(--text);
  border:1px solid #34322d;
  border-radius:2px;
  padding:14px;
  font-size:16px;
  outline:none;
  color-scheme:dark;
}
input:focus,select:focus{border-color:var(--gold)}
.lt-calendar-shell{position:relative;width:100%;font-weight:400;letter-spacing:normal}
.lt-date-trigger{
  width:100%;
  min-height:49px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border:1px solid #34322d;
  border-radius:2px;
  background:#0a0a09;
  color:var(--text);
  font:inherit;
  font-size:16px;
  text-align:left;
  cursor:pointer;
}
.lt-date-trigger:hover,.lt-date-trigger[aria-expanded="true"]{border-color:var(--gold)}
.lt-date-trigger:focus-visible,.lt-calendar-popover button:focus-visible{outline:2px solid var(--gold-light);outline-offset:2px}
.lt-date-icon{color:var(--gold-light);font-size:18px;line-height:1}
.lt-calendar-popover{
  position:absolute;
  z-index:60;
  top:calc(100% + 8px);
  left:0;
  width:min(336px,calc(100vw - 48px));
  padding:14px;
  border:1px solid var(--line-gold);
  border-radius:3px;
  background:linear-gradient(145deg,#171713,#0d0d0c);
  box-shadow:0 24px 60px rgba(0,0,0,.72);
  color:var(--text);
}
.lt-calendar-popover[hidden]{display:none}
.lt-calendar-head{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;margin-bottom:12px}
.lt-calendar-title{text-align:center;color:var(--gold-pale);font-family:Georgia,"Times New Roman",serif;font-size:18px;font-weight:400}
.lt-calendar-nav,.lt-calendar-today,.lt-calendar-day{
  border:1px solid transparent;
  background:transparent;
  color:#d8d3c9;
  font:inherit;
  cursor:pointer;
}
.lt-calendar-nav{width:40px;height:40px;border-color:#39352c;color:var(--gold-light);font-size:25px;line-height:1}
.lt-calendar-nav:hover,.lt-calendar-today:hover{border-color:var(--gold)}
.lt-calendar-weekdays,.lt-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.lt-calendar-weekdays{margin-bottom:5px;color:#9f998e;font-size:11px;font-weight:700;text-align:center}
.lt-calendar-weekdays span{padding:4px 0}
.lt-calendar-day,.lt-calendar-blank{min-width:0;height:38px}
.lt-calendar-day{border-radius:2px;font-size:13px}
.lt-calendar-day:hover:not(:disabled){border-color:#796336;background:#1d1a13;color:var(--gold-light)}
.lt-calendar-day.is-today{border-color:#55482f}
.lt-calendar-day.is-selected{border-color:var(--gold-light);background:var(--gold);color:#090908;font-weight:800}
.lt-calendar-day:disabled{color:#56524a;cursor:not-allowed;opacity:.5}
.lt-calendar-footer{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);text-align:right}
.lt-calendar-today{padding:7px 9px;border-color:#39352c;border-radius:2px;color:var(--gold-light);font-size:12px}
.lt-calendar-today:disabled{opacity:.4;cursor:not-allowed}
.slots-wrap{margin:20px 0}
.slots{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
.slot{
  min-height:42px;
  border:1px solid #4b422f;
  background:#0d0d0c;
  color:var(--gold-light);
  padding:10px 14px;
  border-radius:2px;
  cursor:pointer;
}
.slot:hover{border-color:var(--gold-light)}
.slot.active{background:var(--gold);color:#111;border-color:var(--gold-light)}
.muted{color:var(--muted);font-size:14px}
.selected{margin:18px 0;color:var(--muted)}
#message{margin-top:14px}
.success{border:1px solid #4c673d;background:#152012;padding:16px;border-radius:2px}
.error{border:1px solid #703838;background:#211212;padding:12px;border-radius:2px}
.cancel-link{display:inline-block;margin-top:10px;color:var(--gold-light)}
.info-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:28px 48px;
  align-items:center;
}
.info-card p{color:#c3beb4;line-height:1.65;max-width:700px;margin-bottom:0}
.studio-hours{border-left:1px solid var(--line-gold);padding-left:24px}
.studio-hours div{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.055);
  font-size:13px;
}
.studio-hours span{color:var(--gold-light);font-weight:700}
.studio-hours strong{font-weight:500;color:#d8d3c9}
.admin-link{position:absolute;right:12px;bottom:9px;color:#746e61;font-size:11px}
.privacy-note{margin:13px 0 0;color:#858077;font-size:12px;line-height:1.55}
.privacy-note a,footer a{color:#a98f59}
.privacy-copy{color:#c9c3b8;line-height:1.7}
.privacy-copy h3{margin:28px 0 8px;color:#eee5d3;font-family:Georgia,"Times New Roman",serif;font-weight:400}
.privacy-copy a{color:var(--gold-light)}

h2{
  margin:7px 0 10px;
  color:#eee5d3;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:34px;
}
footer{
  text-align:center;
  color:#6f6a61;
  border-top:1px solid #1f1e1a;
  padding:26px;
  font-size:11px;
  letter-spacing:.1em;
}

/* Admin and cancellation views keep their existing behavior. */
.admin-shell{max-width:1100px;margin:0 auto;padding:30px 18px 70px}
.admin-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.admin-top a{color:var(--gold-light)}
.admin-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row input,.row button{width:auto}
.table{width:100%;border-collapse:collapse;margin-top:15px}
.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:12px 8px;font-size:14px}
.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#292316;color:var(--gold-light);font-size:12px}
.danger{background:#4b1d1d;color:#fff;border-color:#7a3232}
.small{padding:8px 10px;font-size:12px}
hr{border:none;border-top:1px solid var(--line);margin:25px 0}

@media(max-width:900px){
  .hero{height:370px;grid-template-columns:44% 56%}
  .hero-photo{height:370px}
  .brand-lockup{padding:28px 32px}
  .brand-mark{width:48px;height:48px;margin-bottom:13px}
  .brand-name{font-size:42px}
  .brand-studio{font-size:19px}
  .location{margin:10px 0 14px}
}

@media(max-width:700px){
  .hero{
    height:auto;
    grid-template-columns:1fr;
    border-right:0;
    border-left:0;
  }
  .hero-photo{grid-row:1;height:300px}
  .hero-photo img{object-position:66% 38%}
  .photo-shade{background:linear-gradient(0deg,rgba(7,7,6,.45),transparent 30%)}
  .hero-brand{grid-row:2}
  .hero-brand::before{inset:10px}
  .brand-lockup{padding:25px 26px 28px;text-align:center}
  .brand-mark{width:44px;height:44px;margin:0 auto 12px;font-size:18px}
  .brand-mark i{height:23px}
  .brand-kicker{font-size:9px}
  .brand-name{font-size:38px}
  .brand-studio{font-size:17px;letter-spacing:.16em}
  .brand-rule{margin:13px auto 9px}
  .brand-signature{font-size:10px}
  .location{font-size:13px;margin:10px 0 14px}
  .hero-btn{min-width:210px}
  main{margin:0 auto;padding:12px 12px 52px}
  .card{padding:21px}
  .grid{grid-template-columns:1fr}
  .section-head{align-items:flex-start;flex-direction:column;gap:7px}
  .info-card{grid-template-columns:1fr;gap:20px}
  .studio-hours{border-left:0;border-top:1px solid var(--line-gold);padding:14px 0 0}
  h2{font-size:28px}
  .table{display:block;overflow:auto}
  .slot{min-width:58px;min-height:44px;padding:11px 14px}
  .lt-calendar-popover{width:100%;padding:12px}
  .lt-calendar-day,.lt-calendar-blank{height:40px}
}

@media(max-width:420px){
  .hero-photo{height:276px}
  .brand-lockup{padding-right:20px;padding-left:20px}
  .brand-name{font-size:35px}
  .card{padding:18px}
  .admin-top{align-items:flex-start}
  .admin-top-actions{align-items:flex-end;flex-direction:column-reverse;gap:9px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn{transition:none}
}
