
:root{--graphite:#171b1c;--graphite-2:#202526;--paper:#eeeae1;--paper-dim:#aaa79f;--brass:#b99a5b;--brass-bright:#d2b36d;--line:rgba(238,234,225,.12);--panel:#1b2021;--header-bg:rgba(23,27,28,.92)}[data-theme="light"]{--graphite:#ece8df;--graphite-2:#f6f3ed;--paper:#202526;--paper-dim:#6f716f;--line:rgba(32,37,38,.14);--panel:#f4f1ea;--header-bg:rgba(246,243,237,.93)}*{box-sizing:border-box}body{margin:0;background:var(--graphite);color:var(--paper);font-family:Inter,sans-serif}.eyebrow{color:var(--brass);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.16em;text-transform:uppercase}.appointment-hero{position:relative;min-height:520px;display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--graphite-2),var(--graphite))}.appointment-hero .topo{position:absolute;inset:-15%;width:130%;height:130%;opacity:.19;pointer-events:none}.appointment-hero-inner{position:relative;z-index:1;width:min(1500px,90vw);margin:0 auto;padding:120px 0 72px}.appointment-hero h1{margin:18px 0 0;font:500 clamp(64px,9vw,128px)/.82 Oswald,sans-serif;text-transform:uppercase;letter-spacing:-.025em}.appointment-hero h1 em{font-style:normal;color:var(--brass)}.hero-copy{display:grid;grid-template-columns:minmax(280px,680px) auto;justify-content:space-between;gap:50px;align-items:end;margin-top:40px}.hero-copy p{margin:0;color:var(--paper-dim);font-size:14px;line-height:1.65}.hero-note{padding-left:22px;border-left:1px solid var(--line)}.hero-note strong,.hero-note span{display:block}.hero-note strong{font:500 18px/1 Oswald,sans-serif;text-transform:uppercase}.hero-note span{margin-top:6px;color:var(--paper-dim);font-size:10px}.appointment-main{width:min(1500px,90vw);margin:0 auto;padding:72px 0 100px}.request-shell{display:grid;grid-template-columns:minmax(270px,.72fr) minmax(520px,1.28fr);border:1px solid var(--line);background:var(--panel)}.request-intro{padding:44px;border-right:1px solid var(--line);background:linear-gradient(145deg,rgba(185,154,91,.06),transparent 50%)}.request-intro h2,.success-panel h2{margin:12px 0 18px;font:500 clamp(38px,5vw,62px)/.95 Oswald,sans-serif;text-transform:uppercase}.request-intro>p{margin:0;color:var(--paper-dim);font-size:12px;line-height:1.7}.request-facts{display:grid;margin-top:36px;border-top:1px solid var(--line)}.request-facts>div{padding:17px 0;border-bottom:1px solid var(--line)}.request-facts span{display:block;margin-bottom:6px;color:var(--brass);font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.12em;text-transform:uppercase}.request-facts strong,.request-facts a{color:var(--paper);font-size:11px;text-decoration:none}.appointment-form{padding:42px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:8px}.field.wide{grid-column:1/-1}.field>span{color:var(--paper-dim);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:0;background:var(--graphite-2);color:var(--paper);padding:13px 14px;font:500 12px/1.45 Inter,sans-serif;outline:none}.field input,.field select{min-height:48px}.field textarea{resize:vertical;min-height:150px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brass)}.field small{text-align:right;color:var(--paper-dim);font:500 8px/1 "JetBrains Mono",monospace}.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-footer{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.form-footer p{max-width:520px;margin:0;color:var(--paper-dim);font-size:9px;line-height:1.55}.form-footer button,.success-panel button{min-height:48px;padding:0 22px;border:1px solid var(--brass);background:var(--brass);color:#171b1c;font:600 11px/1 Oswald,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.form-footer button:disabled{opacity:.5}.form-message{min-height:18px;margin-top:14px;color:var(--paper-dim);font:500 9px/1.45 "JetBrains Mono",monospace}.form-message[data-type="error"]{color:#d99b86}.success-panel{grid-column:2;padding:54px}.success-panel p{max-width:620px;color:var(--paper-dim);font-size:12px;line-height:1.7}.success-panel button{margin-top:18px}.appointment-footer{display:flex;justify-content:space-between;width:min(1500px,90vw);margin:0 auto;padding:32px 0 52px;border-top:1px solid var(--line);color:var(--paper-dim);font:500 9px/1.4 "JetBrains Mono",monospace;text-transform:uppercase}.appointment-footer a{color:var(--brass);text-decoration:none}@media(max-width:900px){.hero-copy{grid-template-columns:1fr}.request-shell{grid-template-columns:1fr}.request-intro{border-right:0;border-bottom:1px solid var(--line)}.success-panel{grid-column:1}}@media(max-width:620px){.appointment-hero{min-height:470px}.appointment-main{padding-top:38px}.request-intro,.appointment-form,.success-panel{padding:26px 20px}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.form-footer{align-items:stretch;flex-direction:column}.form-footer button{width:100%}.appointment-footer{flex-direction:column;gap:15px}}


/* ===== APPOINTMENTS VISUAL CONSISTENCY POLISH ===== */
.appointment-hero{
  min-height:560px;
  background:var(--graphite);
}
.appointment-hero .topo{
  position:absolute;
  inset:-28% -8% -20% 35%;
  width:90%;
  height:150%;
  opacity:.34;
  pointer-events:none;
  color:var(--paper-dim);
}
.appointment-hero .topo .contours{
  stroke:currentColor;
  stroke-width:1.15;
  vector-effect:non-scaling-stroke;
}
.appointment-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,var(--graphite) 0%,rgba(23,27,28,.96) 30%,rgba(23,27,28,.52) 68%,rgba(23,27,28,.12) 100%);
  pointer-events:none;
}
.appointment-hero-inner{z-index:2}
.page-kicker{
  color:var(--brass);
  font:600 9px/1 "JetBrains Mono",monospace;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.appointment-hero h1{
  margin:18px 0 0;
  font:500 clamp(68px,8.5vw,122px)/.84 Oswald,sans-serif;
  letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--paper);
}
.appointment-hero h1 span{color:var(--paper)}
.hero-copy{margin-top:42px}
.hero-note strong{color:var(--paper)}
@media(max-width:700px){
  .appointment-hero .topo{inset:-10% -45% -10% 15%;width:140%;opacity:.25}
}


/* ===== APPOINTMENT PAGE FOCUSED FIX ===== */
.appointment-hero-inner{
  width:min(1500px,90vw);
  padding:118px 0 74px;
}
.appointment-hero h1{
  max-width:1100px;
  margin:18px 0 0;
  font-family:'Oswald',sans-serif;
  font-size:clamp(42px,8vw,96px);
  font-weight:600;
  line-height:.98;
  letter-spacing:0;
  text-transform:uppercase;
  overflow:visible;
}
.appointment-hero h1 em{
  font-style:normal;
  color:var(--brass-bright);
}
.hero-copy p{
  max-width:700px;
  font-size:17px;
  line-height:1.6;
}
.hero-note span{line-height:1.5}


@media(max-width:620px){
  .appointment-hero h1{font-size:clamp(46px,15vw,68px);line-height:.98}
  .hero-copy p{font-size:15px}
}

/* ===== APPOINTMENT SELECT CONTROLS ===== */
.appointment-form .field{
  position:relative;
}

.appointment-form .field select{
  appearance:none;
  -webkit-appearance:none;
  border-radius:0!important;
  min-height:48px;
  padding:0 46px 0 14px!important;
  border:1px solid var(--line)!important;
  background:
    linear-gradient(45deg,transparent 50%,var(--paper-dim) 50%) calc(100% - 19px) 20px/5px 5px no-repeat,
    linear-gradient(135deg,var(--paper-dim) 50%,transparent 50%) calc(100% - 14px) 20px/5px 5px no-repeat,
    var(--graphite-2)!important;
  color:var(--paper)!important;
  font-family:Inter,sans-serif!important;
  font-size:12px!important;
  font-weight:500!important;
  line-height:1!important;
  box-shadow:none!important;
  cursor:pointer;
  transition:border-color .16s ease,background-color .16s ease;
}

.appointment-form .field select:hover{
  border-color:rgba(185,154,91,.55)!important;
}

.appointment-form .field select:focus,
.appointment-form .field select:focus-visible{
  border-color:var(--brass)!important;
  outline:none!important;
  box-shadow:none!important;
}

.appointment-form .field select:disabled{
  opacity:.48;
  cursor:not-allowed;
}

.appointment-form .field select option{
  background:#202526;
  color:#eeeae1;
}

/* Safari can paint its own inner control unless explicitly neutralized. */
.appointment-form select::-ms-expand{
  display:none;
}

/* ===== MOBILE DATE INPUT WIDTH FIX ===== */
@media(max-width:620px){
  .appointment-form,
  .appointment-form .form-grid,
  .appointment-form .field{
    min-width:0;
  }

  .appointment-form .field input[type="date"]{
    display:block;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    -webkit-appearance:none;
    appearance:none;
  }

  .appointment-form .field input[type="date"]::-webkit-date-and-time-value{
    min-width:0;
    text-align:left;
  }
}

/* ===== APPOINTMENTS HERO: EXACT EVENTS SYSTEM =====
   These values and hero rules intentionally mirror css/events.css.
*/
:root{
  --graphite:#1B1D1E;
  --graphite-2:#232628;
  --slate:#3A4148;
  --slate-light:#5A6570;
  --brass:#B99A5B;
  --brass-bright:#D4B876;
  --oxide:#7A4A3A;
  --paper:#EDE8DF;
  --paper-dim:#B9B4A8;
  --line:rgba(237,232,223,.12);
  --topo-line:#8A93A0;
  --header-bg:rgba(27,29,30,.88);
  --shadow:rgba(0,0,0,.6);
  --ink:#171B1C;
  color-scheme:dark;
}

:root[data-theme="light"]{
  --graphite:#F2EFE7;
  --graphite-2:#E7E2D5;
  --slate:#C7C0AF;
  --slate-light:#8A8271;
  --brass:#8C6A34;
  --brass-bright:#6E5326;
  --oxide:#7A4A3A;
  --paper:#211F1A;
  --paper-dim:#5B5646;
  --line:rgba(33,31,26,.14);
  --topo-line:#A9A190;
  --header-bg:rgba(242,239,231,.88);
  --shadow:rgba(60,55,40,.18);
  --ink:#171B1C;
  color-scheme:light;
}

/* Exact Events hero geometry / topo / overlay. */
.hero.appointments-hero{
  position:relative;
  min-height:55vh;
  display:flex;
  align-items:flex-end;
  padding:150px 5vw 80px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:var(--graphite);
}

.hero.appointments-hero .topo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  opacity:.85;
  mask-image:linear-gradient(180deg,black 0%,black 92%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,black 0%,black 92%,transparent 100%);
  transform:scale(1.04);
  color:inherit;
}

.hero.appointments-hero .topo .contours path{
  stroke:var(--topo-line);
  stroke-width:1;
  opacity:.8;
  vector-effect:non-scaling-stroke;
}

.hero.appointments-hero .hero-bg{
  position:absolute;
  inset:0;
  z-index:1;
  opacity:.72;
  background:
    radial-gradient(circle at 72% 35%,rgba(185,154,91,.14),transparent 35%),
    radial-gradient(circle at 20% 80%,rgba(122,74,58,.12),transparent 32%),
    linear-gradient(180deg,rgba(27,29,30,.15) 0%,rgba(27,29,30,.55) 65%,rgba(27,29,30,.75) 100%);
}

:root[data-theme="light"] .hero.appointments-hero .hero-bg{
  background:
    radial-gradient(circle at 72% 35%,rgba(140,106,52,.14),transparent 35%),
    radial-gradient(circle at 20% 80%,rgba(122,74,58,.10),transparent 32%),
    linear-gradient(180deg,rgba(242,239,231,.15) 0%,rgba(242,239,231,.55) 65%,rgba(242,239,231,.75) 100%);
}

.hero.appointments-hero .hero-inner{
  position:relative;
  z-index:2;
  max-width:1180px;
  width:100%;
  margin:auto;
}

.hero.appointments-hero .eyebrow{
  font-size:12px;
  color:var(--brass);
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:18px;
}

.hero.appointments-hero h1{
  margin:0;
  max-width:none;
  font-family:Oswald,sans-serif;
  font-size:clamp(52px,8vw,92px);
  font-weight:500;
  line-height:.95;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--paper);
  overflow:visible;
}

.hero.appointments-hero h1 em{
  font-style:normal;
  color:var(--brass-bright);
}

.hero.appointments-hero .hero-copy{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:50px;
  margin-top:28px;
  max-width:1000px;
}

.hero.appointments-hero .hero-copy p{
  margin:0;
  max-width:620px;
  color:var(--paper-dim);
  font-size:16px;
  line-height:1.6;
}

.hero.appointments-hero .hero-meta{
  border-left:2px solid var(--oxide);
  padding-left:18px;
  min-width:210px;
}

.hero.appointments-hero .hero-meta strong{
  display:block;
  font-family:"JetBrains Mono",monospace;
  font-size:25px;
  line-height:1;
  color:var(--brass-bright);
  font-weight:500;
  text-transform:uppercase;
}

.hero.appointments-hero .hero-meta span{
  display:block;
  margin-top:6px;
  font-size:11px;
  color:var(--paper-dim);
  text-transform:uppercase;
  letter-spacing:.12em;
  line-height:1.45;
}

/* The appointment phrase is longer than Events' LOCAL / Shooting calendar,
   so give it enough room without changing the Events typography. */
.hero.appointments-hero .appointment-hero-meta{
  min-width:330px;
  max-width:410px;
}

@media(max-width:900px){
  .hero.appointments-hero .hero-copy{
    align-items:flex-start;
    flex-direction:column;
  }
  .hero.appointments-hero .hero-meta{
    min-width:0;
    max-width:620px;
    border-left:0;
    border-top:1px solid var(--line);
    padding:12px 0 0;
  }
}

@media(max-width:820px){
  .hero.appointments-hero{
    min-height:60vh;
    padding-top:130px;
  }
}

@media(max-width:620px){
  .hero.appointments-hero h1{
    font-size:clamp(48px,15vw,70px);
  }
}

/* ===== HERO META PLATE POLISH ===== */
.hero.appointments-hero .hero-copy{
  max-width:1180px;
  width:100%;
}

.hero.appointments-hero .appointment-hero-meta{
  margin-left:auto;
  min-width:350px;
  max-width:430px;
  padding:15px 18px 15px 20px;
  border-left:3px solid var(--brass-bright);
  background:rgba(185,154,91,.075);
}

.hero.appointments-hero .appointment-hero-meta strong{
  color:var(--brass-bright);
}

.hero.appointments-hero .appointment-hero-meta span{
  color:var(--paper-dim);
}

:root[data-theme="light"] .hero.appointments-hero .appointment-hero-meta{
  border-left-color:#b08a42;
  background:rgba(140,106,52,.075);
}

:root[data-theme="light"] .hero.appointments-hero .appointment-hero-meta strong{
  color:#211f1a;
}

:root[data-theme="light"] .hero.appointments-hero .appointment-hero-meta span{
  color:#675f4e;
}

@media(max-width:900px){
  .hero.appointments-hero .appointment-hero-meta{
    margin-left:0;
    min-width:0;
    max-width:620px;
    width:100%;
    padding:15px 18px;
    border-left:0;
    border-top:3px solid var(--brass-bright);
  }

  :root[data-theme="light"] .hero.appointments-hero .appointment-hero-meta{
    border-top-color:#b08a42;
  }
}

/* ===== LIGHT MODE BRASS CTA TEXT ===== */
:root[data-theme="light"] .form-footer button,
:root[data-theme="light"] .success-panel button{
  color:#EDE8DF!important;
  -webkit-text-fill-color:#EDE8DF!important;
}
