:root {
  --bg: #f2efe8;
  --paper: #fbfaf6;
  --ink: #171717;
  --muted: #6b6861;
  --line: #d8d3ca;
  --accent: #a6b69b;
  --accent-2: #e3b8a7;
  --accent-3: #c7b99d;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: 'DM Sans', sans-serif; }
a { color: inherit; text-decoration: none; }
.site-header { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; padding: 18px 5vw; background: rgba(242,239,232,.92); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(23,23,23,.08); }
.brand { display:flex; gap: 12px; align-items:center; }
.brand-mark { width: 38px; height: 38px; border-radius: 50%; display:grid; place-items:center; background: var(--ink); color: white; font-family:'Playfair Display', serif; font-size: 22px; font-style: italic; }
.brand-copy { display:flex; flex-direction:column; line-height:1.08; }
.brand-copy strong { font-size:14px; }
.brand-copy small { color:var(--muted); font-size:10px; margin-top:4px; letter-spacing:.02em; }
.instagram-link { font-size:13px; font-weight:600; border-bottom:1px solid var(--ink); padding-bottom:2px; }
.hero { padding: 9vw 7vw 7vw; min-height: 74vh; display:flex; flex-direction:column; justify-content:center; border-bottom:1px solid var(--line); }
.eyebrow, .section-heading > span, .section-heading div > span { font-size:11px; font-weight:700; letter-spacing:.14em; }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:1100px; font-family:'Playfair Display', serif; font-size:clamp(56px, 8vw, 118px); line-height:.92; letter-spacing:-.045em; margin-bottom:28px; }
h1 em { font-weight:600; }
.hero-copy { max-width:690px; font-size:clamp(18px,2vw,26px); line-height:1.4; color:#3d3b36; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:18px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:0 22px; border:1px solid var(--ink); font-size:13px; font-weight:600; transition:.2s ease; }
.button-dark { background:var(--ink); color:#fff; }
.button-dark:hover { transform:translateY(-2px); }
.button-light { background:transparent; }
.button-light:hover { background:var(--paper); }
.hero-note { margin-top:40px; font-size:12px; color:var(--muted); }
.section { padding: 8vw 7vw; }
.section-heading { margin-bottom:36px; }
.section-heading h2 { margin-top:12px; font-family:'Playfair Display', serif; font-size:clamp(36px,5vw,66px); line-height:1; letter-spacing:-.035em; }
.section-heading.horizontal { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.text-button { border:0; background:transparent; font:inherit; font-size:13px; font-weight:600; cursor:pointer; border-bottom:1px solid var(--ink); padding:0 0 4px; }
.category-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.category-card { min-height:185px; padding:24px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:.2s ease; }
.category-card:hover { background:var(--paper); transform:translateY(-2px); }
.category-card span { font-size:26px; margin-bottom:auto; }
.category-card strong { font-family:'Playfair Display',serif; font-size:25px; margin-bottom:5px; }
.category-card small { color:var(--muted); line-height:1.35; }
.places-section { border-top:1px solid var(--line); }
.places-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.place-card { background:var(--paper); border:1px solid var(--line); }
.place-card.hidden { display:none; }
.place-image { aspect-ratio:4/3; display:flex; align-items:flex-end; padding:16px; background-size:cover; background-position:center; }
.place-image span { background:rgba(251,250,246,.9); padding:7px 10px; font-size:10px; font-weight:700; letter-spacing:.12em; }
.image-one { background:linear-gradient(135deg,#b7c2aa,#e7d8c7 60%,#907e6d); }
.image-two { background:linear-gradient(135deg,#dbc4ac,#a9b6a1 55%,#76675a); }
.image-three { background:linear-gradient(135deg,#b8b0a1,#e5c2b4 55%,#8d9b81); }
.place-content { padding:22px; }
.meta { font-size:10px; letter-spacing:.12em; font-weight:700; text-transform:uppercase; color:var(--muted); margin-bottom:11px; }
.place-content h3 { font-family:'Playfair Display',serif; font-size:28px; margin-bottom:10px; }
.place-content p { color:var(--muted); line-height:1.5; min-height:48px; }
.place-content a { display:inline-block; margin-top:8px; font-size:12px; font-weight:700; border-bottom:1px solid var(--ink); padding-bottom:3px; }
.community { margin:0 7vw 8vw; background:var(--accent); display:grid; grid-template-columns:1.15fr .85fr; min-height:520px; }
.community-copy { padding:7vw; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.community-copy h2 { font-family:'Playfair Display',serif; font-size:clamp(42px,5vw,72px); line-height:.95; margin:16px 0 22px; }
.community-copy p { max-width:590px; font-size:17px; line-height:1.55; }
.event-card { margin:28px; background:var(--paper); padding:34px; display:flex; flex-direction:column; justify-content:flex-end; min-height:420px; }
.event-kicker { margin-bottom:auto; font-size:10px; font-weight:700; letter-spacing:.14em; }
.event-dog { font-size:72px; margin-bottom:14px; }
.event-card h3 { font-family:'Playfair Display',serif; font-size:38px; margin-bottom:7px; }
.event-card p { color:var(--muted); }
.event-meta { border-top:1px solid var(--line); margin-top:18px; padding-top:14px; font-size:11px; font-weight:700; letter-spacing:.08em; }
.instagram-section { padding:8vw 7vw; background:var(--ink); color:#fff; display:grid; grid-template-columns: .8fr 1.2fr; gap:5vw; }
.instagram-card { align-self:center; }
.instagram-card h2 { font-family:'Playfair Display',serif; font-size:clamp(40px,5vw,70px); line-height:.97; margin:16px 0 22px; }
.instagram-card p { color:#c7c4bd; line-height:1.55; max-width:520px; }
.instagram-section .button-light { border-color:#fff; }
.instagram-section .button-light:hover { background:#fff; color:var(--ink); }
.feed-placeholder { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.feed-placeholder div { aspect-ratio:1; display:grid; place-items:center; font-family:'Playfair Display',serif; font-size:28px; color:rgba(23,23,23,.6); }
.feed-placeholder div:nth-child(1), .feed-placeholder div:nth-child(5){background:#c7b99d}.feed-placeholder div:nth-child(2),.feed-placeholder div:nth-child(6){background:#a6b69b}.feed-placeholder div:nth-child(3){background:#e3b8a7}.feed-placeholder div:nth-child(4){background:#d7d1c4}
.submit-section { padding:7vw; display:grid; grid-template-columns:1.2fr 1fr auto; gap:4vw; align-items:end; border-bottom:1px solid var(--line); }
.submit-section h2 { font-family:'Playfair Display',serif; font-size:clamp(38px,5vw,66px); margin:12px 0 0; }
.submit-section p { color:var(--muted); line-height:1.5; margin-bottom:0; }
footer { padding:32px 7vw 50px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; font-size:12px; }
.footer-brand { font-family:'Playfair Display',serif; font-size:20px; }
.footer-links { display:flex; gap:20px; }
.footer-links a { border-bottom:1px solid var(--ink); }
.footer-copy { text-align:right; color:var(--muted); }
@media (max-width: 900px) {
  .category-grid { grid-template-columns:repeat(2,1fr); }
  .places-grid { grid-template-columns:1fr; }
  .community { grid-template-columns:1fr; }
  .instagram-section { grid-template-columns:1fr; }
  .submit-section { grid-template-columns:1fr; align-items:start; }
  footer { grid-template-columns:1fr; }
  .footer-copy { text-align:left; }
}
@media (max-width: 560px) {
  .site-header { padding:14px 18px; }
  .brand-copy small { display:none; }
  .hero { padding:74px 22px 60px; min-height:auto; }
  h1 { font-size:54px; }
  .hero-copy { font-size:17px; }
  .button { width:100%; }
  .section { padding:64px 22px; }
  .category-grid { grid-template-columns:1fr 1fr; }
  .category-card { min-height:155px; padding:18px; }
  .category-card strong { font-size:21px; }
  .category-card small { font-size:11px; }
  .section-heading.horizontal { align-items:flex-start; }
  .community { margin:0 22px 64px; }
  .community-copy { padding:44px 24px; }
  .event-card { margin:0 16px 16px; min-height:360px; }
  .instagram-section { padding:64px 22px; }
  .feed-placeholder { grid-template-columns:repeat(3,1fr); }
  .submit-section { padding:64px 22px; }
  footer { padding:30px 22px 44px; }
}
