:root {
  --ink:#191410;
  --charcoal:#26201b;
  --paper:#fffaf5;
  --cream:#f6efe8;
  --sand:#e7d9cc;
  --blush:#ead7ca;
  --taupe:#8b7a6c;
  --line:rgba(25,20,16,.14);
  --shadow:0 26px 80px rgba(45,34,24,.13);
  --serif:"Bodoni Moda", Didot, serif;
  --sans:"Inter", system-ui, sans-serif;
}
* { box-sizing:border-box; }
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; object-fit:cover; }
.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,250,245,.96);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}
.nav {
  min-height:104px;
  padding:20px 42px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:26px;
}
.nav-left,.nav-right {
  display:flex;
  align-items:center;
  gap:25px;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:11px;
  font-weight:600;
  white-space:nowrap;
}
.nav-right { justify-content:flex-end; }
.brand {
  min-width:330px;
  text-align:center;
}
.brand-title {
  font-family:var(--serif);
  font-size:36px;
  line-height:1;
  font-weight:500;
  letter-spacing:.14em;
}
.brand-tag {
  margin-top:10px;
  font-size:10px;
  letter-spacing:.29em;
  color:var(--taupe);
  text-transform:uppercase;
  font-weight:600;
}
.header-cta {
  background:var(--charcoal);
  color:#fff;
  border-radius:999px;
  padding:13px 20px;
}
.mobile-menu { display:none; }
.hero {
  padding:74px 38px 38px;
  background:
    radial-gradient(circle at 18% 20%, rgba(232,205,184,.72), transparent 28%),
    radial-gradient(circle at 80% 16%, rgba(205,184,162,.54), transparent 27%),
    linear-gradient(180deg,#fffaf5 0%,#f4eadf 100%);
}
.hero-grid {
  max-width:1360px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:34px;
  align-items:stretch;
}
.hero-copy {
  padding:58px 34px 42px 8px;
}
.eyebrow,.kicker {
  margin:0 0 16px;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:11px;
  font-weight:700;
  color:var(--taupe);
}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  margin:0;
  letter-spacing:-.025em;
}
h1 {
  font-size:clamp(56px,7vw,112px);
  line-height:.92;
  max-width:850px;
}
.subhead {
  margin:26px 0 0;
  max-width:660px;
  font-size:22px;
  line-height:1.46;
  color:#4e433a;
}
.hero-copy .body {
  max-width:640px;
  margin:18px 0 0;
  font-size:16px;
  line-height:1.85;
  color:#67594e;
}
.hero-actions {
  margin-top:32px;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}
.hero-actions-center {
  justify-content:center;
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:15px 22px;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:11px;
  font-weight:700;
  border:1px solid var(--ink);
}
.btn-dark { background:var(--ink); color:#fff; }
.btn-light { background:rgba(255,250,245,.38); }
.btn-dark-invert {
  background:#fffaf5;
  color:#191410;
  border-color:#fffaf5;
}
.btn-light-invert {
  color:#fff;
  border-color:rgba(255,250,245,.55);
}
.hero-visual {
  position:relative;
  min-height:650px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.hero-img {
  border:1px solid rgba(25,20,16,.14);
  overflow:hidden;
  box-shadow:var(--shadow);
  background:#e9ded4;
}
.hero-img img { width:100%; height:100%; }
.hero-img.large { grid-row:1 / span 2; border-radius:160px 160px 8px 8px; }
.hero-img.small-top { border-radius:8px 120px 8px 8px; }
.hero-img.small-bottom { border-radius:8px 8px 120px 8px; }
.section {
  padding:90px 38px;
}
.section-inner {
  max-width:1360px;
  margin:0 auto;
}
.section-head {
  display:grid;
  grid-template-columns:.85fr 1fr;
  gap:60px;
  align-items:end;
  margin-bottom:34px;
}
.section-head h2 {
  font-size:clamp(42px,5vw,76px);
  line-height:.98;
}
.section-head p {
  margin:0;
  color:#66584d;
  font-size:16px;
  line-height:1.8;
  max-width:620px;
}
.venue-style-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.style-card {
  min-height:360px;
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  background:#ddd0c3;
}
.style-card:nth-child(1),.style-card:nth-child(6) { border-radius:130px 130px 8px 8px; }
.style-card:nth-child(2),.style-card:nth-child(7) { border-radius:8px 130px 8px 8px; }
.style-card:nth-child(3),.style-card:nth-child(8) { border-radius:130px 8px 8px 8px; }
.style-card:nth-child(4),.style-card:nth-child(5) { border-radius:8px; }
.style-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  transition:transform .75s ease;
}
.style-card:hover img { transform:scale(1.055); }
.style-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(20,16,13,.04) 0%, rgba(20,16,13,.68) 100%);
}
.style-copy {
  position:absolute;
  inset:auto 22px 22px;
  color:#fff;
  text-shadow:0 2px 16px rgba(0,0,0,.25);
}
.style-copy small {
  display:block;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:10px;
  font-weight:700;
  margin-bottom:7px;
  opacity:.86;
}
.style-copy strong {
  display:block;
  font-family:var(--serif);
  font-size:32px;
  line-height:1;
  font-weight:400;
}
.style-copy em {
  display:block;
  margin-top:10px;
  font-style:normal;
  font-size:13px;
  line-height:1.55;
  opacity:.92;
}
.ai-studio {
  background:#201a16;
  color:#fffaf5;
  padding:96px 38px;
}
.ai-card {
  max-width:1360px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr .86fr;
  gap:44px;
  align-items:center;
}
.ai-card h2 {
  font-size:clamp(48px,6vw,92px);
  line-height:.92;
  max-width:800px;
}
.ai-card p {
  color:#dccfc2;
  line-height:1.85;
  font-size:16px;
  max-width:670px;
}
.ai-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:32px;
}
.ai-step {
  border:1px solid rgba(255,250,245,.18);
  padding:22px;
  min-height:150px;
  background:rgba(255,250,245,.045);
}
.ai-step span {
  display:block;
  color:#c5aa92;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:10px;
  font-weight:700;
  margin-bottom:16px;
}
.ai-step strong {
  display:block;
  font-family:var(--serif);
  font-size:26px;
  line-height:1.1;
  font-weight:400;
  margin-bottom:10px;
}
.ai-step p {
  margin:0;
  font-size:13px;
  line-height:1.6;
}
.ai-panel {
  background:#fffaf5;
  color:var(--ink);
  padding:30px;
  border-radius:160px 160px 12px 12px;
  box-shadow:0 30px 90px rgba(0,0,0,.25);
}
.ai-panel-inner {
  border:1px solid rgba(25,20,16,.14);
  border-radius:130px 130px 8px 8px;
  padding:110px 28px 36px;
  min-height:470px;
  background:
    linear-gradient(rgba(255,250,245,.72), rgba(255,250,245,.91)),
    url('../venue-styles/destination-wedding.png') center/cover;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.ai-panel h3 {
  font-size:44px;
  line-height:1;
  max-width:360px;
}
.ai-panel p {
  color:#5f5349;
  margin:16px 0 0;
}
.editorial-panels {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:16px;
}
.panel {
  min-height:420px;
  padding:28px;
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  display:flex;
  align-items:flex-end;
  background:#ded0c4;
}
.panel img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  transition:transform .7s ease;
}
.panel:hover img { transform:scale(1.045); }
.panel::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.62));
}
.panel-copy {
  position:relative;
  z-index:1;
  color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,.25);
}
.panel-copy h3 {
  font-size:38px;
  line-height:1;
  margin-bottom:10px;
}
.panel-copy p {
  margin:0;
  line-height:1.6;
  font-size:14px;
}
.locations {
  background:#f4e9df;
}
.location-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.location-card {
  background:#fffaf5;
  border:1px solid var(--line);
  padding:26px;
  min-height:230px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.location-card h3 {
  font-size:34px;
  line-height:1;
}
.location-card p {
  color:#67594e;
  line-height:1.65;
  margin:14px 0 0;
  font-size:14px;
}
.location-card a {
  margin-top:20px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:10px;
  font-weight:700;
  color:#7a5f4c;
}
.feature-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.feature-card {
  background:#fffaf5;
  border:1px solid var(--line);
  box-shadow:0 20px 54px rgba(42,32,23,.09);
}
.feature-card img {
  width:100%;
  height:370px;
}
.feature-body {
  padding:28px;
}
.feature-body h3 {
  font-size:38px;
  line-height:1;
  margin-bottom:13px;
}
.feature-body p:not(.kicker) {
  color:#66584d;
  line-height:1.72;
  margin:0;
  font-size:14px;
}
.feature-body a {
  display:inline-block;
  margin-top:22px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:10px;
  font-weight:700;
  border-bottom:1px solid currentColor;
  padding-bottom:5px;
}

.vendor-edit {
  background:
    radial-gradient(circle at 16% 20%, rgba(234,215,202,.62), transparent 30%),
    linear-gradient(180deg,#fffaf5 0%,#f6efe8 100%);
}
.vendor-grid {
  display:grid;
  grid-template-columns:1.12fr .88fr .88fr;
  gap:18px;
  align-items:stretch;
}
.vendor-card {
  position:relative;
  min-height:520px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#d9cabe;
  box-shadow:0 22px 70px rgba(42,32,23,.11);
  display:block;
}
.vendor-card-large {
  border-radius:170px 170px 10px 10px;
}
.vendor-card:not(.vendor-card-large) {
  border-radius:10px;
}
.vendor-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .75s ease;
}
.vendor-card:hover img {
  transform:scale(1.045);
}
.vendor-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(25,20,16,.02) 0%, rgba(25,20,16,.72) 100%);
}
.vendor-copy {
  position:absolute;
  inset:auto 28px 28px;
  color:#fffaf5;
  text-shadow:0 2px 18px rgba(0,0,0,.28);
}
.vendor-copy small {
  display:block;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:10px;
  font-weight:700;
  margin-bottom:10px;
  opacity:.9;
}
.vendor-copy strong {
  display:block;
  font-family:var(--serif);
  font-size:clamp(30px,3vw,48px);
  line-height:1;
  font-weight:400;
  max-width:520px;
}
.vendor-copy em {
  display:block;
  margin-top:14px;
  font-style:normal;
  font-size:14px;
  line-height:1.62;
  max-width:470px;
  opacity:.94;
}
.vendor-actions {
  margin-top:30px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
}

.closing {
  padding:92px 38px;
  text-align:center;
  background:
    linear-gradient(rgba(255,250,245,.82),rgba(255,250,245,.94)),
    url('../venue-styles/garden.png') center/cover;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.closing h2 {
  font-size:clamp(44px,6vw,90px);
  line-height:.95;
  max-width:900px;
  margin:0 auto 20px;
}
.closing p {
  max-width:650px;
  margin:0 auto 30px;
  color:#5f5348;
  line-height:1.8;
}
.site-footer {
  background:#17130f;
  color:#fffaf5;
  padding:58px 38px;
}
.footer-inner {
  max-width:1360px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}
.footer-brand {
  font-family:var(--serif);
  font-size:34px;
  letter-spacing:.12em;
}
.footer-tag {
  margin-top:8px;
  letter-spacing:.24em;
  color:#c8b9aa;
  font-size:10px;
  text-transform:uppercase;
  font-weight:700;
}
.footer-links {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:10px;
  font-weight:700;
  color:#e7d9cc;
  align-self:start;
}
.footer-note {
  margin-top:28px;
  color:#b7a99b;
  line-height:1.7;
  max-width:560px;
  font-size:13px;
}
@media(max-width:1120px) {
  .nav {
    grid-template-columns:1fr;
    gap:14px;
  }
  .brand { order:-1; min-width:0; }
  .nav-left,.nav-right { justify-content:center; flex-wrap:wrap; }
  .hero-grid,.section-head,.ai-card,.footer-inner { grid-template-columns:1fr; }
  .hero-visual { min-height:520px; }
  .venue-style-grid,.location-grid { grid-template-columns:repeat(2,1fr); }
  .feature-grid,.editorial-panels { grid-template-columns:1fr; }

  .vendor-grid { grid-template-columns:1fr; }
  .vendor-card, .vendor-card-large { min-height:430px; border-radius:10px; }

}
@media(max-width:680px) {
  .nav-left,.nav-right { display:none; }
  .mobile-menu { display:block; text-align:center; text-transform:uppercase; letter-spacing:.16em; font-size:11px; padding-bottom:16px; }
  .brand-title { font-size:28px; }
  .hero,.section,.ai-studio,.closing { padding-left:20px; padding-right:20px; }
  .hero-visual,.ai-steps,.venue-style-grid,.location-grid { grid-template-columns:1fr; }
  .hero-img.large,.hero-img.small-top,.hero-img.small-bottom,.style-card,.panel,.ai-panel,.ai-panel-inner { border-radius:10px; }
  .style-card { min-height:310px; }
}
