/* Seatings theme - extras theme.json can't express. */
:root { --s-radius: 16px; --s-shadow: 0 4px 16px rgba(30, 28, 25, .08); }
body { -webkit-font-smoothing: antialiased; }
:where(.wp-site-blocks) :focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }

/* header */
.s-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--wp--preset--color--line); }
/* The blur lives on a pseudo element: a backdrop-filter on the header itself would trap the full-screen mobile menu inside it. */
.s-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); }
.s-header .wp-block-site-title { flex-shrink: 0; }
.s-header .wp-block-button__link { white-space: nowrap; }
.s-nav-cta { display: none !important; }

/* Mobile menu: the hamburger until 860px (core switches at 600px, where the links no longer fit). */
@media (max-width: 860px) {
  .s-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .s-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.s-header .wp-block-navigation__responsive-container-open { padding: 8px; margin-right: -8px; }
.s-header .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }
.s-header .wp-block-navigation__responsive-container.is-menu-open { background: #fff; padding: 18px 20px 32px; animation: s-menu-in .18s ease-out; }
@keyframes s-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.admin-bar .s-header .wp-block-navigation__responsive-container.is-menu-open { top: 46px; }
.s-header .is-menu-open .wp-block-navigation__responsive-container-close { top: 18px; right: 16px; padding: 8px; }
.s-header .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.s-header .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px; align-items: stretch !important; }
.s-header .is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; width: 100%; }
.s-header .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); }
.s-header .is-menu-open .wp-block-navigation-item__content { box-sizing: border-box; display: block; width: 100%; padding: 16px 4px !important; font-family: var(--wp--preset--font-family--serif, Georgia, serif); font-size: 30px; font-weight: 600; line-height: 1.15; color: var(--wp--preset--color--ink); text-decoration: none; }
.s-header .is-menu-open .s-nav-cta { display: block !important; border-bottom: none; margin-top: 24px; }
.s-header .is-menu-open .s-nav-cta .wp-block-navigation-item__content { font-family: inherit; font-size: 17px; text-align: center; background: var(--wp--preset--color--accent); color: #fff; border-radius: 12px; padding: 16px !important; }
body:has(.is-menu-open) { overflow: hidden; }
.s-header .is-menu-open .wp-block-navigation__responsive-dialog::before { content: ""; position: absolute; left: 0; top: 26px; width: 150px; height: 34px; background: url(../img/brand/logo.svg) left center / contain no-repeat; }
.s-header .is-menu-open .wp-block-navigation__responsive-dialog { position: relative; }
.admin-bar .s-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .s-header { top: 46px; } }
.s-header .wp-block-button__link { padding: 10px 18px; font-size: 15px; }
.s-header .wp-block-site-title a { text-decoration: none; }

/* small labels */
.s-eyebrow { font-size: 12px !important; font-weight: 600; letter-spacing: .9px; text-transform: uppercase; color: var(--wp--preset--color--muted); margin-bottom: 0; }
.s-lede { font-size: 19px; line-height: 1.6; color: #4A453E; }
.s-muted { color: var(--wp--preset--color--muted); }
.s-note { font-size: 14px; color: var(--wp--preset--color--muted); }

/* cards */
.s-card { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--s-radius); }
.s-card.is-accent { border: 2px solid var(--wp--preset--color--accent); box-shadow: 0 12px 32px rgba(63, 90, 74, .14); }
.s-step-num { width: 40px; height: 40px; border-radius: 50%; background: var(--wp--preset--color--accent); color: #fff; display: inline-flex !important; align-items: center; justify-content: center; font-weight: 600; font-size: 16px; margin: 0; }
.s-chip { display: inline-block; padding: 8px 14px; border-radius: 999px; background: var(--wp--preset--color--chip); font-size: 15px; margin: 0 6px 8px 0; }
.s-chip.is-ok::before { content: '✓ '; color: var(--wp--preset--color--accent); font-weight: 600; }
.s-price { font-family: var(--wp--preset--font-family--serif); font-weight: 600; font-size: 64px; line-height: 1; margin: 0; }
.s-checks { list-style: none; padding: 0; margin: 0; }
.s-checks li { position: relative; padding-left: 28px; margin: 0 0 10px; line-height: 1.5; }
.s-checks li::before { content: ''; position: absolute; left: 2px; top: 6px; width: 12px; height: 7px; border-left: 2.2px solid var(--wp--preset--color--accent); border-bottom: 2.2px solid var(--wp--preset--color--accent); transform: rotate(-45deg); }
.s-checks.is-muted li::before { border-color: var(--wp--preset--color--muted); }

/* hero art */
.s-hero-art img { border-radius: 20px; box-shadow: 0 24px 60px rgba(30, 28, 25, .14); border: 1px solid var(--wp--preset--color--line); background: #fff; }
.s-piece img { border-radius: 12px; background: #EDE7DC; }

/* outline button */
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--ink); border: 1px solid #D8CFC0; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--ink); }

/* inline CTA from the [seatings_app] shortcode */
.seatings-cta-inline { display: inline-block; background: var(--wp--preset--color--accent); color: #fff !important; padding: 12px 22px; border-radius: 10px; font-weight: 600; text-decoration: none; }
.seatings-cta-inline:hover { background: var(--wp--preset--color--accent-dark); }

/* FAQ */
.s-faq .wp-block-details summary { font-family: var(--wp--preset--font-family--serif); font-size: 24px; font-weight: 600; cursor: pointer; list-style: none; padding-right: 32px; position: relative; }
.s-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.s-faq .wp-block-details summary::after { content: '+'; position: absolute; right: 4px; top: -2px; font-family: var(--wp--preset--font-family--sans); font-weight: 400; font-size: 26px; color: var(--wp--preset--color--muted); }
.s-faq .wp-block-details[open] summary::after { content: '−'; }
.s-faq .wp-block-details p { color: #4A453E; margin-top: 10px; }

/* blog */
.s-post-card { height: 100%; }
.s-post-card .wp-block-post-featured-image img { border-radius: 12px; aspect-ratio: 16/9; object-fit: cover; }
.s-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.wp-block-post-content > * + h2 { margin-top: 2em; }
.wp-block-post-content img { border-radius: 12px; }
.s-article-cta { background: var(--wp--preset--color--accent-tint); border-radius: var(--s-radius); }
.wp-block-query-pagination a { text-decoration: none; }
.wp-block-post-terms a { text-decoration: none; font-size: 13px; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; }

/* footer */
.s-footer a { color: #fff; text-decoration: none; opacity: .85; }
.s-footer a:hover { opacity: 1; color: #fff; }

/* template parts sit flush */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* notes / tips in docs and pages */
.wp-block-post-content .s-note { background: var(--wp--preset--color--accent-tint); color: #2C4034; border-radius: 12px; padding: 14px 18px; font-size: 15px; line-height: 1.55; }

/* pricing comparison */
.s-compare table { border-collapse: collapse; width: 100%; font-size: 15px; }
.s-compare th, .s-compare td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 12px 10px; text-align: center; }
.s-compare th:first-child, .s-compare td:first-child { text-align: left; }
.s-compare thead th { font-family: var(--wp--preset--font-family--serif); font-size: 22px; font-weight: 600; border-bottom: 2px solid var(--wp--preset--color--ink); }
.s-compare td:not(:first-child) { width: 120px; color: var(--wp--preset--color--accent); font-weight: 600; white-space: nowrap; }
.s-compare tr:has(td:nth-child(2):empty) td { padding-top: 26px; border-bottom-color: transparent; font-size: 12px; letter-spacing: .8px; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.s-compare tr:has(td:nth-child(2):empty) td strong { font-weight: 600; }

/* contact form */
.s-form p { margin: 0 0 16px; }
.s-form label { display: block; font-size: 13px; font-weight: 500; color: var(--wp--preset--color--muted); margin-bottom: 6px; }
.s-form input, .s-form select, .s-form textarea { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; color: var(--wp--preset--color--ink); background: #fff; border: 1px solid #D8CFC0; border-radius: 10px; padding: 11px 13px; }
.s-form textarea { resize: vertical; min-height: 150px; line-height: 1.5; }
.s-form input:focus, .s-form select:focus, .s-form textarea:focus { outline: none; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px rgba(63, 90, 74, .15); }
.s-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .s-form-row { grid-template-columns: 1fr; gap: 0; } }
.s-form button { cursor: pointer; border: 0; width: 100%; padding: 14px 22px; font-size: 16px; }
.s-form .s-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.s-form-done h3 { margin: 0 0 8px; }
.s-form-error { background: #F6E6DD; color: #8E3F1E; border-radius: 10px; padding: 12px 16px; margin-bottom: 18px; font-size: 15px; }
.s-links { list-style: none; padding: 0; margin: 0; line-height: 2; }
.s-links a { text-decoration: none; }

/* docs */
.s-docs-search .wp-block-search__inside-wrapper { border: 1px solid #D8CFC0; border-radius: 12px; background: #fff; padding: 4px; }
.s-docs-search .wp-block-search__input { border: 0; font-size: 16px; padding: 10px 12px; background: transparent; }
.s-docs-search .wp-block-search__button { margin: 0; border-radius: 9px; padding: 10px 18px; }
.s-docs-search.is-small .wp-block-search__input { font-size: 14px; padding: 8px 10px; }
.s-docs-index { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.s-docs-topic { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--s-radius); padding: 24px 26px; }
.s-docs-topic h2 { font-size: 26px; margin: 0 0 6px; }
.s-docs-topic h2 a { color: inherit; text-decoration: none; }
.s-docs-topic p { font-size: 14px; margin: 0 0 12px; }
.s-docs-topic ul { list-style: none; margin: 0; padding: 0; }
.s-docs-topic li { padding: 6px 0; border-top: 1px solid #F0EBE2; font-size: 15px; }
.s-docs-topic li a { text-decoration: none; }
.s-docs-layout { align-items: flex-start !important; }
.s-docs-side { position: sticky; top: 90px; }
.s-docs-nav { font-size: 14px; margin-top: 18px; }
.s-docs-nav a { color: #4A453E; text-decoration: none; display: block; padding: 4px 10px; border-radius: 8px; }
.s-docs-nav a:hover { background: var(--wp--preset--color--chip); color: var(--wp--preset--color--ink); }
.s-docs-nav a.is-current { background: var(--wp--preset--color--accent-tint); color: var(--wp--preset--color--accent-dark); font-weight: 600; }
.s-docs-nav ul { list-style: none; margin: 0 0 14px; padding: 0; }
.s-docs-nav .s-docs-home { font-weight: 600; margin-bottom: 8px; }
.s-docs-nav-topic { font-size: 11px; font-weight: 600; letter-spacing: .9px; text-transform: uppercase; color: var(--wp--preset--color--muted); margin: 14px 10px 4px; }
.s-docs-crumbs { font-size: 14px; color: var(--wp--preset--color--muted); margin: 0 0 8px; }
.s-docs-crumbs a { text-decoration: none; }
.s-doc-body h2 { font-size: 30px; margin-top: 1.6em; }
.s-doc-body h3 { font-size: 22px; }
.s-doc-body li { margin-bottom: 6px; }
.s-doc-body { font-size: 17px; line-height: 1.7; }
.s-doc-body > p:first-child { font-size: 19px; color: #4A453E; }
.s-doc-body .wp-block-image { margin: 28px 0; }
.s-doc-body .wp-block-image img { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; box-shadow: 0 1px 2px rgba(40,28,14,.05), 0 10px 28px rgba(40,28,14,.08); height: auto; max-width: 100%; background: #fff; }
.s-doc-body .wp-block-image img:hover { box-shadow: 0 1px 2px rgba(40,28,14,.06), 0 16px 36px rgba(40,28,14,.13); }
.s-doc-body .wp-element-caption { font-size: 14px; color: var(--wp--preset--color--muted); text-align: center; margin-top: 10px; }
.s-doc-body ol, .s-doc-body ul { padding-left: 1.3em; }
.s-doc-body ol li::marker { font-weight: 600; color: var(--wp--preset--color--accent-dark); }
.s-doc-body code, .s-doc-body kbd { font-size: .88em; background: var(--wp--preset--color--chip); border-radius: 6px; padding: 2px 6px; }
.s-doc-body kbd { border: 1px solid var(--wp--preset--color--line); border-bottom-width: 2px; font-family: inherit; }
.s-doc-table { margin: 24px 0; overflow-x: auto; }
.s-doc-table table { width: 100%; border-collapse: collapse; font-size: 15px; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; overflow: hidden; }
.s-doc-table th, .s-doc-table td { text-align: left; vertical-align: top; padding: 10px 14px; border: 0; border-bottom: 1px solid #F0EBE2; }
.s-doc-table thead th { background: var(--wp--preset--color--chip); font-weight: 600; border-bottom: 1px solid var(--wp--preset--color--line); }
.s-doc-table thead { border-bottom: 0 !important; }
.s-doc-table tr:last-child td { border-bottom: 0; }
.s-doc-body .s-note { margin: 22px 0; }
.s-doc-body .wp-block-details { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 14px 18px; margin: 0 0 10px; }
.s-doc-body .wp-block-details summary { font-weight: 600; cursor: pointer; list-style: none; padding-right: 28px; position: relative; }
.s-doc-body .wp-block-details summary::-webkit-details-marker { display: none; }
.s-doc-body .wp-block-details summary::after { content: '+'; position: absolute; right: 2px; top: -3px; font-size: 22px; font-weight: 400; color: var(--wp--preset--color--muted); }
.s-doc-body .wp-block-details[open] summary::after { content: '\2212'; }
.s-doc-body .wp-block-details > :not(summary) { margin-top: 10px; color: #4A453E; }
@media (max-width: 781px) {
  .s-docs-side { position: static; }
  .s-doc-body { font-size: 16px; }
  .s-docs-pager { flex-direction: column; }
  .s-docs-pager a { max-width: none; width: 100%; margin-left: 0; box-sizing: border-box; }
  .s-doc-table table { font-size: 14px; }
}
.s-docs-pager { display: flex; justify-content: space-between; gap: 16px; margin-top: 48px; }
.s-docs-pager a { flex: 1; max-width: 48%; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 14px 18px; background: #fff; text-decoration: none; color: var(--wp--preset--color--ink); font-weight: 600; }
.s-docs-pager a span { display: block; font-size: 12px; font-weight: 500; color: var(--wp--preset--color--muted); margin-bottom: 2px; }
.s-docs-pager a.next { text-align: right; margin-left: auto; }
.s-docs-pager a:hover { border-color: var(--wp--preset--color--accent); }
.s-docs-list { list-style: none; padding: 0; margin: 24px 0 0; }
.s-docs-list a { display: block; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 16px 20px; margin-bottom: 10px; text-decoration: none; color: var(--wp--preset--color--ink); }
.s-docs-list a:hover { border-color: var(--wp--preset--color--accent); }
.s-docs-list span { display: block; color: var(--wp--preset--color--muted); font-size: 14px; margin-top: 2px; }
.s-docs-help { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--s-radius); }
@media (max-width: 781px) {
  .s-docs-side { position: static; }
  .s-docs-nav { display: none; }
}

/* legal pages */
.wp-block-post-content h2 { font-size: 30px; }
.s-compare .s-no { color: var(--wp--preset--color--muted); font-weight: 400; }
@media (max-width: 600px) {
  .s-compare table { font-size: 14px; }
  .s-compare th, .s-compare td { padding: 10px 6px; }
  .s-compare td:not(:first-child), .s-compare th:not(:first-child) { width: 70px; white-space: normal; }
  .s-compare thead th { font-size: 17px; }
}

/* zoomable images */
.s-piece img, .s-flatlay img, .s-zoom img, .s-doc-body .wp-block-image img, .s-hero-art img { cursor: zoom-in; transition: transform .25s ease, box-shadow .25s ease; }
.s-piece img:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(30, 28, 25, .14); }
.s-piece img { border-radius: 14px; }
.s-flatlay img { border-radius: 20px; box-shadow: 0 24px 60px rgba(30, 28, 25, .12); }
.s-lightbox { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; background: rgba(24, 22, 19, .88); padding: 24px 64px; }
.s-lightbox.open { display: flex; }
.s-lightbox figure { margin: 0; max-width: min(1400px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.s-lightbox img { max-width: 100%; max-height: calc(100vh - 110px); object-fit: contain; border-radius: 10px; background: #fff; cursor: default; box-shadow: 0 30px 80px rgba(0, 0, 0, .4); }
.s-lightbox figcaption { color: #E9E3D8; font-size: 15px; text-align: center; max-width: 720px; }
.s-lightbox button { position: absolute; background: rgba(255, 255, 255, .12); color: #fff; border: 0; border-radius: 50%; width: 48px; height: 48px; font-size: 30px; line-height: 1; cursor: pointer; }
.s-lightbox button:hover { background: rgba(255, 255, 255, .24); }
.s-lb-close { top: 18px; right: 18px; }
.s-lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.s-lb-next { right: 14px; top: 50%; transform: translateY(-50%); }
.s-lightbox.single .s-lb-prev, .s-lightbox.single .s-lb-next { display: none; }
@media (max-width: 600px) { .s-lightbox { padding: 16px; } .s-lb-prev, .s-lb-next { top: auto; bottom: 16px; transform: none; } }

/* hero video in a browser frame */
.s-hero-video { border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid var(--wp--preset--color--line); box-shadow: 0 30px 70px rgba(30, 28, 25, .16), 0 6px 18px rgba(30, 28, 25, .06); }
.s-hero-video video { display: block; width: 100%; height: auto; aspect-ratio: 1280 / 800; background: #F7F3EC; }
.s-browser { display: flex; align-items: center; gap: 7px; padding: 11px 14px; background: #F2EEE6; border-bottom: 1px solid var(--wp--preset--color--line); }
.s-browser span { width: 11px; height: 11px; border-radius: 50%; background: #DCD4C6; }
.s-browser em { font-style: normal; font-size: 12px; color: var(--wp--preset--color--muted); background: #fff; border-radius: 6px; padding: 3px 12px; margin: 0 auto; }
@media (prefers-reduced-motion: reduce) { .s-hero-video video { animation: none; } }
/* Logo */
.s-logo { line-height: 0; }
.s-logo a { display: inline-block; line-height: 0; text-decoration: none; }
.s-logo-svg { height: 38px; width: auto; display: block; }
footer .s-logo-svg, .s-logo-dark .s-logo-svg { height: 40px; }
@media (max-width: 781px) { .s-logo-svg { height: 32px; } }
/* Articles */
.s-article > p:first-child { font-size: 20px; color: #3A362F; }
.s-toc { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; padding: 18px 24px 14px; margin: 28px 0 !important; }
.s-toc .s-toc-title { font-size: 12px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: var(--wp--preset--color--muted); margin: 0 0 6px; }
.s-toc ol { margin: 0; padding-left: 1.3em; columns: 2; column-gap: 32px; font-size: 15px; }
.s-toc li { margin-bottom: 6px; break-inside: avoid; }
.s-toc a { text-decoration: none; }
.s-toc a:hover { text-decoration: underline; }
.s-article h2 { scroll-margin-top: 90px; }
.s-inline-cta { background: var(--wp--preset--color--accent-tint); border-radius: 16px; padding: 22px 26px !important; margin: 32px 0 !important; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.s-inline-cta > p { flex: 1 1 320px; margin: 0; font-size: 17px; color: #2C4034; }
.s-inline-cta .wp-block-buttons { margin: 0; }
.s-article table td:first-child { font-weight: 500; }
@media (max-width: 781px) {
  .s-toc ol { columns: 1; }
  .s-article > p:first-child { font-size: 18px; }
}
