:root{--olive:#727732;--ink:#303307;--soft:#f5f5f2;--line:#e5e5df;--white:#fff;--max:1220px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Georgia,'Times New Roman',serif;font-size:16px;line-height:1.55}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}.site-header{height:126px;background:var(--olive);color:#fff;display:grid;grid-template-columns:100px 1fr 100px;align-items:center;padding:0 clamp(28px,6vw,72px);position:relative}.brand-wrap{text-align:center;align-self:center}.brand{display:block;text-decoration:none;font-size:18px;letter-spacing:.045em;margin:0 0 10px}.desktop-nav{display:flex;justify-content:center;gap:20px;font-size:15px}.desktop-nav a,.mobile-nav a{text-decoration:none;position:relative}.desktop-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:#fff}.instagram,.cart-link{display:flex;align-items:center;color:#fff;text-decoration:none}.instagram svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.6}.instagram svg .fill,.cart-link svg .fill{fill:currentColor;stroke:none}.cart-link{justify-self:end;gap:7px;font-size:16px}.cart-link svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.5}.menu-toggle{display:none;background:none;border:0;color:#fff}.mobile-nav{display:none}.page{max-width:var(--max);margin:0 auto;padding:92px 62px 120px}.home-intro{text-align:center;max-width:1080px;margin:0 auto}.eyebrow-title,.page-title{font-weight:400;letter-spacing:.015em}.eyebrow-title{font-size:25px;margin:0 0 42px}.home-intro p{margin:0 auto 20px}.home-intro .about-label{font-weight:700;margin:24px 0 10px}.feature-list{text-align:left;max-width:1040px;margin:0 auto 44px;padding-left:24px}.feature-list li{margin:10px 0}.home-links{margin-top:38px}.home-links a{display:block;width:max-content;margin:14px auto;text-underline-offset:3px}.gallery{margin-top:450px;display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;max-height:420px}.gallery img{width:100%;height:420px;object-fit:cover;display:block}.calendar-section{padding:50px 0 20px}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin:0 0 20px}.cal-btn{border:0;background:none;font-size:27px;cursor:pointer;padding:10px 0}.calendar-title{text-align:center;font-size:17px;font-weight:400;letter-spacing:.04em}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-weekday{text-align:center;font-size:11px;text-transform:uppercase;padding:8px;color:#616252}.cal-day{min-height:126px;background:#f2f2f0;position:relative;padding:9px;font-size:12px;color:#797a6d}.cal-day.empty{background:#f7f7f5}.cal-day.unavailable{background:#e5e5df}.cal-day.unavailable:after{content:"Booked";position:absolute;left:9px;bottom:8px;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.cal-day.closed{background:#dddcd6}.cal-day.closed:after{content:"Unavailable";position:absolute;left:9px;bottom:8px;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.page-heading{font-size:24px;font-weight:400;margin:0 0 64px}.courses-page{max-width:680px;margin:0 auto;padding-top:75px}.product{margin-bottom:85px}.product img{width:100%;display:block}.product-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:20px}.product-name{font-size:15px;text-transform:uppercase;margin:0}.product-price{margin:2px 0 0;font-size:14px}.product-button{width:100%;border:0;background:var(--ink);color:#fff;padding:14px 22px;margin-top:6px;cursor:pointer}.product-button[disabled]{background:#5d5e35;cursor:not-allowed}.events-page{min-height:800px;padding-top:260px}.events-list{margin-top:50px;display:grid;gap:40px}.event-card{border-top:1px solid var(--line);padding-top:28px}.event-card h2{font-weight:400;margin:0 0 8px}.event-card time{font-size:13px}.rent-page{max-width:820px;margin:0 auto;padding-top:85px}.rent-page .page-heading{text-align:center;margin-bottom:90px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:36px}.form-field{margin-bottom:44px}.form-field label{display:block;font-size:14px;margin-bottom:8px}.form-field small{font-size:11px;color:#777}.form-field input,.form-field textarea{width:100%;border:0;border-bottom:1px solid #aaa;padding:9px 2px;background:transparent;border-radius:0;outline:none}.form-field input:focus,.form-field textarea:focus{border-color:var(--ink)}.form-field textarea{min-height:150px;border:1px solid #aaa;padding:12px}.submit-button,.button{display:inline-block;background:var(--ink);color:#fff;border:0;text-decoration:none;padding:14px 28px;cursor:pointer}.form-notice{padding:14px 18px;background:#f4f4ef;margin-bottom:30px}.cart-page{max-width:760px;margin:0 auto;padding-top:85px}.cart-page .page-heading{margin-bottom:35px}.cart-item{display:grid;grid-template-columns:90px 1fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:20px 0}.cart-item img{width:90px;height:110px;object-fit:cover}.cart-item h2{font-size:15px;font-weight:400;margin:0}.cart-total{text-align:right;margin:30px 0;font-size:18px}.cart-actions{display:flex;justify-content:space-between;align-items:center;gap:20px}.link-button{background:none;border:0;text-decoration:underline;cursor:pointer;padding:0}.setup-warning{max-width:800px;margin:30px auto;padding:18px;background:#fff5d8}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){body{font-size:15px}.site-header{height:94px;grid-template-columns:48px 1fr 48px;padding:0 18px}.brand{font-size:15px;margin:0}.desktop-nav{display:none}.instagram svg{width:30px;height:30px}.cart-link{font-size:14px}.cart-link svg{width:27px;height:27px}.menu-toggle{display:none}.mobile-nav{display:flex;background:var(--olive);color:#fff;justify-content:center;gap:18px;padding:0 12px 16px;font-size:13px}.mobile-nav a.active{text-decoration:underline;text-underline-offset:4px}.page{padding:58px 24px 80px}.eyebrow-title{font-size:21px;margin-bottom:30px}.home-intro{text-align:center}.feature-list{padding-left:18px}.gallery{margin:190px -24px 0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;max-height:none}.gallery img{min-width:78vw;height:350px;scroll-snap-align:start}.calendar-section{padding-top:40px}.cal-day{min-height:70px;padding:6px;font-size:10px}.cal-day.unavailable:after,.cal-day.closed:after{display:none}.courses-page{padding-top:42px}.page-heading{font-size:21px;margin-bottom:45px}.product{margin-bottom:55px}.product-meta{display:block}.rent-page .page-heading{text-align:left;margin-bottom:55px}.form-row{grid-template-columns:1fr;gap:0}.events-page{padding-top:130px;min-height:650px}.cart-item{grid-template-columns:70px 1fr}.cart-item img{width:70px;height:90px}.cart-item>div:last-child{grid-column:2}.cart-actions{align-items:flex-start;flex-direction:column}}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-notice.form-error{background:#f8e2e2}.form-field input:invalid:not(:placeholder-shown),.form-field textarea:invalid:not(:placeholder-shown){box-shadow:none}.form-field input,.form-field textarea{font-size:16px}
.event-card{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:30px}.event-image{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.event-content h2{font-size:22px}.product-description{font-size:14px;margin:14px 0 8px}@media(max-width:760px){.event-card{grid-template-columns:1fr;gap:18px}.event-content h2{font-size:19px}}

/* V3: gallery, calendar clarity, compact course/event grids */
.gallery-shell{position:relative;margin-top:120px}
.gallery-viewport{overflow:hidden;scroll-behavior:smooth}
.gallery-track{display:flex;width:100%;scroll-snap-type:x mandatory}
.gallery-item{appearance:none;border:0;background:none;padding:0;margin:0;flex:0 0 25%;height:420px;cursor:zoom-in;overflow:hidden;scroll-snap-align:start}
.gallery-item img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .25s ease}
.gallery-item:hover img{transform:scale(1.015)}
.gallery-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(48,51,7,.25);background:rgba(255,255,255,.94);color:var(--ink);font-family:Arial,sans-serif;font-size:34px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.gallery-arrow-prev{left:-23px}.gallery-arrow-next{right:-23px}.gallery-arrow:disabled{opacity:.28;cursor:default}
.gallery-lightbox{width:min(94vw,1200px);height:min(92vh,900px);padding:0;border:0;background:transparent;overflow:visible}
.gallery-lightbox::backdrop{background:rgba(20,20,15,.86)}
.gallery-lightbox figure{width:100%;height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.gallery-lightbox img{display:block;max-width:100%;max-height:82vh;object-fit:contain;background:#fff}
.gallery-lightbox figcaption{color:#fff;font-size:13px;min-height:20px;text-align:center}
.lightbox-close,.lightbox-arrow{position:absolute;z-index:3;border:0;background:rgba(255,255,255,.94);color:var(--ink);cursor:pointer;font-family:Arial,sans-serif;display:flex;align-items:center;justify-content:center}
.lightbox-close{right:0;top:-48px;width:42px;height:42px;border-radius:50%;font-size:28px}
.lightbox-arrow{top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;font-size:34px}.lightbox-prev{left:-58px}.lightbox-next{right:-58px}
.section-heading{text-align:center;font-weight:400;font-size:25px;letter-spacing:.02em;margin:0 0 28px}
.calendar-section{padding:72px 0 20px}
.calendar-controls{max-width:520px;margin:0 auto 20px}
.cal-btn{width:64px;height:38px;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;font-family:Georgia,'Times New Roman',serif;font-size:24px;cursor:pointer;padding:0;transition:opacity .15s ease}
.cal-btn:hover{opacity:.55}
.calendar-title{font-size:16px;margin:0;font-weight:400;letter-spacing:.08em}
.cal-day{overflow:hidden}
.cal-day.status-available{background:#f2f2f0;color:#797a6d}
.cal-day.status-booked{background:var(--olive);color:#fff}
.cal-day.status-closed{background:repeating-linear-gradient(135deg,#deded7 0,#deded7 8px,#f1f1ed 8px,#f1f1ed 16px);color:#3e4021;box-shadow:inset 0 0 0 1px #c8c8be}
.cal-date-number{display:block;font-variant-numeric:tabular-nums}
.cal-status-label{position:absolute;left:9px;bottom:8px;font-family:Arial,sans-serif;font-size:9px;font-weight:700;letter-spacing:.08em}
.calendar-legend{display:flex;justify-content:flex-end;gap:22px;margin-top:14px;font-family:Arial,sans-serif;font-size:11px;color:#656658}
.calendar-legend span{display:flex;align-items:center;gap:7px}.legend-swatch{width:15px;height:15px;display:inline-block;border:1px solid rgba(48,51,7,.15)}.legend-swatch.booked{background:var(--olive)}.legend-swatch.closed{background:repeating-linear-gradient(135deg,#deded7 0,#deded7 4px,#f1f1ed 4px,#f1f1ed 8px)}
.courses-page,.events-page{max-width:920px;margin:0 auto;padding-top:75px;min-height:650px}
.products-grid,.events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 34px;align-items:start}
.product-card,.event-card{min-width:0;margin:0;border:0;padding:0;display:flex;flex-direction:column;height:100%}
.product-image,.event-image{width:100%;display:block;object-fit:cover;background:#f2f2ef}
.product-image{aspect-ratio:4/5}.event-image{aspect-ratio:4/3}
.product-card-body,.event-content{padding-top:14px;display:flex;flex-direction:column;flex:1}
.product-name{font-size:14px;line-height:1.35;text-transform:uppercase;margin:0;min-height:2.7em}
.product-price{margin:7px 0 0;font-size:13px}.product-description{font-size:13px;margin:12px 0 0}
.product-card-action{margin-top:auto;padding-top:14px}.product-card-action form{margin:0}
.product-button{width:100%;padding:11px 12px;margin:0;font-size:12px}
.event-content time{font-size:11px;margin-bottom:6px}.event-content h2{font-size:17px;line-height:1.35;font-weight:400;margin:0 0 8px}.event-content p{font-size:13px;margin:0 0 10px}.event-content a{font-size:12px;margin-top:auto;width:max-content}

@media(max-width:760px){
  .gallery-shell{margin:72px -24px 0}
  .gallery-viewport{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}.gallery-viewport::-webkit-scrollbar{display:none}
  .gallery-item{flex-basis:82vw;height:330px}
  .gallery-arrow{width:40px;height:40px;font-size:30px}.gallery-arrow-prev{left:8px}.gallery-arrow-next{right:8px}
  .gallery-lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:48px 14px 28px}.gallery-lightbox img{max-height:80dvh}.lightbox-close{right:14px;top:8px}.lightbox-arrow{width:40px;height:40px;font-size:30px}.lightbox-prev{left:14px}.lightbox-next{right:14px}
  .calendar-section{padding-top:54px}.section-heading{font-size:21px;margin-bottom:22px}.calendar-controls{max-width:310px;margin-bottom:16px}.cal-btn{width:48px;height:34px;font-size:21px}.calendar-title{font-size:13px}
  .cal-day{min-height:72px;padding:5px;font-size:10px}.cal-status-label{left:4px;bottom:5px;font-size:6.5px;letter-spacing:.03em}.calendar-legend{justify-content:center;gap:14px;font-size:10px}
  .courses-page,.events-page{padding:42px 18px 80px}.courses-page .page-heading,.events-page .page-heading{margin-bottom:36px}
  .products-grid,.events-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 12px}
  .product-card-body,.event-content{padding-top:10px}.product-name{font-size:11px;min-height:4.05em}.product-price{font-size:11px;margin-top:5px}.product-description{font-size:11px}.product-button{font-size:10px;padding:10px 7px}
  .event-card{display:flex;gap:0}.event-content h2{font-size:13px;min-height:2.7em}.event-content time,.event-content a{font-size:10px}.event-content p{font-size:11px}
}
