/* ==========================================================================
   CURATE DESTINATIONS — Ivory Editorial
   The Curate Group
   ========================================================================== */

:root{
  /* Palette */
  --ivory:        #f2efe9;
  --ivory-warm:   #eae6dd;
  --ivory-pure:   #fbfaf7;
  --ink:          #1c1a17;
  --ink-soft:     #57524a;
  --ink-mute:     #8b8478;
  --bronze:       #9a6f3f;
  --bronze-lt:    #b8895a;
  --rule:         #d9d2c6;
  --rule-lt:      #e4ded4;

  /* Accent — overridden per market */
  --accent:       #9a6f3f;

  /* Type */
  --display: 'Bodoni Moda', Georgia, serif;
  --body:    'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;

  /* Rhythm */
  --pad:     7vw;
  --sec:     clamp(80px, 9vw, 130px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--body);
  font-weight:300;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

::selection{background:var(--ink);color:var(--ivory)}

/* ---------- Type primitives ---------- */
.eyebrow{
  font-size:10px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--accent);font-weight:600;
}
.rule-sm{width:60px;height:2px;background:var(--accent);margin:26px 0}

h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:-.02em;line-height:1.05}
h1{font-size:clamp(3rem,6.4vw,5.8rem);line-height:1}
h2{font-size:clamp(2.2rem,4vw,3.5rem)}
h3{font-size:clamp(1.4rem,2vw,1.9rem)}
em{font-style:italic}

.lede{font-size:clamp(15px,1.15vw,17px);line-height:1.8;color:var(--ink-soft);max-width:56ch}

/* ---------- Nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px var(--pad);
  background:rgba(242,239,233,0);
  transition:background .4s, padding .4s, border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.stuck{
  background:rgba(242,239,233,.94);
  backdrop-filter:blur(14px);
  padding:14px var(--pad);
  border-bottom-color:var(--rule);
}
.brand{font-family:var(--display);font-size:1.35rem;letter-spacing:.01em;white-space:nowrap}
.brand b{font-weight:400}
.brand span{color:var(--accent);font-style:italic}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:500;color:var(--ink-soft);transition:color .25s;
}
.nav-links a:hover{color:var(--accent)}
.nav-cta{
  border:1px solid var(--ink);padding:11px 20px;color:var(--ink)!important;
  transition:all .3s;
}
.nav-cta:hover{background:var(--ink);color:var(--ivory)!important}
.burger{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;gap:5px}
.burger span{display:block;width:22px;height:1px;background:var(--ink);transition:all .3s}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;padding:16px 34px;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--ink);color:var(--ink);
  transition:all .3s;cursor:pointer;font-family:var(--body);
}
.btn:hover{background:var(--ink);color:var(--ivory)}
.btn-solid{background:var(--ink);color:var(--ivory)}
.btn-solid:hover{background:var(--accent);border-color:var(--accent);color:var(--ivory-pure)}
.btns{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- Hero ---------- */
.hero{
  min-height:92vh;display:grid;grid-template-columns:1.35fr .8fr;
  align-items:center;gap:70px;padding:130px var(--pad) 80px;
}
.hero-aside{border-left:1px solid var(--rule);padding-left:44px}
.aside-item{padding:22px 0;border-bottom:1px solid var(--rule-lt)}
.aside-item:last-child{border-bottom:none;padding-bottom:0}
.aside-n{font-family:var(--display);font-size:2.4rem;line-height:1}
.aside-l{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);margin-top:8px;font-weight:500}

/* ---------- Sections ---------- */
.sec{padding:var(--sec) var(--pad)}
.sec-alt{background:var(--ivory-warm);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sec-head{margin-bottom:56px;max-width:660px}
.sec-head h2{margin-top:22px}

/* ---------- Market grid ---------- */
.tier-label{
  font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin-bottom:8px;
}
.tier-note{font-size:13px;color:var(--ink-mute);margin-bottom:26px;font-weight:300}
.tier-block + .tier-block{margin-top:64px}
.mkt-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:1px;background:var(--rule);border:1px solid var(--rule);
}
.mkt{background:var(--ivory);padding:34px 26px;transition:background .3s;display:block;position:relative}
.mkt:hover{background:var(--ivory-pure)}
.mkt-city{font-family:var(--display);font-size:1.8rem;margin-bottom:6px;transition:color .3s}
.mkt:hover .mkt-city{color:var(--accent)}
.mkt-state{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);font-weight:500}
.mkt-soon{
  position:absolute;top:14px;right:14px;
  font-size:8px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-mute);border:1px solid var(--rule);padding:3px 7px;font-weight:600;
}
.mkt.soon{opacity:.55}

/* ---------- Services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.svc{background:var(--ivory);padding:40px 32px}
.svc h3{margin-bottom:14px}
.svc p{font-size:14px;line-height:1.8;color:var(--ink-soft);margin-bottom:18px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);border:1px solid var(--rule);padding:5px 9px;font-weight:600}

/* ---------- Scale tiers ---------- */
.scale-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.scale{background:var(--ivory);padding:38px 28px}
.scale-n{font-family:var(--display);font-size:2rem;color:var(--accent);margin-bottom:6px;line-height:1}
.scale-t{font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:16px}
.scale p{font-size:13.5px;line-height:1.8;color:var(--ink-soft);margin-bottom:16px}
.scale ul{list-style:none}
.scale li{font-size:12px;color:var(--ink-mute);padding:5px 0;border-bottom:1px solid var(--rule-lt)}
.scale li:last-child{border-bottom:none}

/* ---------- Pull quote ---------- */
.pull{padding:var(--sec) var(--pad);background:var(--ink);color:var(--ivory);text-align:center}
.pull blockquote{font-family:var(--display);font-size:clamp(1.6rem,3vw,2.6rem);font-weight:400;line-height:1.35;max-width:900px;margin:0 auto 26px;font-style:italic}
.pull cite{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--bronze-lt);font-style:normal;font-weight:600}

/* ---------- Work ---------- */
.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.work{background:var(--ivory);padding:34px 28px;transition:background .3s}
.work:hover{background:var(--ivory-pure)}
.work-meta{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:12px}
.work h3{font-size:1.4rem;margin-bottom:10px}
.work-stats{font-size:12px;color:var(--ink-mute);letter-spacing:.04em}

/* ---------- Local proof (city pages) ---------- */
.proof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.proof{background:var(--ivory);padding:34px 28px}
.proof h3{font-size:1.25rem;margin-bottom:12px}
.proof p{font-size:13.5px;line-height:1.8;color:var(--ink-soft)}

.venue-list{list-style:none;margin-top:8px}
.venue-list li{
  padding:16px 0;border-bottom:1px solid var(--rule-lt);
  display:flex;justify-content:space-between;gap:20px;align-items:baseline;flex-wrap:wrap;
}
.venue-list li:last-child{border-bottom:none}
.venue-n{font-family:var(--display);font-size:1.15rem}
.venue-d{font-size:12px;color:var(--ink-mute);text-align:right;flex:1;min-width:180px}

/* ---------- Form ---------- */
.form-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}
.form-side .contact-row{padding:20px 0;border-bottom:1px solid var(--rule)}
.form-side .contact-row:last-child{border-bottom:none}
.contact-l{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);font-weight:600;margin-bottom:6px}
.contact-v{font-size:15px}
.contact-v a:hover{color:var(--accent)}

form{background:var(--ivory-pure);padding:44px;border:1px solid var(--rule)}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.f-full{grid-column:1/-1}
.field{display:flex;flex-direction:column}
label{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);font-weight:600;margin-bottom:8px}
input,select,textarea{
  background:transparent;border:none;border-bottom:1px solid var(--rule);
  padding:11px 0;font-family:var(--body);font-size:14px;color:var(--ink);
  font-weight:300;transition:border-color .3s;border-radius:0;
}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--accent)}
textarea{resize:vertical;min-height:90px}
select{cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%228%22%20height%3D%225%22%20viewBox%3D%220%200%208%205%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%200l4%205%204-5z%22%20fill%3D%22%238b8478%22%2F%3E%3C%2Fsvg%3E");
  background-repeat:no-repeat;background-position:right center;padding-right:16px;
}
form .btn{margin-top:12px;width:100%}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:var(--ivory);padding:80px var(--pad) 34px}
.f-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;padding-bottom:50px;border-bottom:1px solid rgba(242,239,233,.12)}
.f-brand{font-family:var(--display);font-size:1.6rem;margin-bottom:16px}
.f-brand span{color:var(--bronze-lt);font-style:italic}
.f-blurb{font-size:13.5px;line-height:1.8;color:rgba(242,239,233,.55);max-width:290px;margin-bottom:20px}
.f-contact{font-size:13px;color:rgba(242,239,233,.72);line-height:2}
.f-contact a:hover{color:var(--bronze-lt)}
.f-col h4{
  font-family:var(--body);font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--bronze-lt);font-weight:700;margin-bottom:18px;
}
.f-col ul{list-style:none}
.f-col li{padding:5px 0}
.f-col a{font-size:13px;color:rgba(242,239,233,.62);transition:color .25s}
.f-col a:hover{color:var(--ivory)}
.f-bot{
  padding-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:11px;color:rgba(242,239,233,.4);
}

/* ---------- Motion ---------- */
.fade{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.fade.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .fade{opacity:1;transform:none}
}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
  .hero{grid-template-columns:1fr;gap:44px;min-height:auto;padding-top:120px}
  .hero-aside{border-left:none;border-top:1px solid var(--rule);padding-left:0;padding-top:24px;
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .aside-item{border-bottom:none;padding:0}
  .form-wrap{grid-template-columns:1fr;gap:44px}
  .f-top{grid-template-columns:1fr 1fr;gap:36px}
}
@media(max-width:760px){
  .burger{display:flex}
  .nav-links{
    position:fixed;top:0;right:0;bottom:0;width:74%;max-width:300px;
    background:var(--ivory-pure);flex-direction:column;align-items:flex-start;
    justify-content:center;gap:26px;padding:0 34px;
    transform:translateX(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);
    border-left:1px solid var(--rule);
  }
  .nav-links.open{transform:none}
  .nav-links a{font-size:12px}
  .f-grid{grid-template-columns:1fr}
  form{padding:30px 24px}
  .f-top{grid-template-columns:1fr}
  .hero-aside{grid-template-columns:1fr}
  .aside-item{padding:14px 0;border-bottom:1px solid var(--rule-lt)}
}
