:root {
  --paper: #f2f1ed;
  --cream: #e8e2da;
  --taupe: #cbbbad;
  --latte: #b89f8d;
  --brown: #6a4c3b;
  --deep: #2c2622;
  --ink: #24211f;
  --white: #faf9f6;
  --cool-yellow: #d8df63;
  --line: rgba(36,33,31,.18);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 16px/1.65 "DM Sans",sans-serif; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button,input,select,textarea { font: inherit; }
.site-header { height: 76px; padding: 0 clamp(22px,5vw,76px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; position: absolute; z-index: 10; width: 100%; color: white; border-bottom: 1px solid rgba(255,255,255,.35); }
.wordmark,.footer-wordmark { font-weight: 700; letter-spacing: -.035em; font-size: 1.05rem; }
nav { display: flex; gap: clamp(18px,2.3vw,34px); font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; }
nav a:hover { opacity: .65; }
nav a[href="#gallery"] { color:var(--cool-yellow); }
.nav-cta { justify-self: end; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; padding: 9px 18px; text-transform: uppercase; letter-spacing: .1em; font-size: .74rem; font-weight: 700; }
.menu-toggle { display: none; border: 0; background: none; color: inherit; font-size: .78rem; font-weight: 700; letter-spacing: .1em; }
.hero { min-height: 780px; height: 96vh; position: relative; overflow: hidden; color: white; display: flex; align-items: center; }
.hero-image,.hero-image img { position: absolute; inset: 0; height: 100%; }
.hero-image img { object-fit: cover; object-position: center; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(32,26,22,.84) 0%,rgba(32,26,22,.56) 38%,rgba(32,26,22,.12) 72%),linear-gradient(0deg,rgba(32,26,22,.38),transparent 55%); }
.hero-copy { position: relative; z-index: 2; width: min(690px,82vw); margin-left: clamp(24px,8vw,130px); padding-top: 62px; }
.hero-logo { display:block; width:min(240px,56vw); height:auto; margin-bottom:12px; border:1px solid rgba(255,255,255,.28); box-shadow:0 10px 25px rgba(20,15,12,.16); }
.eyebrow,.mini-label { margin:0 0 17px; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; font-weight:700; }
h1,h2,h3 { margin:0; font-family:"Fraunces",serif; font-weight:500; letter-spacing:-.043em; line-height:1.03; }
h1 { font-size:clamp(3.7rem,7vw,7.8rem); }
h1 em,.wheel h2 em { color:#dcc8b5; font-weight:inherit; }
.hero-copy > p:not(.eyebrow) { max-width:520px; font-size:1.12rem; color:rgba(255,255,255,.85); margin:26px 0 32px; }
.hero-actions { display:flex; gap:25px; align-items:center; flex-wrap:wrap; }
.button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:999px; padding:0 23px; font-weight:700; font-size:.85rem; cursor:pointer; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-yellow { background:var(--white); color:var(--ink); }
.button-dark { background:var(--deep); color:white; }
.text-link,.social-link { font-weight:600; border-bottom:1px solid currentColor; padding-bottom:2px; }
.section-pad { padding:clamp(80px,10vw,145px) clamp(24px,8vw,130px); }
.section-intro { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(50px,9vw,150px); margin-bottom:58px; }
h2 { font-size:clamp(2.8rem,5vw,5.5rem); }
.blue,.yellow,.brown { color:var(--brown); }
.cool-yellow { color:#767c20; }
.cool-yellow-on-dark { color:var(--cool-yellow)!important; }
.cool-yellow-deep { color:#5d6218; }
.lead-copy { font-size:1.08rem; color:#514a45; }
.lead-copy p { margin:0 0 18px; }
.inline-social { color:#666c18; font-weight:700; border-bottom:1px solid currentColor; }
.workshops { background:var(--paper); }
.workshop-grid { display:grid; grid-template-columns:.84fr 1.16fr; border:1px solid var(--line); }
.details-card,.calendar-card { padding:clamp(30px,5vw,62px); }
.yellow-card { background:var(--taupe); }
.details-card h3,.calendar-card h3 { font-size:clamp(2.35rem,4vw,4.4rem); }
.creative-freedom { margin:24px 0 0; font-size:.96rem; line-height:1.55; max-width:520px; }
.details-card ul { list-style:none; padding:23px 0; margin:29px 0; border-block:1px solid var(--line); }
.details-card li { margin:8px 0; }
.details-card li::before { content:"—"; margin-right:10px; }
.price,.price-line { display:flex; flex-direction:column; margin:0 0 28px; }
.price strong,.price-line strong { font-size:1.3rem; }
.price span,.price-line span { font-size:.82rem; }
.calendar-card { background:var(--cream); }
.calendar-head { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:32px; }
.calendar-key { font-size:.75rem; }
.calendar-key i { width:9px; height:9px; background:var(--brown); border-radius:50%; display:inline-block; margin-right:6px; }
.calendar { display:grid; grid-template-columns:repeat(7,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.calendar span { aspect-ratio:1; display:grid; place-items:center; border-right:1px solid var(--line); border-bottom:1px solid var(--line); font-size:.86rem; }
.calendar .day-name { aspect-ratio:auto; padding:8px 0; font-size:.68rem; font-weight:700; }
.calendar .empty { opacity:.25; }
.calendar-message { display:flex; justify-content:space-between; gap:12px; padding:21px 0; font-size:.82rem; }
.calendar-message span { opacity:.68; }
.wheel { background:#a88f7f; color:var(--ink); display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,8vw,120px); }
.wheel-image { position:sticky; top:35px; align-self:start; }
.wheel-image img { aspect-ratio:4/5; object-fit:cover; filter:saturate(.75); }
.wheel-copy h2 { margin-bottom:31px; }
.wheel-copy .yellow { color:var(--brown); }
.wheel h2 em { color:#f0e8df; }
.big-copy { font-size:1.16rem; max-width:650px; color:rgba(36,33,31,.82); }
.week-list { margin:40px 0 28px; border-top:1px solid rgba(36,33,31,.24); }
.week-list > div { padding:18px 0; border-bottom:1px solid rgba(36,33,31,.24); }
.week-list p { margin:0; color:rgba(36,33,31,.7); }
.week-list strong { display:block; color:var(--ink); }
.timing-note { color:rgba(36,33,31,.68); font-size:.85rem; border-left:2px solid var(--brown); padding-left:16px; }
.wheel .button-yellow { background:var(--paper); }
.private-events { background:#d8cbc0; }
.event-heading { max-width:950px; }
.event-heading > p:last-child { font-size:1.1rem; max-width:620px; }
.event-list { margin:58px 0; display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; max-width:1120px; padding-block:25px; border-block:1px solid var(--line); }
.event-list span { font:500 clamp(1.25rem,2.2vw,2rem)/1.25 "Fraunces",serif; letter-spacing:-.025em; }
.event-list i { color:var(--brown); font-style:normal; font-size:1.5rem; }
.event-photos { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; margin:0 0 52px; }
.event-photos figure { margin:0; position:relative; overflow:hidden; }
.event-photos img { height:clamp(290px,36vw,520px); object-fit:cover; filter:saturate(.84); }
.event-photos figure:nth-child(2) img { object-position:center 44%; }
.event-photos figcaption { position:absolute; left:18px; bottom:18px; margin:0; background:rgba(44,38,34,.88); color:var(--cool-yellow); padding:8px 12px; font-size:.78rem; letter-spacing:.03em; }
.event-details { display:grid; grid-template-columns:1fr 1fr; gap:50px; border-top:1px solid var(--line); padding-top:34px; }
.event-details h3 { font-size:2rem; }
.event-details p { max-width:520px; }
.event-cta { margin-top:43px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.about { background:var(--brown); color:var(--white); display:grid; grid-template-columns:1fr 1fr; gap:clamp(55px,10vw,150px); }
.about-title .yellow { color:#d9c3af; }
.artist-photo { width:min(100%,430px); margin-top:45px; aspect-ratio:4/5; object-fit:cover; object-position:center 30%; }
.about-copy { font-size:1.05rem; color:rgba(255,255,255,.78); }
.about-copy p { margin:0 0 21px; }
.about-social { margin-top:36px; padding-top:22px; border-top:1px solid rgba(216,223,99,.55); display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; }
.about-social span { flex-basis:100%; color:var(--cool-yellow); font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.about-social a { color:var(--white); border-bottom:1px solid var(--cool-yellow); font-weight:600; }
blockquote { margin:40px 0; color:#eaded2; font:500 clamp(1.75rem,3vw,2.9rem)/1.16 "Fraunces",serif; }
.gallery { background:#b9a28f; display:grid; grid-template-columns:40% 60%; min-height:700px; }
.gallery-copy { padding:clamp(60px,8vw,115px); display:flex; flex-direction:column; justify-content:center; }
.gallery-copy h2 { margin-bottom:25px; }
.gallery-copy .text-link { align-self:flex-start; margin-top:16px; }
.gallery-images { display:grid; grid-template-rows:1fr 1fr; min-height:700px; }
.gallery-images img { height:100%; min-height:0; object-fit:cover; filter:saturate(.76); }
.art-community { background:var(--paper); display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(45px,8vw,120px); }
.community-heading { align-self:start; position:sticky; top:105px; }
.community-heading > p:not(.eyebrow) { max-width:460px; margin:27px 0 22px; color:#514a45; }
.community-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.community-grid figure { margin:0; }
.community-grid .community-feature { grid-column:1/-1; }
.community-grid .community-wide { grid-column:1/-1; }
.community-grid img { aspect-ratio:4/3; object-fit:cover; filter:saturate(.82); }
.community-grid .community-feature img,.community-grid .community-wide img { aspect-ratio:16/9; }
.community-grid figcaption { border-top:3px solid var(--cool-yellow); padding:10px 2px 0; color:#625a54; font-size:.78rem; }
.custom-orders { background:var(--deep); color:var(--white); display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(45px,7vw,110px); align-items:center; }
.custom-orders-copy > p:not(.eyebrow) { max-width:520px; color:rgba(255,255,255,.76); margin:25px 0; }
.custom-orders-copy .button { margin-top:10px; }
.custom-collage { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:145px; gap:12px; }
.custom-collage img { width:100%; height:100%; object-fit:cover; background:#f1efec; filter:saturate(.86); }
.custom-collage .collage-wide { grid-column:span 2; }
.booking { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,9vw,140px); background:var(--paper); }
.booking-copy > p:not(.eyebrow) { max-width:470px; margin:28px 0; }
.booking-copy .availability-note { padding-left:18px; border-left:3px solid var(--cool-yellow); }
.booking-copy .gift-card-note { padding:18px 20px; background:var(--taupe); color:var(--ink); }
.gift-card-note strong { display:block; margin-bottom:4px; font-family:"Fraunces",serif; font-size:1.2rem; font-weight:650; }
form { background:var(--white); border:1px solid var(--line); padding:clamp(28px,4vw,50px); display:flex; flex-direction:column; gap:21px; box-shadow:12px 12px 0 var(--taupe); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
label { display:flex; flex-direction:column; gap:7px; font-size:.82rem; font-weight:700; }
input,select,textarea { width:100%; border:0; border-bottom:1px solid var(--line); background:transparent; border-radius:0; padding:10px 2px 12px; font-size:1rem; outline:none; color:var(--ink); }
input:focus,select:focus,textarea:focus { border-color:var(--brown); box-shadow:0 2px 0 var(--brown); }
textarea { resize:vertical; }
.form-note { margin:-5px 0 0; font-size:.74rem; color:#726a65; }
.form-status { margin:0; color:var(--brown); font-weight:700; }
footer { background:var(--deep); color:white; min-height:145px; padding:34px clamp(24px,8vw,130px); display:grid; grid-template-columns:.8fr 1fr 1.25fr auto; gap:30px; align-items:center; font-size:.82rem; }
footer p { color:rgba(255,255,255,.58); }
footer div { display:flex; gap:22px; }
.footer-wordmark { color:#dbc8b8; }
.footer-social { flex-direction:column; gap:4px; }
.footer-social span { color:var(--cool-yellow); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.footer-social a { color:rgba(255,255,255,.82); }
.footer-actions { white-space:nowrap; }
@media (max-width:1000px) {
  .site-header { grid-template-columns:1fr auto auto; }
  nav { display:none; position:absolute; top:76px; left:0; right:0; background:var(--deep); padding:25px; flex-direction:column; border-bottom:1px solid rgba(255,255,255,.2); }
  nav.open { display:flex; }
  .menu-toggle { display:block; }
  .workshop-grid,.wheel,.about,.booking,.art-community,.custom-orders { grid-template-columns:1fr; }
  .wheel-image { position:relative; top:auto; }
  .wheel-image img { aspect-ratio:16/9; }
  .gallery { grid-template-columns:1fr; }
  .community-heading { position:relative; top:auto; }
}
@media (max-width:700px) {
  .site-header { height:66px; grid-template-columns:1fr auto; }
  .nav-cta { display:none; }
  nav { top:66px; }
  .hero { min-height:720px; }
  .hero-image img { object-position:60% center; }
  .hero::after { background:linear-gradient(90deg,rgba(32,26,22,.84),rgba(32,26,22,.25)),linear-gradient(0deg,rgba(32,26,22,.55),transparent 60%); }
  .hero-copy { margin-left:22px; width:calc(100% - 44px); }
  .hero-logo { width:min(220px,58vw); margin-bottom:10px; }
  h1 { font-size:clamp(3.2rem,14vw,5rem); }
  .section-intro,.event-details { grid-template-columns:1fr; }
  .event-photos { grid-template-columns:1fr; }
  .event-photos img { height:auto; aspect-ratio:4/3; }
  .calendar-head,.calendar-message,.event-cta { align-items:flex-start; flex-direction:column; }
  .field-row { grid-template-columns:1fr; }
  .custom-collage { grid-template-columns:1fr 1fr; grid-auto-rows:120px; }
  footer { grid-template-columns:1fr; }
  footer div { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{transition:none!important} }
