/* =========================================================
   CONTACT PAGE
   ========================================================= */

/* ---------- Hero ---------- */
.cnt-hero{
  position:relative; overflow:hidden; background:var(--black);
  padding-top:calc(var(--nav-dip-depth, 112px) + 2.6rem); padding-bottom:3.2rem;
}
.cnt-hero-bg{ position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; }
.cnt-hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(11,10,8,.62) 0%, rgba(11,10,8,.82) 70%, rgba(11,10,8,.94) 100%);
}
.cnt-hero .container{ position:relative; z-index:2; }
.cnt-hero .occ-breadcrumb{ color:rgba(246,241,231,.55); margin-bottom:1.1rem; }
.cnt-hero .occ-breadcrumb a{ color:rgba(246,241,231,.8); text-decoration:none; }
.cnt-hero .occ-breadcrumb a:hover{ color:var(--gold); }
.cnt-hero .occ-breadcrumb .is-current{ color:var(--gold); }

.cnt-hero-title{ font-family:var(--font-display); font-size:clamp(2.1rem, 4vw, 3.2rem); color:var(--white); margin-bottom:.8rem; max-width:760px; }
.cnt-hero-title em{ font-style:italic; color:var(--gold); font-weight:400; }
.cnt-hero-copy{ font-family:var(--font-body); font-size:1rem; line-height:1.75; color:rgba(246,241,231,.72); max-width:600px; margin-bottom:0; }

/* ---------- Main layout: form + sidebar ---------- */
.cnt-section{ padding:3.2rem 0 4rem; background:var(--white); }
.cnt-layout{ display:grid; grid-template-columns:1.6fr 1fr; gap:2.2rem; align-items:start; }

.cnt-form-card{
  border:1px solid rgba(212,175,55,.2); border-radius:18px;
  padding:2.2rem 2.2rem 2.4rem; box-shadow:rgba(0, 0, 0, 0.24) 0px 3px 8px;
  background:var(--white);
}
.cnt-context-banner{
  display:flex; align-items:center; gap:.6rem;
  padding:.7rem 1rem; border-radius:10px; margin-bottom:1.4rem;
  background:rgba(212,175,55,.1); color:#5c5548; font-family:var(--font-body); font-size:.84rem;
}
.cnt-context-banner i{ color:var(--gold); }
.cnt-context-banner strong{ color:var(--black); }

.cnt-form-title{ font-family:var(--font-display); font-size:1.7rem; color:var(--black); margin-bottom:.4rem; }
.cnt-form-subtitle{ font-family:var(--font-body); font-size:.88rem; color:#7a7568; margin-bottom:1.6rem; max-width:520px; }

.cnt-form-step{
  display:flex; align-items:center; gap:.7rem;
  margin:1.8rem 0 1.1rem; padding-bottom:.6rem; border-bottom:1px solid rgba(212,175,55,.2);
}
.cnt-form-step:first-of-type{ margin-top:0; }
.cnt-form-step-num{
  width:26px; height:26px; border-radius:50%; background:var(--gold); color:var(--white);
  font-family:var(--font-body); font-size:.75rem; font-weight:700;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.cnt-form-step-title{ font-family:var(--font-display); font-size:1.05rem; color:var(--black); margin:0; }

.cnt-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cnt-field{ display:block; margin-bottom:1.1rem; }
.cnt-field > span{
  display:block; font-family:var(--font-body); font-size:.72rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; color:#8a8471; margin-bottom:.4rem;
}
.cnt-field input, .cnt-field select, .cnt-field textarea{
  width:100%; padding:.75rem .9rem; border-radius:9px; border:1px solid rgba(11,10,8,.15);
  font-family:var(--font-body); font-size:.88rem; color:var(--black); background:var(--white);
  transition:border-color .25s ease, box-shadow .25s ease;
}
.cnt-field textarea{ resize:vertical; min-height:100px; }
.cnt-field input:focus, .cnt-field select:focus, .cnt-field textarea:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,.15);
}
.cnt-submit{ width:100%; justify-content:center; margin-top:.6rem; border:none; cursor:pointer; }

.cnt-form-success{ text-align:center; padding:2.5rem 1rem; }
.cnt-form-success i{ font-size:2.6rem; color:var(--gold); margin-bottom:1rem; display:block; }
.cnt-form-success h3{ font-family:var(--font-display); font-size:1.5rem; color:var(--black); margin-bottom:.5rem; }
.cnt-form-success p{ font-family:var(--font-body); font-size:.9rem; color:#7a7568; margin:0; }

/* ---------- Custom hover-dropdown (Event Type, Guest Count, Budget) ---------- */
.cnt-select-wrap{
  position:relative; display:flex; align-items:center; gap:.55rem;
  padding:.65rem 2rem .65rem .8rem; border-radius:9px; border:1px solid rgba(11,10,8,.15);
  background:var(--white); transition:border-color .25s ease, box-shadow .25s ease;
}
.cnt-select-wrap:hover, .cnt-select-wrap.is-open{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,.15); }
.cnt-select-icon{ flex-shrink:0; color:var(--gold); font-size:.9rem; }
.cnt-select-trigger{
  flex:1; border:none; background:transparent; padding:0; margin:0; text-align:left;
  font-family:var(--font-body); font-size:.88rem; font-weight:600; color:var(--black);
  cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.cnt-select-trigger:focus{ outline:none; }
.cnt-select-caret{
  position:absolute; right:.85rem; top:50%; transform:translateY(-50%);
  font-size:.62rem; color:#a39c88; pointer-events:none; transition:transform .25s ease;
}
.cnt-select-wrap:hover .cnt-select-caret, .cnt-select-wrap.is-open .cnt-select-caret,
.cnt-date-wrap:hover .cnt-select-caret, .cnt-date-wrap.is-open .cnt-select-caret{ transform:translateY(-50%) rotate(180deg); color:var(--gold); }
.cnt-select-native{ position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; overflow:hidden; }

.cnt-select-menu{
  position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:30; max-height:240px; overflow-y:auto;
  background:var(--white); border-radius:12px; border:1px solid rgba(212,175,55,.25);
  box-shadow:0 20px 44px rgba(11,10,8,.18);
  padding:.4rem; opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.cnt-select-wrap:hover .cnt-select-menu, .cnt-select-wrap.is-open .cnt-select-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.cnt-select-item{
  display:block; width:100%; padding:.55rem .7rem; border:none; border-radius:8px; background:transparent;
  font-family:var(--font-body); font-size:.84rem; font-weight:600; color:#3b382f; text-align:left;
  cursor:pointer; transition:background .18s ease, color .18s ease;
}
.cnt-select-item:hover{ background:rgba(212,175,55,.1); color:var(--black); }
.cnt-select-item.is-selected{ background:rgba(212,175,55,.14); color:var(--black); }

/* ---------- AD/BS date picker ---------- */
.cnt-date-wrap{
  position:relative; z-index:5; isolation:isolate;
  display:flex; align-items:center; gap:.55rem;
  padding:.65rem 2rem .65rem .8rem; border-radius:9px; border:1px solid rgba(11,10,8,.15);
  background:var(--white); transition:border-color .25s ease, box-shadow .25s ease;
}
.cnt-date-wrap:hover, .cnt-date-wrap.is-open{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,.15); }
.cnt-date-menu{
  position:absolute; top:calc(100% + 8px); left:0; z-index:30; width:320px;
  background:var(--white); border-radius:14px; border:1px solid rgba(212,175,55,.25);
  box-shadow:0 24px 50px rgba(11,10,8,.2);
  padding:1rem; opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.cnt-date-wrap:hover .cnt-date-menu, .cnt-date-wrap.is-open .cnt-date-menu{ opacity:1; visibility:visible; transform:translateY(0); }

/* Segmented AD/BS toggle — active tab colour differs per side, matching
   the reference: black for AD, green for BS */
.cnt-date-tabs{
  display:flex; margin-bottom:.9rem; border-radius:9px; overflow:hidden;
  border:1px solid rgba(11,10,8,.14);
}
.cnt-date-tab{
  flex:1; padding:.55rem 0; border:none; background:var(--white);
  font-family:var(--font-body); font-size:.78rem; font-weight:700; color:#5c5548; cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.cnt-date-tab[data-cal="ad"].is-active{ background:#1a1a1a; color:var(--white); }
.cnt-date-tab[data-cal="bs"].is-active{ background:#1f6b3a; color:var(--white); }

.cnt-date-nav{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.7rem; }
.cnt-date-nav-btn{
  flex-shrink:0; width:28px; height:28px; border-radius:50%; border:1px solid rgba(11,10,8,.12); background:transparent;
  color:#5c5548; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:.7rem;
  transition:background .2s ease, color .2s ease;
}
.cnt-date-nav-btn:hover{ background:var(--gold); color:var(--white); border-color:var(--gold); }
.cnt-date-nav-center{ flex:1; text-align:center; }
.cnt-date-month-label{ display:block; font-family:var(--font-display); font-size:.98rem; font-weight:700; color:var(--black); }
.cnt-date-sub-label{ display:block; font-family:var(--font-body); font-size:.72rem; color:#4a6b8a; margin-top:.1rem; }
.cnt-date-nav-selects{ display:flex; align-items:center; justify-content:center; gap:.4rem; }
.cnt-date-nav-select{
  appearance:none; -webkit-appearance:none; border:1px solid rgba(11,10,8,.15); border-radius:7px;
  background:var(--white); padding:.3rem .55rem; font-family:var(--font-body); font-size:.8rem; font-weight:700;
  color:var(--black); cursor:pointer;
}

.cnt-date-weekdays{ display:grid; grid-template-columns:repeat(7, 1fr); margin-bottom:.3rem; }
.cnt-date-weekdays span{ text-align:center; font-family:var(--font-body); font-size:.62rem; font-weight:700; color:#4a6b8a; text-transform:uppercase; }
.cnt-date-grid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; }
.cnt-date-cell{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
  padding:.3rem 0; border-radius:8px; border:1.5px solid transparent;
  background:transparent; cursor:pointer;
  transition:background .18s ease, border-color .18s ease;
}
.cnt-date-cell-primary{ font-family:var(--font-body); font-size:.82rem; font-weight:600; color:var(--black); line-height:1; }
.cnt-date-cell-secondary{ font-family:var(--font-body); font-size:.6rem; color:#a39c88; line-height:1; }
.cnt-date-cell:hover{ background:rgba(212,175,55,.12); }
.cnt-date-cell.is-selected{ border-color:#1a1a1a; }
.cnt-date-cell.is-today{ background:rgba(212,175,55,.12); }
.cnt-date-cell.is-empty{ cursor:default; visibility:hidden; }
.cnt-date-cell.is-empty:hover{ background:transparent; }
.cnt-date-note{
  margin:.7rem 0 0; text-align:center;
  font-family:var(--font-body); font-size:.66rem; line-height:1.45; color:#a39c88;
}

/* ---------- Sidebar ---------- */
.cnt-sidebar{ display:flex; flex-direction:column; gap:1rem; }
.cnt-sidebar-card{
  display:flex; align-items:center; gap:.9rem;
  padding:1.1rem 1.2rem; border-radius:14px; border:1px solid rgba(212,175,55,.2);
  background:var(--ivory); box-shadow:rgba(0, 0, 0, 0.24) 0px 3px 8px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.cnt-sidebar-card:hover{ transform:translateY(-2px); box-shadow:rgba(0, 0, 0, 0.24) 0px 3px 8px; }
.cnt-sidebar-icon{
  flex-shrink:0; width:42px; height:42px; border-radius:50%; background:rgba(212,175,55,.14);
  display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1.05rem;
}
.cnt-sidebar-label{ display:block; font-family:var(--font-body); font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#a39c88; margin-bottom:.15rem; }
.cnt-sidebar-value{ font-family:var(--font-body); font-size:.88rem; font-weight:700; color:var(--black); text-decoration:none; }
a.cnt-sidebar-value:hover{ color:var(--gold); }

.cnt-hours-card{
  padding:1.2rem 1.3rem; border-radius:14px; border:1px solid rgba(11,10,8,.08);
  background:var(--white); box-shadow:0 8px 20px rgba(11,10,8,.04);
}
.cnt-hours-card h5{
  display:flex; align-items:center; gap:.5rem;
  font-family:var(--font-display); font-size:1rem; color:var(--black); margin-bottom:.8rem;
}
.cnt-hours-card h5 i{ color:var(--gold); }
.cnt-hours-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:.45rem 0; border-bottom:1px solid rgba(11,10,8,.06);
  font-family:var(--font-body); font-size:.82rem; color:#5c5548;
}
.cnt-hours-row:last-child{ border-bottom:none; padding-bottom:0; }
.cnt-hours-row span:last-child{ font-weight:700; color:var(--black); }

.cnt-social-card{
  padding:1.2rem 1.3rem; border-radius:14px; border:1px solid rgba(11,10,8,.08);
  background:var(--white); box-shadow:0 8px 20px rgba(11,10,8,.04);
}
.cnt-social-card h5{ font-family:var(--font-display); font-size:1rem; color:var(--black); margin-bottom:.8rem; }
.cnt-social-row{ display:flex; gap:.6rem; }
.cnt-social-row a{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(212,175,55,.3); color:var(--gold); text-decoration:none; font-size:.9rem;
  transition:background .25s ease, color .25s ease;
}
.cnt-social-row a:hover{ background:var(--gold); color:var(--white); }

/* ---------- How It Works ---------- */
.cnt-process-section{ padding:3.2rem 0 4rem; background:var(--ivory); }
.cnt-process-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.4rem; }
.cnt-process-step{
  position:relative; padding:1.8rem 1.5rem; border-radius:16px;
  background:var(--white); border:1px solid rgba(212,175,55,.18);
  box-shadow:rgba(0, 0, 0, 0.24) 0px 3px 8px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.cnt-process-step:hover{ transform:translateY(-5px); box-shadow:rgba(0, 0, 0, 0.24) 0px 3px 8px; }
.cnt-process-num{
  position:absolute; top:1rem; right:1.2rem;
  font-family:var(--font-display); font-size:1.6rem; color:rgba(212,175,55,.25); font-weight:600;
}
.cnt-process-step i{
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; border-radius:50%; background:rgba(212,175,55,.12); color:var(--gold);
  font-size:1.2rem; margin-bottom:1rem;
}
.cnt-process-step h4{ font-family:var(--font-display); font-size:1.1rem; color:var(--black); margin-bottom:.5rem; }
.cnt-process-step p{ font-family:var(--font-body); font-size:.84rem; line-height:1.55; color:#7a7568; margin:0; }

/* ---------- FAQ ---------- */
.cnt-faq-section{ padding:3.5rem 0 4.5rem; background:var(--white); }
.cnt-faq-list{ display:flex; flex-direction:column; gap:1rem; }
.cnt-faq-item{
  border-radius:14px; border:1px solid rgba(212,175,55,.2); background:var(--ivory);
  box-shadow:rgba(0, 0, 0, 0.24) 0px 3px 8px; overflow:hidden;
  transition:box-shadow .3s ease, border-color .3s ease;
}
.cnt-faq-item.is-open{ border-color:var(--gold); box-shadow:rgba(0, 0, 0, 0.24) 0px 3px 8px; }
.cnt-faq-question{
  width:100%; display:flex; align-items:center; gap:.9rem;
  padding:1.1rem 1.3rem; border:none; background:transparent; text-align:left; cursor:pointer;
  font-family:var(--font-display); font-size:1.3rem; color:var(--black);
}
.cnt-faq-question .cnt-faq-icon{
  font-size:1rem;
  flex-shrink:0; width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(212,175,55,.14); color:var(--gold);
}
.cnt-faq-item.is-open .cnt-faq-icon{ background:var(--gold); color:var(--white); }
.cnt-faq-question > span{ flex:1; }
.cnt-faq-chevron{
  font-size:.85rem; color:var(--gold);
  transition:transform .25s ease; flex-shrink:0; margin-left:.6rem;
}
.cnt-faq-item.is-open .cnt-faq-chevron{ transform:rotate(180deg); }
.cnt-faq-answer{
  max-height:0; overflow:hidden; transition:max-height .3s ease;
}
.cnt-faq-item.is-open .cnt-faq-answer{ max-height:200px; }
.cnt-faq-answer p{
  font-family:var(--font-body); font-size:.88rem; line-height:1.65; color:#5c5548;
  padding:0 1.3rem 1.3rem 4.2rem; margin:0;
}

/* ---------- Map ---------- */
.cnt-map-section{ line-height:0; background:var(--ivory); }
.cnt-map-section iframe{ display:block; filter:grayscale(.15); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:991px){
  .cnt-hero{ padding-bottom:2.4rem; }
  .cnt-layout{ grid-template-columns:1fr; }
  .cnt-process-grid{ grid-template-columns:repeat(2, 1fr); }
}

@media (max-width:575px){
  .cnt-hero{ padding-top:calc(var(--nav-dip-depth, 70px) + 1.6rem); padding-bottom:2rem; }
  .cnt-form-card{ padding:1.6rem 1.3rem 1.8rem; }
  .cnt-field-row{ grid-template-columns:1fr; }
  .cnt-process-grid{ grid-template-columns:1fr; }

  .cnt-date-menu{ left:0; right:0; width:auto; padding:.85rem; }
  .cnt-date-tab{ padding:.5rem 0; font-size:.72rem; }
  .cnt-date-nav-btn{ width:26px; height:26px; }
  .cnt-date-month-label{ font-size:.88rem; }
  .cnt-date-sub-label{ font-size:.66rem; }
  .cnt-date-weekdays span{ font-size:.56rem; }
  .cnt-date-cell{ padding:.22rem 0; }
  .cnt-date-cell-primary{ font-size:.74rem; }
  .cnt-date-cell-secondary{ font-size:.54rem; }
  .cnt-date-note{ font-size:.62rem; }
}

@media (prefers-reduced-motion: reduce){
  .cnt-sidebar-card, .cnt-process-step{ transition:none; }
}
