/*
  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{--background:#faf8f4;--foreground:#29231e;--primary:#59382a;--primary-foreground:#fff;--muted:#eee7dd;--muted-foreground:#685c52;--border:#d8cbbd;--ring:#865b38;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--background);color:var(--foreground);font:16px/1.65 Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b77939;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.12}h1{font-size:clamp(44px,5.4vw,82px);letter-spacing:-.05em}h2{font-size:clamp(34px,3.5vw,52px);letter-spacing:-.04em}h3{font-size:28px}em{font-weight:400;color:#97744f}.nav{display:flex;align-items:center;justify-content:space-between;padding:25px 5%;gap:24px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:14px;font:44px Georgia,serif}.brand>span{font-size:24px}.brand small{display:block;font:10px Arial;letter-spacing:3px;margin-top:8px}.nav nav{display:flex;gap:28px;font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;background:var(--primary);color:white;padding:16px 25px;font-size:14px;border:1px solid var(--primary);cursor:pointer}.button:hover{background:#754c37}.hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:640px;align-items:center;gap:4%;padding:60px 5%}.eyebrow{font-size:12px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase;margin-bottom:24px}.intro{font-size:18px;color:var(--muted-foreground);max-width:490px;margin-bottom:32px}.fine{font-size:14px;color:var(--muted-foreground);margin-top:22px}.hero-art{height:530px;background:#32271f;color:#dcc9a9;overflow:hidden}.hero-art img{height:100%;width:100%;object-fit:cover}.section{padding:90px 5%;border-top:1px solid var(--border)}@media(max-width:760px){.nav{padding:20px}.nav nav{display:none}.nav>.button{padding:12px;font-size:12px}.brand{font-size:32px;gap:8px}.brand>span{font-size:19px}.brand small{font-size:8px;letter-spacing:2px}.hero{grid-template-columns:1fr;padding:46px 22px;gap:30px;min-height:0}.hero-art{height:320px}.section{padding:60px 22px}}
.skip{position:absolute;left:20px;top:-80px;z-index:99;background:white;padding:16px}.skip:focus{top:10px}.hero-art{position:relative}.image-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#211911dd);padding:70px 30px 25px;color:white;font-size:11px;letter-spacing:2px;display:flex;justify-content:space-between;gap:20px}.image-caption span{font:20px Georgia;letter-spacing:0}.trust-strip{display:flex;justify-content:space-around;gap:20px;background:#eae1d4;padding:22px 5%;font-size:13px;letter-spacing:1px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:40px}.section-heading h2{margin-bottom:0}.section-heading>p{color:var(--muted-foreground);max-width:390px}.services{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--border);border-top:1px solid var(--border)}.service{padding:34px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.service-index{display:block;margin-bottom:38px;font-size:11px;letter-spacing:1.5px}.service h3{font-size:29px}.service p{font-size:15px;color:var(--muted-foreground);margin-bottom:0}.service.core{background:#30271f;color:#f7f2ea}.service.core p{color:#d2c6b9}.service.core .service-index{color:#d5b590}.service-note{font-size:14px;color:var(--muted-foreground);margin-top:25px;max-width:820px}.sessions{background:#eee6da;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:28px}.sessions>div:first-child>p:not(.eyebrow){font-size:15px;color:var(--muted-foreground)}.price{padding:34px;border:1px solid #cdbba6;display:flex;flex-direction:column;justify-content:center}.price.featured{background:#faf8f4}.amount{font:52px Georgia;margin-bottom:30px}.amount span{font:14px Arial;color:var(--muted-foreground)}.price h3{font-size:32px;margin-bottom:22px}.price .eyebrow{font-size:10px}.outline{background:transparent;color:var(--primary)}.outline:hover{color:white}.price-note{grid-column:1/-1;font-size:13px;margin-bottom:0;color:var(--muted-foreground)}.about{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.about-photo{height:490px}.about-photo img{width:100%;height:100%;object-fit:cover;object-position:20% 50%}.about p:not(.eyebrow){color:var(--muted-foreground)}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:5px;margin-top:16px}.locations{display:grid;grid-template-columns:repeat(3,1fr);gap:0 38px}.location{border-top:1px solid var(--border);padding:34px 0}.location .eyebrow{font-size:10px;margin-bottom:22px;display:flex;justify-content:space-between}.location .eyebrow span{color:#92734f}address{font-style:normal;color:var(--muted-foreground)}.phone{display:block;font-size:20px;margin:18px 0}.location-links{display:flex;justify-content:space-between;gap:16px;font-size:13px}.location-links a:hover,.phone:hover{text-decoration:underline}.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%;background:#f0ebe3}.faq details{padding:20px 0;border-bottom:1px solid var(--border)}.faq summary{cursor:pointer;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary:after{content:"+"}.faq details[open] summary:after{content:"−"}.faq details p{margin-top:18px;margin-bottom:0;font-size:15px;color:var(--muted-foreground)}.closing{background:#30271f;text-align:center;color:#f9f3ea;padding:85px 20px}.closing .eyebrow{color:#c8ae8e}.closing h2{margin-bottom:32px}.light{background:#eee4d5;color:#33281f;border-color:#eee4d5}.light:hover{background:#d9c4a9;color:#211a15}footer{padding:48px 5% 28px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:36px}.footer-top p{font-size:14px;color:var(--muted-foreground)}.footer-bottom{display:flex;gap:25px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:24px;font-size:12px}.footer-bottom span{margin-right:auto}.mobile-book{display:none}.visit-card{background:#eee6da;padding:48px}.visit-card p:not(.eyebrow){font-size:15px;color:var(--muted-foreground)}.legal{max-width:1000px;margin:auto}.legal h1{font-size:56px}.legal h2{font-size:30px;margin-top:40px}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.team-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;margin-bottom:24px}.team-grid .eyebrow{font-size:11px}.team-grid p{font-size:15px}.editor{max-width:1400px;margin:auto}.editor h1{font-size:56px}.editor h2{font-size:30px}.editor-brand{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:40px 0 60px}.editor-image{height:220px;position:relative;background:#e6ded2;overflow:hidden}.editor-image img{width:100%;height:100%;object-fit:cover;position:relative;z-index:2}.photo-hint{position:absolute;inset:0;display:grid;place-items:center;color:#655543;z-index:1}.upload{display:block;padding:10px 0;font-size:14px}.upload input{display:block;width:100%;font-size:13px}.editor-staff{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.editor-card{padding:25px;border:1px solid var(--border)}.editor-card>label{display:block;margin-top:16px;font-size:14px}.editor-card input:not([type=checkbox]){width:100%;display:block;border:1px solid var(--border);padding:10px;background:white;margin-top:5px}.editor-card .check{display:flex;gap:12px;align-items:center}.check input{width:18px;height:18px}.editor-save{position:sticky;bottom:0;background:#faf8f4;padding:20px 0;display:flex;align-items:center;gap:20px;z-index:3}.editor-save p{margin:0;flex:1;font-size:14px}.editor-save>a{font-size:13px}.editor button:disabled{opacity:.6;cursor:wait}
@media(min-width:1500px){.hero,.section,.nav,footer{padding-left:max(5%,calc((100vw - 1400px)/2));padding-right:max(5%,calc((100vw - 1400px)/2))}}
@media(max-width:1000px){.nav nav{gap:15px}.services{grid-template-columns:repeat(2,1fr)}.sessions{grid-template-columns:1fr 1fr}.sessions>div:first-child{grid-column:1/-1}.locations{grid-template-columns:repeat(2,1fr)}.team-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){body{padding-bottom:66px}.hero-art{height:390px}.trust-strip{font-size:10px;letter-spacing:0;gap:10px;padding:18px}.section-heading{display:block}.section-heading>p{margin-top:24px}.services{grid-template-columns:1fr}.service{padding:28px}.service-index{margin-bottom:20px}.sessions{grid-template-columns:1fr;gap:20px}.sessions>div:first-child{grid-column:auto}.price{padding:30px}.about{grid-template-columns:1fr;gap:35px}.about-photo{height:350px}.locations{grid-template-columns:1fr}.faq{grid-template-columns:1fr;gap:20px}.footer-top{align-items:start;flex-direction:column}.footer-bottom{gap:18px}.footer-bottom span{flex-basis:100%}.mobile-book{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:10;box-shadow:0 -2px 10px #0002;padding:18px 12px}.visit-card{padding:30px}.team-grid{gap:15px}.team-grid h3{font-size:24px}.legal h1{font-size:42px}.editor-brand,.editor-staff{grid-template-columns:1fr}.editor{padding:30px 20px}.editor h1{font-size:42px}.editor-save{flex-wrap:wrap}.editor-save p{flex-basis:100%}.image-caption{padding:50px 18px 20px;font-size:9px}.image-caption span{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.auth-panel{max-width:560px;margin:40px 0}.auth-panel label,.editor-card form>label{display:block;margin:20px 0}.auth-panel input,.editor-card textarea{display:block;width:100%;padding:12px;border:1px solid var(--border);background:white;margin-top:6px}.auth-panel button,.editor-card button{margin-top:16px}.editor-card textarea{resize:vertical}.editor-card .check{display:flex}.editor-card .check input{width:18px;height:18px}.alert{padding:18px 22px;margin:25px 0;border:1px solid}.error{background:#fff0ed;border-color:#b24a39;color:#772b21}.success{background:#edf5eb;border-color:#597650;color:#264121}.signout{margin-top:40px}
