@import url('https://fonts.googleapis.com/css2?family=Libre+Caslon+Text:wght@400;700&family=Montserrat:wght@400;500;600;700&display=swap');
/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: --theme(
    --default-font-family,
    ui-sans-serif,
    system-ui,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: --theme(
    --default-mono-font-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}


:root { --sol:#E89B00; --tierra:#C24C1B; --verde:#758C3C; --cacao:#4B2E05; --crema:#FFF5E1; --negro:#231F20; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--crema); color:var(--negro); font-family:'Montserrat',sans-serif; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
h1,h2,blockquote { font-family:'Libre Caslon Text',Georgia,serif; font-weight:400; }
.site-header { min-height:104px; display:grid; grid-template-columns:250px 1fr auto; align-items:center; gap:30px; padding:18px clamp(24px,5vw,80px); border-bottom:1px solid rgba(75,46,5,.18); position:sticky; top:0; z-index:20; background:rgba(255,245,225,.94); backdrop-filter:blur(14px); }
.brand img { width:210px; max-height:68px; object-fit:contain; object-position:left center; }
nav { display:flex; justify-content:center; gap:clamp(18px,3vw,42px); font-size:13px; font-weight:600; }
nav a,.footer-links a { transition:color .2s ease; }
nav a:hover,.footer-links a:hover { color:var(--tierra); }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; padding:13px 24px; background:var(--tierra); color:var(--crema); border:1px solid var(--tierra); border-radius:999px; font-size:13px; font-weight:700; letter-spacing:.015em; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.button:hover { background:var(--sol); border-color:var(--sol); transform:translateY(-2px); }
.button-small { min-height:44px; padding:10px 20px; }
.button-cream { background:var(--crema); border-color:var(--crema); color:var(--cacao); }
.button-cream:hover { color:var(--negro); }
.button-gold { background:var(--sol); border-color:var(--sol); color:var(--negro); }
.button-gold:hover { background:var(--crema); border-color:var(--crema); }
.text-link { display:inline-flex; align-items:center; gap:10px; font-size:14px; font-weight:700; border-bottom:1px solid var(--negro); padding-bottom:5px; }
.text-link span { font-size:18px; }
.hero { min-height:calc(100vh - 104px); display:grid; grid-template-columns:1.12fr .88fr; overflow:hidden; }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:90px clamp(30px,7vw,120px); }
.eyebrow { margin:0 0 20px; color:var(--tierra); font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.eyebrow.light { color:var(--crema); }
.hero h1 { max-width:780px; margin:0; color:var(--cacao); font-size:clamp(64px,8vw,126px); line-height:.94; letter-spacing:-.055em; }
.hero-lede { max-width:650px; margin:34px 0 0; font-size:clamp(17px,2vw,22px); line-height:1.7; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:42px; }
.hero-art { position:relative; display:grid; place-items:center; min-height:640px; background:var(--sol); overflow:hidden; }
.hero-art::before,.hero-art::after { content:''; position:absolute; border:2px solid rgba(75,46,5,.22); border-radius:50%; }
.hero-art::before { width:120%; aspect-ratio:1; }
.hero-art::after { width:82%; aspect-ratio:1; }
.sun-shape { position:absolute; width:58%; aspect-ratio:1; border-radius:50%; background:var(--crema); }
.hero-icon { position:relative; z-index:2; width:62%; filter:drop-shadow(0 18px 24px rgba(75,46,5,.12)); }
.vertical-note { position:absolute; right:18px; top:50%; margin:0; writing-mode:vertical-rl; transform:translateY(-50%); color:var(--cacao); font-size:10px; font-weight:700; letter-spacing:.3em; text-transform:uppercase; }
.ritual-section { padding:130px clamp(30px,10vw,180px); text-align:center; }
.ritual-section blockquote { max-width:1000px; margin:0 auto; color:var(--cacao); font-size:clamp(44px,6.5vw,92px); line-height:1.1; letter-spacing:-.04em; }
.ritual-copy { max-width:720px; margin:38px auto 0; font-size:17px; line-height:1.9; }
.offerings-section { padding:110px clamp(30px,7vw,110px) 120px; background:var(--negro); color:var(--crema); }
.offerings-heading { display:grid; grid-template-columns:.8fr 1fr 1fr; gap:50px; align-items:end; margin-bottom:58px; }
.offerings-heading .eyebrow { align-self:start; color:var(--sol); }
.offerings-heading h2 { margin:0; font-size:clamp(46px,5.5vw,78px); line-height:1; letter-spacing:-.04em; }
.offerings-heading>p:not(.eyebrow) { max-width:530px; margin:0; line-height:1.8; }
.offerings-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,245,225,.24); border-bottom:1px solid rgba(255,245,225,.24); }
.offering-card { min-height:540px; display:flex; flex-direction:column; padding:36px clamp(24px,3vw,46px) 42px; border-right:1px solid rgba(255,245,225,.24); }
.offering-card:last-child { border-right:0; }
.offering-number { width:42px; height:42px; display:grid; place-items:center; margin-bottom:54px; border:1px solid currentColor; border-radius:50%; font-size:10px; font-weight:700; }
.offering-type { margin:0 0 18px; color:var(--sol); font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.offering-card h3 { margin:0 0 28px; font:400 clamp(38px,4vw,58px)/1.02 'Libre Caslon Text',Georgia,serif; letter-spacing:-.035em; }
.offering-logo { width:min(100%,280px); height:auto; margin:0 0 28px; object-fit:contain; object-position:left center; }
.offering-card>p:not(.offering-type) { max-width:390px; margin:0; line-height:1.75; }
.card-link { display:inline-flex; align-items:center; gap:10px; align-self:flex-start; margin-top:auto; padding-bottom:5px; border-bottom:1px solid currentColor; font-size:12px; font-weight:700; }
.card-link span { font-size:17px; }
.cooking-card { background:var(--cacao); }
.brunch-card { background:var(--tierra); }
.brunch-card .offering-type { color:var(--crema); }
.rental-card { background:var(--verde); }
.rental-card .offering-type { color:var(--crema); }
.cooking-experience { padding:115px clamp(24px,7vw,110px) 120px; background:#F5E8CF; }
.cooking-experience-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(50px,9vw,150px); align-items:end; margin-bottom:58px; }
.cooking-experience-heading h2 { margin:0; color:var(--cacao); font:400 clamp(52px,6.5vw,92px)/.95 'Libre Caslon Text',Georgia,serif; letter-spacing:-.05em; }
.cooking-experience-logo { width:min(100%,660px); height:auto; }
.cooking-experience-copy { max-width:560px; }
.cooking-experience-copy p { margin:0 0 16px; line-height:1.8; }
.cooking-experience-copy .button { margin-top:16px; }
.cooking-photo-grid { display:grid; grid-template-columns:.9fr .9fr 1.2fr; grid-template-rows:repeat(2,minmax(330px,31vw)); gap:16px; }
.cooking-photo { position:relative; margin:0; overflow:hidden; background:var(--cacao); }
.cooking-photo img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.cooking-photo:hover img { transform:scale(1.025); }
.cooking-photo-teaching,.cooking-photo-presses { grid-row:1 / 3; }
.cooking-photo-teaching img { object-position:center 45%; }
.cooking-photo-presses img { object-position:center center; }
.cooking-photo-hands-on img { object-position:center 45%; }
.cooking-photo-community img { object-position:center center; }
.cooking-photo-community::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 56%,rgba(35,31,32,.65)); pointer-events:none; }
.cooking-photo-community figcaption { position:absolute; z-index:1; right:24px; bottom:22px; left:24px; color:var(--crema); font:400 17px/1.4 'Libre Caslon Text',Georgia,serif; }
.editorial-section { display:grid; grid-template-columns:1.15fr .85fr; min-height:720px; }
.editorial-image { position:relative; min-height:640px; background:var(--verde); overflow:hidden; }
.editorial-image img { width:100%; height:100%; object-fit:cover; object-position:center 46%; }
.image-tag { position:absolute; left:28px; bottom:28px; padding:12px 18px; background:var(--crema); color:var(--cacao); font-family:'Libre Caslon Text',serif; font-size:17px; }
.editorial-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(60px,8vw,130px); background:#F5E8CF; }
.editorial-copy h2,.story-section h2,.newsletter h2 { margin:0 0 28px; color:var(--cacao); font-size:clamp(44px,5vw,72px); line-height:1.05; letter-spacing:-.04em; }
.editorial-copy>p:not(.eyebrow) { max-width:560px; margin:0 0 18px; font-size:16px; line-height:1.8; }
.mini-values { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.mini-values span { padding:9px 13px; border:1px solid rgba(75,46,5,.28); border-radius:999px; font-size:11px; font-weight:600; }
.event-section { display:grid; grid-template-columns:1fr 1fr; background:var(--tierra); color:var(--crema); }
.event-card { padding:100px clamp(34px,8vw,130px); }
.event-card h2 { margin:0; font-size:clamp(56px,7vw,100px); line-height:.95; letter-spacing:-.055em; }
.event-subhead { margin:22px 0 34px; font-size:18px; font-weight:600; }
.event-card>p:not(.eyebrow):not(.event-subhead):not(.fine-print) { max-width:560px; line-height:1.8; }
.event-details { margin:40px 0; border-top:1px solid rgba(255,245,225,.4); }
.event-details div { display:grid; grid-template-columns:100px 1fr; gap:20px; padding:16px 0; border-bottom:1px solid rgba(255,245,225,.4); }
.event-details dt { font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.event-details dd { margin:0; font-family:'Libre Caslon Text',serif; font-size:17px; }
.fine-print { margin:16px 0 0; font-size:11px; opacity:.8; }
.event-image-wrap { position:relative; min-height:780px; background:var(--cacao); }
.event-image-wrap::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(35,31,32,.03) 56%,rgba(35,31,32,.72)); pointer-events:none; }
.event-image-wrap img { width:100%; height:100%; object-fit:cover; object-position:center 52%; }
.round-stamp { position:absolute; right:36px; top:36px; display:grid; place-items:center; width:112px; aspect-ratio:1; border-radius:50%; background:var(--sol); color:var(--negro); text-align:center; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; transform:rotate(8deg); }
.event-photo-note { position:absolute; z-index:1; right:38px; bottom:30px; left:38px; margin:0; color:var(--crema); font:400 18px/1.5 'Libre Caslon Text',Georgia,serif; }
.event-community { position:relative; height:clamp(520px,56vw,760px); margin:0; overflow:hidden; background:var(--negro); }
.event-community::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 54%,rgba(35,31,32,.74)); pointer-events:none; }
.event-community img { width:100%; height:100%; object-fit:cover; object-position:center 47%; }
.event-community figcaption { position:absolute; z-index:1; right:clamp(28px,7vw,110px); bottom:clamp(30px,6vw,78px); left:clamp(28px,7vw,110px); color:var(--crema); font:400 clamp(22px,2.2vw,34px)/1.35 'Libre Caslon Text',Georgia,serif; }
.event-community figcaption span { display:block; margin-bottom:8px; color:var(--sol); font:700 11px/1.4 'Montserrat',sans-serif; letter-spacing:.2em; text-transform:uppercase; }
.story-section { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(60px,10vw,150px); align-items:center; padding:120px clamp(30px,10vw,180px); }
.story-mark { width:min(34vw,400px); aspect-ratio:1; display:grid; place-items:center; border-radius:50% 50% 44% 56% / 58% 41% 59% 42%; background:var(--verde); color:var(--crema); font-family:'Libre Caslon Text',serif; font-size:clamp(100px,18vw,230px); }
.story-role { color:var(--tierra); font-weight:700; }
.story-section p:not(.eyebrow):not(.story-role) { max-width:650px; line-height:1.85; }
.story-section .text-link { margin-top:22px; }
.rentals-section { display:grid; grid-template-columns:.85fr 1.15fr; background:var(--cacao); color:var(--crema); }
.rentals-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:95px clamp(34px,7vw,110px); }
.rentals-copy h2 { margin:0 0 28px; font-size:clamp(50px,6vw,84px); line-height:1; }
.rentals-copy p:not(.eyebrow) { max-width:520px; margin-bottom:34px; line-height:1.8; }
.rental-feature { position:relative; min-height:680px; margin:0; overflow:hidden; background:var(--negro); }
.rental-feature img { width:100%; height:100%; min-height:680px; object-fit:cover; object-position:center 40%; }
.rental-feature::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 62%,rgba(35,31,32,.62)); pointer-events:none; }
.rental-feature figcaption { position:absolute; z-index:1; right:34px; bottom:30px; left:34px; color:var(--crema); font:400 18px/1.5 'Libre Caslon Text',Georgia,serif; }
.space-gallery-section { padding:110px clamp(24px,7vw,110px) 120px; background:#F5E8CF; }
.space-gallery-heading { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(40px,8vw,120px); align-items:end; margin-bottom:54px; }
.space-gallery-heading h2 { max-width:780px; margin:0; color:var(--cacao); font-size:clamp(46px,5.5vw,78px); line-height:1; letter-spacing:-.04em; }
.space-gallery-heading>p { max-width:520px; margin:0 0 4px; line-height:1.8; }
.space-gallery { display:grid; grid-template-columns:1.08fr .92fr; grid-template-rows:repeat(2,minmax(360px,46vw)); gap:18px; }
.space-photo { position:relative; margin:0; overflow:hidden; background:var(--cacao); }
.space-photo img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.space-photo:hover img { transform:scale(1.025); }
.space-photo-nook { grid-row:1 / 3; }
.space-photo-nook img { object-position:center center; }
.space-photo-art-table img { object-position:center 58%; }
.space-photo-art-plants img { object-position:center 48%; }
.space-photo-kitchen { grid-column:1 / -1; min-height:560px; }
.space-photo-kitchen img { object-position:center 62%; }
.newsletter { display:grid; grid-template-columns:160px 1fr 1fr; gap:48px; align-items:center; padding:100px clamp(30px,8vw,140px); background:var(--sol); }
.newsletter>img { width:150px; }
.newsletter h2 { max-width:700px; font-size:clamp(40px,4.5vw,66px); }
.newsletter p:not(.eyebrow) { max-width:650px; line-height:1.7; }
.signup-form { display:flex; align-items:stretch; border-bottom:2px solid var(--negro); }
.signup-form input { min-width:0; flex:1; padding:18px 4px; border:0; outline:0; background:transparent; color:var(--negro); font:600 14px 'Montserrat',sans-serif; }
.signup-form input::placeholder { color:rgba(35,31,32,.72); }
.signup-form button { border:0; background:transparent; color:var(--negro); font:700 12px 'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
footer { padding:64px clamp(30px,6vw,90px) 30px; background:var(--negro); color:var(--crema); text-align:center; }
footer>img { width:260px; height:120px; object-fit:cover; margin:0 auto 20px; background:var(--crema); border-radius:12px; }
footer>p { margin:10px 0; }
.footer-links { display:flex; justify-content:center; gap:30px; margin:34px 0; font-size:12px; }
.copyright { padding-top:25px; border-top:1px solid rgba(255,245,225,.18); font-size:10px; opacity:.65; }
.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:980px) {
  .site-header { grid-template-columns:1fr auto; min-height:86px; }
  nav { display:none; }
  .brand img { width:170px; max-height:55px; }
  .hero,.editorial-section,.event-section,.rentals-section { grid-template-columns:1fr; }
  .offerings-heading { grid-template-columns:1fr 1fr; }
  .offerings-heading .eyebrow { grid-column:1/-1; }
  .offerings-grid { grid-template-columns:1fr; }
  .offering-card { min-height:430px; border-right:0; border-bottom:1px solid rgba(255,245,225,.24); }
  .offering-card:last-child { border-bottom:0; }
  .cooking-experience-heading { grid-template-columns:1fr; gap:32px; }
  .cooking-photo-grid { grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,minmax(360px,58vw)); }
  .cooking-photo-teaching,.cooking-photo-presses { grid-row:auto; }
  .cooking-photo-hands-on,.cooking-photo-community { grid-column:1 / -1; }
  .hero { min-height:auto; }
  .hero-copy { padding:90px 8vw 70px; }
  .hero-art { min-height:520px; }
  .editorial-image { min-height:520px; }
  .event-image-wrap { min-height:620px; }
  .event-community { height:clamp(500px,68vw,680px); }
  .story-section { grid-template-columns:1fr; }
  .story-mark { width:300px; max-width:80vw; }
  .rental-feature,.rental-feature img { min-height:580px; }
  .space-gallery-heading { grid-template-columns:1fr; gap:26px; }
  .space-gallery { grid-template-rows:repeat(2,minmax(330px,58vw)); }
  .space-photo-kitchen { min-height:480px; }
  .newsletter { grid-template-columns:100px 1fr; }
  .newsletter>img { width:100px; }
  .signup-form { grid-column:1/-1; }
}
@media (max-width:620px) {
  .site-header { padding:14px 18px; }
  .site-header .button-small { min-height:38px; padding:8px 13px; font-size:10px; }
  .brand img { width:140px; }
  .hero-copy { padding:70px 24px 56px; }
  .hero h1 { font-size:58px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-art { min-height:420px; }
  .ritual-section { padding:90px 24px; }
  .offerings-section { padding:80px 24px; }
  .offerings-heading { grid-template-columns:1fr; gap:22px; }
  .offerings-heading .eyebrow { grid-column:auto; }
  .offering-card { min-height:420px; padding:32px 26px 36px; }
  .cooking-experience { padding:80px 18px 84px; }
  .cooking-experience-heading { padding-inline:6px; margin-bottom:36px; }
  .cooking-experience-logo { width:min(100%,520px); }
  .cooking-photo-grid { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; scrollbar-width:thin; }
  .cooking-photo,.cooking-photo-hands-on,.cooking-photo-community { flex:0 0 82vw; min-height:0; aspect-ratio:4/5; scroll-snap-align:center; }
  .cooking-photo img { object-position:center; }
  .ritual-section blockquote { font-size:43px; }
  .editorial-image { min-height:380px; }
  .editorial-copy,.event-card,.story-section,.rentals-copy,.newsletter { padding:78px 24px; }
  .event-card h2 { font-size:56px; }
  .event-image-wrap { min-height:470px; }
  .event-photo-note { right:22px; bottom:22px; left:22px; font-size:16px; }
  .event-community { height:430px; }
  .event-community img { object-position:center center; }
  .story-mark { width:230px; }
  .rental-feature,.rental-feature img { min-height:470px; }
  .rental-feature figcaption { right:22px; bottom:22px; left:22px; font-size:16px; }
  .space-gallery-section { padding:78px 18px 84px; }
  .space-gallery-heading { padding-inline:6px; margin-bottom:34px; }
  .space-gallery { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; scrollbar-width:thin; }
  .space-photo,.space-photo-kitchen { flex:0 0 82vw; min-height:0; aspect-ratio:4/5; scroll-snap-align:center; }
  .space-photo img,.space-photo-kitchen img { object-position:center; }
  .newsletter { grid-template-columns:74px 1fr; gap:24px; }
  .newsletter>img { width:74px; }
  .newsletter h2 { font-size:38px; }
  .signup-form { flex-direction:column; border-bottom:0; gap:12px; }
  .signup-form input { border-bottom:2px solid var(--negro); }
  .signup-form button { min-height:48px; border-radius:999px; background:var(--negro); color:var(--crema); }
  footer { padding-inline:24px; }
  .footer-links { flex-wrap:wrap; gap:16px 24px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }

.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* Fall open house, updated from Sofía’s October 8 feedback. */
section[id] { scroll-margin-top:112px; }
a:focus-visible, button:focus-visible { outline:3px solid var(--cacao); outline-offset:5px; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:50; padding:12px 18px; background:var(--crema); border:2px solid var(--cacao); }
.skip-link:focus { top:12px; }
.fall-hero { min-height:calc(100svh - 104px); }
.fall-hero .hero-copy { padding:70px clamp(30px,6vw,96px); }
.fall-hero h1 { font-size:clamp(60px,7vw,108px); }
.fall-hero .hero-lede { margin-top:28px; font-size:19px; line-height:1.65; }
.hero-invitation { max-width:580px; margin-top:22px; font-size:15px; line-height:1.8; }
.hero-event-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:26px; color:var(--tierra); font-size:12px; font-weight:700; }
.fall-hero .hero-actions { flex-wrap:wrap; gap:20px; margin-top:30px; }
.fall-hero .fall-art { min-height:640px; padding:40px clamp(22px,3vw,50px); background:#F5E8CF; }
.fall-art::before,.fall-art::after { display:none; }
.fall-flyer { width:100%; max-width:480px; height:auto; box-shadow:0 16px 42px rgba(75,46,5,.13); }
.fall-event .event-card { padding:84px clamp(30px,6vw,96px); }
.fall-event .event-card h2 { font-size:clamp(54px,6vw,86px); }
.fall-event .event-details { margin:30px 0; }
.fall-event .event-details dd { line-height:1.55; }
.open-house-experiences { display:grid; gap:16px; margin:0 0 34px; }
.open-house-experiences p { font-size:13px; line-height:1.6; }
.open-house-experiences strong { display:block; margin-bottom:3px; font-size:14px; }
.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; min-width:0; }
.contact-button { background:var(--cacao); border-color:var(--cacao); }
.contact-email { font-size:13px; font-weight:600; overflow-wrap:anywhere; }
.contact-actions .text-link { font-size:12px; }
@media (max-width:980px) {
  .fall-hero { min-height:auto; }
  .fall-hero .fall-art { min-height:0; padding:38px 24px; }
  .contact-actions { grid-column:1/-1; }
  section[id] { scroll-margin-top:94px; }
}
@media (max-width:620px) {
  .fall-hero .hero-copy { padding:56px 24px 44px; }
  .fall-hero h1 { font-size:59px; }
  .fall-hero .hero-lede { font-size:17px; }
  .hero-event-meta { line-height:1.6; }
  .fall-hero .hero-actions { align-items:flex-start; }
  .fall-event .event-card { padding:64px 24px; }
  .fall-event .event-card h2 { font-size:54px; }
  .fall-event .event-details div { grid-template-columns:76px 1fr; gap:16px; }
  .fall-event .event-details dd { font-size:16px; }
  .fall-event .event-image-wrap { min-height:460px; }
}

/* Display the authentic logo at a readable size without changing its artwork. */
.brand { display:block; width:220px; height:72px; overflow:hidden; }
.brand img { width:220px; height:220px; max-height:none; object-fit:contain; transform:translateY(-72px); }
@media (max-width:980px) { .brand { width:180px; height:60px; } .brand img { width:180px; height:180px; transform:translateY(-59px); } }
@media (max-width:620px) { .site-header { gap:16px; } .brand { width:165px; height:54px; } .brand img { width:165px; height:165px; transform:translateY(-54px); } }

/* Seasonal calendar from Sofía’s October 12 planning email. */
.site-header nav { gap:clamp(16px,2.2vw,32px); }
.season-section { padding:100px clamp(24px,7vw,110px); background:#F5E8CF; }
.season-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; margin-bottom:48px; }
.season-heading h2 { margin:0; color:var(--cacao); font-size:clamp(48px,5.5vw,78px); line-height:1.05; letter-spacing:-.045em; }
.season-heading>p { max-width:480px; line-height:1.8; }
.season-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.season-card { display:flex; flex-direction:column; align-items:flex-start; padding:36px; background:var(--crema); border:1px solid rgba(75,46,5,.22); }
.season-card-meta { display:flex; flex-wrap:wrap; gap:12px 22px; justify-content:space-between; width:100%; margin-bottom:40px; color:var(--cacao); font-size:12px; font-weight:700; }
.season-card-meta span { padding:4px 9px; border:1px solid rgba(75,46,5,.3); border-radius:999px; }
.season-card-meta time { padding-block:4px; }
.season-card .eyebrow { margin-bottom:16px; }
.season-card h3 { margin-bottom:22px; color:var(--cacao); font:400 clamp(34px,4vw,52px)/1.05 'Libre Caslon Text',Georgia,serif; letter-spacing:-.025em; }
.season-card>p:not(.eyebrow) { flex:1; margin-bottom:32px; font-size:14px; line-height:1.8; }
.posada-card { background:#E8D7B6; }
.season-note { margin-top:22px; font-size:12px; line-height:1.8; }
.community-gatherings { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; margin-top:74px; padding-top:48px; border-top:1px solid rgba(75,46,5,.25); }
.community-gatherings h3 { margin-bottom:20px; color:var(--cacao); font:400 38px/1.1 'Libre Caslon Text',Georgia,serif; }
.community-gatherings>div>p:not(.eyebrow) { max-width:400px; font-size:14px; line-height:1.8; }
.community-calendar li { display:grid; grid-template-columns:76px 1fr; gap:24px; padding:20px 0; border-bottom:1px solid rgba(75,46,5,.2); }
.community-calendar time { color:var(--tierra); font-size:12px; font-weight:700; }
.community-calendar h4 { font-size:14px; font-weight:700; margin-bottom:8px; }
.community-calendar p { font-size:12px; line-height:1.8; }
@media (max-width:980px) { .season-heading,.community-gatherings { grid-template-columns:1fr; gap:28px; } .season-heading>p { max-width:620px; } }
@media (max-width:620px) { .season-section { padding:68px 24px; } .season-heading { margin-bottom:32px; } .season-grid { grid-template-columns:1fr; } .season-card { padding:26px; } .season-card-meta { margin-bottom:30px; } .community-calendar li { grid-template-columns:58px 1fr; gap:16px; } .community-gatherings { margin-top:48px; padding-top:36px; } }

#tamale-making { scroll-margin-top:112px; }

/* Supplied logo variants, displayed without altering their artwork. */
.offering-logo-frame { position:relative; width:min(100%,280px); aspect-ratio:1.55; overflow:hidden; margin:0 0 28px; }
.cooking-logo-frame { position:relative; width:min(100%,660px); aspect-ratio:1.55; overflow:hidden; background:transparent; }
.offering-logo-frame .offering-logo,.cooking-logo-frame .cooking-experience-logo { position:absolute; top:50%; width:100%; max-width:none; height:auto; margin:0; transform:translateY(-50%); }
