:root { --class-paper:#f7f5ef; --class-ink:#171613; --class-muted:#5b584f; --class-gold:#c7a044; --class-line:#171613; }
* { box-sizing:border-box; }
body { margin:0; color:var(--class-ink); background:var(--class-paper); font-family:"Plus Jakarta Sans",sans-serif; }
a { color:inherit; }
.class-nav { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:76px; padding:18px clamp(20px,5vw,72px); background:rgba(255,255,255,.94); border-bottom:1px solid var(--class-line); }
.class-brand { display:flex; align-items:center; gap:12px; color:var(--class-ink); text-decoration:none; font-weight:800; letter-spacing:-.03em; }.class-brand-mark { display:grid; width:42px; height:42px; place-items:center; border:2px solid var(--class-ink); border-radius:50%; background:var(--class-gold); color:var(--class-ink); font:500 20px "Playfair Display",Georgia,serif; }.class-brand-text { display:flex; flex-direction:column; line-height:1.05; }.class-brand-text span:first-child { font-size:21px; }.class-brand-text span:last-child { color:var(--class-muted); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.class-nav-links { display:flex; align-items:center; gap:clamp(18px,3vw,34px); margin:0; padding:0; list-style:none; }.class-nav-links a { color:var(--class-muted); font-size:13px; font-weight:800; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }.class-nav-links a:hover { color:#8b6b21; }.class-nav-cta { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:13px 24px; border:2px solid var(--class-ink); border-radius:999px; background:var(--class-gold); color:var(--class-ink); font-size:13px; font-weight:900; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; box-shadow:4px 4px 0 var(--class-ink); transition:transform .15s ease,box-shadow .15s ease; }.class-nav-cta:hover { transform:translate(2px,2px); box-shadow:2px 2px 0 var(--class-ink); }
.class-page { max-width:1240px; margin:0 auto; padding:clamp(48px,7vw,96px) clamp(20px,5vw,72px); }
.class-kicker { color:#8b6b21; font:500 10px "DM Mono",monospace; letter-spacing:.15em; text-transform:uppercase; }
.class-title { max-width:840px; margin:15px 0 20px; font:500 clamp(48px,7vw,90px)/.94 "Playfair Display",Georgia,serif; letter-spacing:-.07em; }.class-title em { color:#aa8730; }
.class-intro { max-width:600px; margin:0 0 40px; color:var(--class-muted); font-size:16px; line-height:1.75; }
.mediterranean-options { margin:0 0 58px; border-top:1px solid var(--class-line); border-bottom:1px solid var(--class-line); background:#fff; }
.mediterranean-options-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:18px 22px; border-bottom:1px solid var(--class-line); background:#efe4c9; }.mediterranean-options-heading h2 { margin:0; font:500 27px "Playfair Display",Georgia,serif; letter-spacing:-.04em; }
.mediterranean-option-grid { display:grid; grid-template-columns:repeat(2,1fr); }.mediterranean-option { position:relative; cursor:pointer; }.mediterranean-option + .mediterranean-option { border-left:1px solid var(--class-line); }.mediterranean-option input { position:absolute; opacity:0; }.mediterranean-option-card { display:grid; min-height:205px; gap:10px; padding:25px; background:#fff; transition:background-color .18s ease, box-shadow .18s ease; }.mediterranean-option-card:hover { background:#f7f4eb; }.mediterranean-option input:checked + .mediterranean-option-card { background:#f0e5cb; box-shadow:inset 0 0 0 3px var(--class-gold); }.mediterranean-option input:focus-visible + .mediterranean-option-card { outline:3px solid var(--class-ink); outline-offset:-3px; }.option-number { color:#8b6b21; font:500 10px "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }.mediterranean-option-card strong { font:500 29px/1 "Playfair Display",Georgia,serif; letter-spacing:-.045em; }.mediterranean-option-card > span:not(.option-number) { max-width:390px; color:var(--class-muted); font-size:13px; line-height:1.65; }.menu-link { width:max-content; margin-top:4px; color:var(--class-ink); font:700 10px "DM Mono",monospace; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid currentColor; }.menu-link:hover { color:#8b6b21; }
.schedule-stage { display:grid; grid-template-columns:.78fr 1.22fr; margin:0 0 58px; border:1px solid var(--class-line); background:#fff; }
.schedule-summary { padding:clamp(26px,4vw,48px); border-right:1px solid var(--class-line); background:#fdfcf9; }.schedule-summary h2 { margin:10px 0 15px; font:500 clamp(32px,4vw,46px)/.98 "Playfair Display",Georgia,serif; letter-spacing:-.055em; }.schedule-summary p { max-width:320px; color:var(--class-muted); font-size:14px; line-height:1.7; }.schedule-summary button { margin-top:18px; }
.schedule-picker { padding:clamp(26px,4vw,48px); transition:background-color .3s ease, box-shadow .3s ease; }.schedule-picker.month-attention { box-shadow:inset 0 0 0 3px var(--class-gold); }.schedule-picker > * { transition:opacity .18s ease, transform .18s cubic-bezier(.2,.7,.25,1); }.schedule-picker.is-transitioning > * { opacity:0; transform:translateY(-8px); pointer-events:none; }.schedule-picker header { display:flex; justify-content:space-between; gap:20px; align-items:baseline; margin-bottom:23px; }.schedule-picker h3 { margin:0; font:500 27px "Playfair Display",Georgia,serif; letter-spacing:-.04em; }.month-choices { display:grid; grid-template-columns:repeat(2,1fr); gap:13px; }.month-choice { min-height:150px; padding:20px; border:1px solid #c9c4b8; background:#fff; text-align:left; cursor:pointer; transition:transform .25s cubic-bezier(.2,.7,.25,1), box-shadow .25s ease, background-color .25s ease; }.month-choice:hover { transform:translateY(-3px); box-shadow:0 10px 24px rgba(29,27,22,.08); }.month-choice:first-child { border-color:var(--class-gold); background:#f0e5cb; }.month-choice span { display:block; color:#8b6b21; font:500 10px "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }.month-choice strong { display:block; margin:13px 0 19px; font:500 31px "Playfair Display",Georgia,serif; letter-spacing:-.05em; }.month-choice small { color:var(--class-muted); font:500 10px "DM Mono",monospace; letter-spacing:.06em; text-transform:uppercase; }
.date-request-note { display:none; margin:15px 0 0; color:var(--class-muted); font-size:12px; }.date-request-note.visible { display:block; }
.booking-panel { display:grid; grid-template-columns:.78fr 1.22fr; border:1px solid var(--class-line); background:#fff; }
.class-overview { padding:clamp(26px,4vw,50px); border-right:1px solid var(--class-line); background:#fff; }.class-overview h2 { margin:10px 0 15px; font:500 clamp(31px,4vw,47px)/.98 "Playfair Display",Georgia,serif; letter-spacing:-.055em; }.class-overview p { color:var(--class-muted); font-size:14px; line-height:1.75; }
.class-facts { margin:28px 0 0; padding:0; list-style:none; border-top:1px solid var(--class-line); }.class-facts li { padding:13px 0; border-bottom:1px solid #d8d3c9; font-size:12px; }.class-facts span { display:block; margin-bottom:4px; color:#8b6b21; font:500 9px "DM Mono",monospace; letter-spacing:.09em; text-transform:uppercase; }
.booking-form { padding:clamp(26px,4vw,50px); background:#fdfcf9; }.schedule-picker .booking-form.in-box-form { padding:0; background:transparent; animation:inquiry-arrives .42s cubic-bezier(.2,.8,.25,1) both; }.booking-form h2 { margin:0 0 23px; font:500 29px "Playfair Display",Georgia,serif; letter-spacing:-.04em; }.booking-steps { display:flex; gap:9px; margin-bottom:28px; }.booking-steps span { flex:1; padding-top:8px; border-top:2px solid #d8d3c9; color:#787369; font:500 9px "DM Mono",monospace; letter-spacing:.06em; }.booking-steps span:first-child { border-color:var(--class-gold); color:var(--class-ink); } @keyframes inquiry-arrives { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
.class-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.class-field { display:grid; gap:7px; }.class-field.full { grid-column:1/-1; }.class-field label { font:500 9px "DM Mono",monospace; letter-spacing:.09em; text-transform:uppercase; }.class-field input,.class-field select,.class-field textarea { width:100%; padding:13px; border:1px solid var(--class-line); border-radius:0; color:var(--class-ink); background:#fff; font:400 13px "Plus Jakarta Sans",sans-serif; }.class-field textarea { min-height:100px; resize:vertical; }
.class-submit { width:100%; margin-top:20px; padding:15px; border:1px solid var(--class-line); border-radius:0; background:var(--class-gold); color:var(--class-ink); font:700 11px "Plus Jakarta Sans",sans-serif; letter-spacing:.11em; text-transform:uppercase; cursor:pointer; }.class-submit:disabled { opacity:.7; cursor:wait; }.class-status { display:none; margin:14px 0 0; padding:10px; border:1px solid var(--class-line); font-size:12px; }.class-status.error { color:#9a3028; border-color:#9a3028; }.class-note { margin:13px 0 0; color:var(--class-muted); font-size:11px; line-height:1.6; }
.workshop-details { display:grid; grid-template-columns:.78fr 1.22fr; margin-top:clamp(58px,9vw,112px); border-top:1px solid var(--class-line); border-bottom:1px solid var(--class-line); }.workshop-details-heading { padding:clamp(28px,4vw,50px); border-right:1px solid var(--class-line); background:#efe4c9; }.workshop-details h2 { margin:14px 0 0; font:500 clamp(34px,4.2vw,57px)/.98 "Playfair Display",Georgia,serif; letter-spacing:-.065em; }.workshop-details h2 em { color:#9b7420; }.workshop-details-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(235px,.9fr); gap:clamp(28px,5vw,72px); padding:clamp(28px,4vw,50px); background:#fff; }.workshop-details-body > p { max-width:430px; margin:0; color:var(--class-muted); font-size:16px; line-height:1.75; }.workshop-detail-list { margin:0; border-top:1px solid var(--class-line); }.workshop-detail-list div { padding:15px 0; border-bottom:1px solid #d8d3c9; }.workshop-detail-list dt { color:#8b6b21; font:500 9px "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }.workshop-detail-list dd { margin:6px 0 0; font-size:13px; font-weight:600; line-height:1.5; }
.workshop-story { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,6vw,96px); align-items:center; margin-top:clamp(58px,9vw,112px); }.workshop-photo-pair { position:relative; min-height:clamp(350px,40vw,510px); padding:0 12% 12% 0; }.workshop-photo-pair figure { margin:0; overflow:hidden; }.workshop-photo-pair img { display:block; width:100%; height:100%; object-fit:cover; }.workshop-photo-main { position:absolute; inset:0 12% 0 0; }.workshop-photo-detail { position:absolute; right:0; bottom:0; width:42%; height:43%; border:7px solid #f7f5ef; }.workshop-story-copy h2 { margin:13px 0 20px; font:500 clamp(39px,5vw,65px)/.95 "Playfair Display",Georgia,serif; letter-spacing:-.065em; }.workshop-story-copy h2 em { color:#aa8730; }.workshop-story-copy > p { max-width:430px; margin:0; color:var(--class-muted); font-size:16px; line-height:1.75; }.workshop-assurance { display:grid; gap:7px; margin-top:30px; padding:18px 0; border-top:1px solid var(--class-line); border-bottom:1px solid var(--class-line); }.workshop-assurance span { color:#8b6b21; font:500 9px "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }.workshop-assurance strong { font-size:13px; line-height:1.5; }
.included { margin-top:clamp(58px,9vw,112px); }.included h2 { max-width:760px; margin:12px 0 31px; font:500 clamp(39px,5.5vw,69px)/.96 "Playfair Display",Georgia,serif; letter-spacing:-.065em; }.included h2 em { color:#aa8730; }.included-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.included-item { min-height:215px; padding:22px; border-top:2px solid var(--class-line); background:#fff; }.included-item:nth-child(2) { background:#efe4c9; }.included-item:nth-child(3) { background:#dfe2d9; }.included-item strong { display:block; margin:20px 0 10px; font:500 26px "Playfair Display",Georgia,serif; letter-spacing:-.045em; }.included-item p { margin:0; color:var(--class-muted); font-size:13px; line-height:1.65; }
.class-footer { margin-top:62px; padding-top:20px; border-top:1px solid var(--class-line); color:var(--class-muted); font-size:12px; }
@media(max-width:720px) { .class-nav{flex-wrap:wrap;gap:12px;padding:12px 16px}.class-brand-text span:last-child{display:none}.class-nav-links{order:3;width:100%;justify-content:center;gap:28px;padding-top:10px;border-top:1px solid var(--class-line)}.class-nav-links a{font-size:11px}.class-nav-cta{min-height:42px;padding:10px 14px;font-size:10px}.mediterranean-options-heading{align-items:flex-start;flex-direction:column}.mediterranean-option-grid,.booking-panel,.schedule-stage,.workshop-details,.workshop-story{grid-template-columns:1fr}.mediterranean-option + .mediterranean-option{border-top:1px solid var(--class-line);border-left:0}.class-overview,.schedule-summary,.workshop-details-heading{border-right:0;border-bottom:1px solid var(--class-line)}.schedule-picker header{align-items:flex-start;flex-direction:column}.month-choices{grid-template-columns:1fr}.month-choice{min-height:126px}.class-fields,.included-grid,.workshop-details-body{grid-template-columns:1fr}.class-field.full{grid-column:auto}.included-item{min-height:auto}.workshop-photo-pair{min-height:330px;padding-right:10%;padding-bottom:10%}.class-title{font-size:clamp(46px,14vw,70px)} }
@media(prefers-reduced-motion:reduce) { .schedule-picker,.schedule-picker > *,.month-choice{transition:none}.schedule-picker .booking-form.in-box-form{animation:none} }
