/*
Theme Name: ShootCal GeneratePress
Description: Shared managed photographer theme on free GeneratePress. Looks are CSS files in assets/looks over the same blocks.
Author: Ryan Smith / ShootCal
Template: generatepress
Version: 0.7.20
Text Domain: shootcal
License: GPL-2.0-or-later
*/

/* BASE: structure every look shares. Colors, type, surfaces and motion live in
   assets/looks/<look>.css and only change the variables and decorations below.
   Shared vocabulary: wordpress/plugins/shootcal-blocks/vocabulary.json. */
@font-face {
  font-family: "Gilda Display";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/gilda-latin.woff2") format("woff2");
}
:root {
  /* Neutral defaults; a look overrides these. */
  --sc-bg: #fff;
  --sc-paper: #fff;
  --sc-text: #333;
  --sc-heading: #111;
  --sc-muted: #666;
  --sc-accent: #555;
  --sc-link: #333;
  --sc-line: #e5e5e5;
  --sc-band: #f4f4f4;
  --sc-glass: rgb(255 255 255 / .9);
  --sc-shadow: 0 1px 2px #0000000a, 0 10px 30px #00000012;
  --sc-serif: Georgia, "Times New Roman", serif;
  --sc-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --sc-radius: 12px;
  --sc-reading: 800px;
  --sc-gutter: 32px;
  --sc-band-outset: min(40px, var(--sc-gutter));
  --sc-space-s: 24px;
  --sc-space-m: clamp(48px, 6vw, 80px);
  --sc-space-l: clamp(64px, 8vw, 112px);
  --sc-ease: cubic-bezier(.22, 1, .36, 1);
}
* { box-sizing: border-box; }
html { scroll-padding-top: 96px; }
/* In-page links (a Learn more button, a list of sections) glide to their target instead of jumping, unless the visitor's device asks for less motion. CSS only; the line above keeps the target clear of the floating header. */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body.sc-managed-site {
  margin: 0;
  background: var(--sc-bg);
  color: var(--sc-text);
  font: 400 18px/1.65 var(--sc-sans);
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
/* WordPress's own paragraph "Drop cap" switch (Typography, Drop cap), off unless an author turns it on:
   the look's accent serif, three lines tall. It steps aside while the paragraph is being edited, as in core. */
p.has-drop-cap:not(:focus)::first-letter { float: left; margin: .1em .12em 0 0; color: var(--sc-accent); font-family: var(--sc-serif); font-size: 4.15em; font-style: normal; font-weight: 400; line-height: .74; }
@supports (initial-letter: 3) or (-webkit-initial-letter: 3) {
  p.has-drop-cap:not(:focus)::first-letter { float: none; margin: 0 .5em 0 0; font-size: inherit; line-height: inherit; -webkit-initial-letter: 3; initial-letter: 3; }
}
.sc-managed-site h1, .sc-managed-site h2, .sc-managed-site h3, .sc-managed-site h4 {
  margin: 0 0 24px;
  color: var(--sc-heading);
  font-family: var(--sc-serif);
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -.012em;
}
.sc-managed-site :is(h1, h2):where(:not(h2), .sc-auto-page-heading) { font-size: clamp(36px, 4.2vw, 64px); }
.sc-managed-site h2:where(:not(.sc-auto-page-heading)) { font-size: clamp(30px, 2.5vw, 42px); }
.sc-managed-site h3 { font-size: clamp(24px, 2vw, 30px); }
.sc-managed-site p { margin: 0 0 24px; }
/* Content headings open a new part: room above whatever comes before (a list, table, photo or
   block), as on the live RSP site. A heading right under another heading, or first in its box,
   keeps its tight top. :where keeps this below the photo and spacing helpers. */
.sc-managed-site :is(.entry-content, .sc-post-body) h2:where(:not(.sc-auto-page-heading)):where(:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *)) { margin-top: 56px; }
.sc-managed-site :is(.entry-content, .sc-post-body) :is(h3, h4):where(:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *)) { margin-top: 36px; }
.sc-managed-site :is(.entry-content, .sc-post-body) :where(h3, h4) { margin-bottom: 20px; }
/* Lists end like paragraphs, so the next paragraph or heading never touches them. */
.sc-managed-site :is(.entry-content, .sc-post-body) :is(ul, ol).wp-block-list:where(:not(li > *)) { margin-bottom: 24px; }
@media (max-width: 640px) {
  .sc-managed-site :is(.entry-content, .sc-post-body) h2:where(:not(.sc-auto-page-heading)):where(:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *)) { margin-top: 44px; }
  .sc-managed-site :is(.entry-content, .sc-post-body) :is(h3, h4):where(:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *)) { margin-top: 30px; }
}
.sc-managed-site a { color: var(--sc-link); text-underline-offset: 4px; }
.sc-managed-site a:hover { text-decoration-thickness: 2px; }
.sc-managed-site img { max-width: 100%; height: auto; }
/* The PhotoSwipe lightbox sizes its own images: without this the rule above (same specificity, loaded later)
   beats PhotoSwipe's .pswp img { max-width: none } and every lightbox image collapses to 0px wide. */
.sc-managed-site .pswp img { max-width: none; }
.sc-managed-site figure { margin: 0; }
.sc-managed-site :is(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid #06c; outline-offset: 4px; }
.sc-managed-site button, .sc-managed-site input, .sc-managed-site select, .sc-managed-site textarea { font: inherit; }
.sc-skip-link { position: absolute; left: 16px; top: -100px; padding: 12px 18px; background: white; z-index: 10000; }
.sc-skip-link:focus { top: 12px; }
.sc-main { min-height: 55vh; }
.sc-main:focus { outline: none; }
.sc-page-heading { width: min(var(--sc-reading), calc(100% - 2 * var(--sc-gutter))); margin: 0 auto 48px; padding-top: 152px; }
/* A page that opens with its own H1 has no template heading to clear the floating menu. Breadcrumbs clear it where a site shows them. */
.sc-page > .entry-content:first-child > h1:first-child { padding-top: 152px; }
.entry-content > :not(.alignfull, .sc-hero, .sc-split, .sc-gallery) { max-width: var(--sc-reading); margin-left: auto; margin-right: auto; }
.entry-content > :not(.alignfull, .sc-hero, .sc-split, .sc-gallery, .alignwide) { width: calc(100% - 2 * var(--sc-gutter)); }
.entry-content > .alignwide { max-width: var(--sc-wide); width: calc(100% - 2 * var(--sc-gutter)); }
.entry-content > .alignfull { width: 100%; max-width: none; }
.entry-content > .wp-block-group { margin-block: 64px; }
.entry-content .wp-block-details { padding: 22px 0; border-bottom: 1px solid var(--sc-line); }
.entry-content .wp-block-details summary { cursor: pointer; font-family: var(--sc-serif); font-size: 24px; color: var(--sc-heading); }
.entry-content .wp-block-details p { margin: 20px 0 0; }
.sc-eyebrow { color: var(--sc-accent); font: 500 13px/1.5 var(--sc-sans); letter-spacing: .14em; text-transform: uppercase; }

/* Floating header ("candybar") above the first hero. */
.sc-site-header { position: absolute; z-index: 100; top: 12px; left: 0; right: 0; }
.admin-bar .sc-site-header { top: 44px; }
.sc-nav-shell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter)));
  min-height: 64px;
  margin: 0 auto;
  padding: 6px 24px;
  border: 1px solid rgb(255 255 255 / .75);
  border-radius: 999px;
  background: #fffffff2;
  box-shadow: var(--sc-shadow);
}
.sc-brand { flex-shrink: 0; max-width: 42%; }
.sc-brand a { display: block; color: var(--sc-heading); text-decoration: none; font: 400 26px/1.15 var(--sc-serif); }
.sc-brand img { display: block; width: var(--sc-logo-width, 200px); max-width: 100%; max-height: 44px; object-fit: contain; object-position: left center; }
.sc-site-nav { min-width: 0; }
.sc-menu, .sc-menu ul { margin: 0; padding: 0; list-style: none; }
.sc-menu { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 2px; }
.sc-menu li { position: relative; margin: 0; }
.sc-menu a { display: flex; align-items: center; min-height: 44px; padding: 0 11px; color: var(--sc-text); text-decoration: none; font-size: 15.5px; line-height: 1.4; border-radius: 10px; }
.sc-menu > li > a { white-space: nowrap; }
.sc-menu a:hover, .sc-menu a[aria-current="page"] { color: var(--sc-heading); background: rgb(0 0 0 / .04); }
/* Dropdown chevron: a 10px stroke drawn as a mask, centred on the label with a 6px gap; it turns over while its menu is open. */
.sc-menu .menu-item-has-children > a::after, .sc-menu .page_item_has_children > a::after {
  content: ""; flex-shrink: 0; width: 10px; height: 10px; margin-left: 6px; background: currentColor; opacity: .6;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .3s var(--sc-ease);
}
.sc-menu li:is(:hover, :focus-within) > a::after { transform: rotate(180deg); }
.sc-menu ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 240px;
  max-width: min(340px, calc(100vw - 40px));
  padding: 8px;
  border: 1px solid var(--sc-line);
  border-radius: 18px;
  background: #fffffff5;
  box-shadow: var(--sc-shadow);
}
.sc-menu ul ul { top: 0; left: 100%; }
/* Menu icons (inc/menu-icons.php): a quiet glyph before the label that takes the accent on hover; an icon-only item shows just its glyph on wide screens. */
.sc-menu-icon { flex-shrink: 0; width: 17px; height: 17px; }
.sc-menu-item--icon > a, .sc-menu-item--icon-only > a { gap: 12px; }
.sc-menu ul .sc-menu-icon { width: 14px; height: 14px; opacity: .45; transition: color .15s, opacity .15s; }
.sc-menu ul a:is(:hover, :focus-visible, [aria-current="page"]) .sc-menu-icon { color: var(--sc-menu-icon-accent, var(--sc-accent)); opacity: 1; }
@media (min-width: 1025px) {
  .sc-menu-item--icon-only > a .sc-menu-text { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
.sc-menu li:hover > ul, .sc-menu li:focus-within > ul { display: block; }
.sc-nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: rgb(0 0 0 / .06);
  color: var(--sc-text);
  cursor: pointer;
  font-size: 15.5px;
}
.sc-nav-toggle[hidden] { display: none; }

/* ShootCal Hero / slideshow block. */
.sc-hero { position: relative; display: flex; align-items: flex-end; min-height: 620px; height: 85svh; isolation: isolate; overflow: hidden; background: #26323b; color: white; }
.sc-hero--starter { min-height: 640px; height: 100svh; }
.sc-hero__slides, .sc-hero__shade { position: absolute; inset: 0; z-index: -1; }
.sc-hero__slide { position: absolute; inset: 0; }
.sc-hero__slide[hidden] { display: none; }
.sc-hero__slides img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sc-hero__slides img[hidden] { display: none; }
.sc-hero__shade { background: linear-gradient(0deg, rgb(0 0 0 / .62), transparent 76%); }
.sc-hero__content { width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter))); margin: 0 auto; padding: 120px 0 80px; }
.sc-hero__content :is(h1, h2):where(:not(h2), .sc-auto-page-heading) { max-width: 790px; margin-bottom: 20px; color: white; text-shadow: 0 2px 16px #0004; font-size: clamp(40px, 4.5vw, 68px); line-height: 1.1; }
.sc-hero__content p { max-width: 620px; color: #fffffff0; }
.sc-hero__content .sc-eyebrow { color: #f3d4b6; }
.sc-hero__controls { position: absolute; right: var(--sc-gutter); bottom: 24px; display: flex; gap: 8px; }
.sc-hero__controls button { min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid #ffffff70; border-radius: 999px; color: white; background: #0005; cursor: pointer; font-size: 14px; }
.sc-hero__controls button:hover { background: #0008; }

/* Buttons: ShootCal blocks and core Buttons share one look. */
.sc-button, .sc-managed-site .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 46px;
  padding: 11px 24px;
  border: 1px solid var(--sc-accent);
  border-radius: 999px;
  background: var(--sc-accent);
  color: white;
  font: 500 14px/1.5 var(--sc-sans);
  letter-spacing: .03em;
  text-decoration: none;
  box-shadow: 0 4px 12px #2f2a2412;
  transition: transform .25s var(--sc-ease), background-color .2s;
}
.sc-button:hover, .sc-managed-site .wp-block-button__link:hover { color: white; transform: translateY(-2px); filter: brightness(.94); }
.sc-hero .sc-button { background: #fffffff2; border-color: white; color: #35291f; }
.sc-managed-site .wp-block-button.is-style-sc-large .wp-block-button__link { min-height: 56px; padding: 15px 34px; font-size: 16px; }
.sc-managed-site .wp-block-button.is-style-sc-alt .wp-block-button__link { border-radius: 0; padding: 1rem 2rem; }

/* ShootCal Editorial image & text block. The expanding band belongs to the IMAGE
   figure, under its img, never the text card. */
.sc-split { position: relative; margin: 96px 0 128px; }
.sc-split__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter))); margin: 0 auto; }
.sc-split__image { position: relative; z-index: 0; grid-column: 1; grid-row: 1; margin: 50px 0 0; isolation: isolate; }
.sc-split__image::before { content: ""; position: absolute; z-index: -1; top: -48px; bottom: -48px; left: calc(-1 * var(--sc-band-outset)); right: 28%; border-radius: 20px; background: var(--sc-paper); box-shadow: 0 8px 48px #2f2a2405; transform-origin: center; }
/* The block's Image highlight switch, when off: the photograph alone, with no panel behind it in any look. */
.sc-split.sc-split--plain .sc-split__image::before, .sc-split.sc-split--plain .sc-split__inner::before { content: none; display: none; }
.sc-split__image img { display: block; width: 100%; height: auto; border-radius: var(--sc-radius); box-shadow: var(--sc-shadow); }
.sc-split__content { position: relative; z-index: 1; grid-column: 2; grid-row: 1; margin-left: -88px; padding: 52px 56px; }
.sc-split__content h2 { font-size: clamp(28px, 1.4vw + 16px, 36px); }
.sc-split__content > :last-child { margin-bottom: 0; }
.sc-split--right .sc-split__image { grid-column: 2; }
.sc-split--right .sc-split__image::before { left: 28%; right: calc(-1 * var(--sc-band-outset)); }
.sc-split--right .sc-split__content { grid-column: 1; margin-left: 0; margin-right: -88px; }

/* ShootCal Website gallery block. */
.sc-gallery { max-width: var(--sc-wide); width: calc(100% - 2 * var(--sc-gutter)); margin: 80px auto; }
.sc-gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sc-gallery__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sc-gallery__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sc-gallery__grid img { display: block; width: 100%; height: auto; border-radius: 8px; }
.sc-gallery__notice { padding: 28px; border: 1px dashed var(--sc-line); border-radius: var(--sc-radius); color: var(--sc-muted); }

/* Video or virtual tour, payment form and thank-you greeting blocks. */
.entry-content .sc-embed { border-radius: var(--sc-radius); background: #0001; }
.sc-pay label { color: var(--sc-heading); font-weight: 600; font-size: 16px; }
.sc-pay input, .sc-pay select, .sc-pay textarea { padding: 10px 14px; border: 1px solid var(--sc-line); border-radius: 8px; background: var(--sc-paper); color: var(--sc-text); }
.sc-pay__help { margin: 0; color: var(--sc-muted); font-size: 15px; }
.sc-pay__sum { margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--sc-line); }
.sc-pay__sum output { font-weight: 600; color: var(--sc-heading); }
.sc-pay button[type="submit"] { min-height: 46px; padding: 11px 24px; border: 1px solid var(--sc-accent); border-radius: 999px; background: var(--sc-accent); color: white; cursor: pointer; }
.sc-thanks { margin-bottom: 25px; padding: 15px; border-left: 4px solid #ffb900; background: #f9f9f9; }
.sc-thanks h2 { margin: 0 0 10px; }
.sc-thanks__email { font-weight: 600; color: #d63638; }
.sc-thanks__note { font-size: .9em; color: #555; }

/* Footer, post lists and pagination. */
.sc-site-footer { margin-top: 96px; color: #efefef; background: #222; }
.sc-footer-inner { width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter))); margin: auto; padding: 64px 0 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.sc-footer-brand { font: 400 28px/1.3 var(--sc-serif); }
.sc-site-footer p { margin-bottom: 16px; color: #ffffffb3; font-size: 15px; }
.sc-site-footer a { color: #ffffffd9; }
.sc-footer-menu { display: flex; flex-wrap: wrap; gap: 16px 28px; padding: 0; margin: 0; list-style: none; }
.sc-footer-menu a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; font-size: 15px; }
.sc-footer-copyright { grid-column: 1 / -1; border-top: 1px solid #ffffff26; padding-top: 24px; font-size: 13px; }
.sc-footer-copyright p { margin: 0; font-size: inherit; }
.sc-footer-copyright a { margin-left: 20px; }
/* Rich footer (shootcal_footer_parts): mark + name, social links and search on
   the left; links and badges on the right; contact line and copyright below. */
/* contain: the look's blurred glow (::before) sticks out of the footer. overflow alone still counted it as moving
   when a long page collapses after first paint (Reviews, layout shift 0.16); with paint containment it scores 0. */
.sc-site-footer--rich { position: relative; overflow: hidden; contain: paint; }
.sc-site-footer--rich .sc-footer-inner { position: relative; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: 48px 64px; padding: 64px 0 0; }
.sc-footer-about { display: flex; flex-direction: column; gap: 20px; }
.sc-footer-id { display: flex; align-items: center; gap: 16px; }
.sc-footer-mark { flex-shrink: 0; width: 64px; height: auto; }
.sc-site-footer--rich .sc-footer-brand { margin: 0; color: #fff; font-size: 24px; line-height: 1.25; }
.sc-site-footer--rich .sc-footer-tagline { margin: 4px 0 0; color: #fff9; font-size: 14px; letter-spacing: .02em; }
.sc-footer-social { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sc-footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #ffffff26; border-radius: 999px; color: #fffc; transition: border-color .2s, color .2s; }
.sc-footer-social a:hover { border-color: #ffffff59; color: #fff; }
.sc-footer-search { position: relative; width: 100%; max-width: 300px; margin: 0; }
.sc-footer-search input { width: 100%; min-height: 44px; padding: 0 48px 0 16px; border: 1px solid #ffffff26; border-radius: 999px; background: #ffffff0f; color: #fff; font-size: 15px; appearance: none; }
.sc-footer-search input::placeholder { color: #ffffff80; }
.sc-footer-search input:focus { border-color: #fff6; background: #ffffff1a; outline: none; }
.sc-footer-search button { position: absolute; top: 0; right: 0; bottom: 0; display: inline-flex; align-items: center; justify-content: center; width: 44px; padding: 0; border: 0; border-radius: 999px; background: none; color: #ffffffb3; cursor: pointer; }
.sc-footer-search button:hover { background: #ffffff1a; color: #fff; }
.sc-footer-side { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; padding-top: 12px; }
.sc-site-footer--rich .sc-footer-menu { gap: 14px 36px; }
.sc-site-footer--rich .sc-footer-menu li { font-size: 15px; line-height: 1.375; white-space: nowrap; }
.sc-site-footer--rich .sc-footer-menu a { min-height: 0; color: #ffffffb3; transition: color .2s; }
.sc-site-footer--rich .sc-footer-menu a:hover { color: #fff; }
.sc-footer-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
.sc-footer-badges img { width: auto; height: 64px; object-fit: contain; opacity: .8; transition: opacity .2s; }
.sc-footer-badges a { display: block; }
.sc-footer-cta { margin: 0; }
.sc-footer-cta a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-radius: 999px; background: var(--sc-button, #2f343b); color: var(--sc-button-ink, #fff); font-size: 16px; font-weight: 650; line-height: 1.2; text-decoration: none; box-shadow: 0 6px 16px #2f343b26; transition: background-color .2s; }
.sc-footer-cta a:hover { background: var(--sc-button-hover, #474e58); color: var(--sc-button-ink, #fff); }
.sc-footer-badges img:hover { opacity: 1; }
.sc-site-footer--rich .sc-footer-copyright { display: flex; align-items: center; justify-content: space-between; gap: 8px 32px; padding: 28px 0; border-color: #ffffff1a; color: #ffffff8c; font-size: 13.5px; }
.sc-site-footer--rich .sc-footer-copyright p { color: inherit; }
.sc-site-footer--rich .sc-footer-copyright > :last-child { flex-shrink: 0; }
.sc-site-footer--rich .sc-footer-contact a { margin: 0; color: #ffffffbf; text-decoration: none; }
.sc-site-footer--rich .sc-footer-copyright a:hover { color: #fff; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.sc-post-grid { width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter))); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.sc-post-card { border: 1px solid var(--sc-line); border-radius: 14px; overflow: hidden; background: white; box-shadow: var(--sc-shadow); }
.sc-post-card img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.sc-post-card__content { padding: 28px; }
.sc-post-card h2 { font-size: 28px; }
.sc-post-card h2 a { color: var(--sc-heading); text-decoration: none; }
.sc-post-card p { font-size: 16px; }
.sc-single .entry-content { padding-bottom: 48px; }
.navigation.pagination { width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter))); margin: 48px auto; }

/* Three breakpoints: phone 700, tablet 1100, desktop. */
@media (max-width: 1024px) {
  .sc-nav-shell { gap: 8px; padding-inline: 18px; }
  .sc-brand { max-width: 58%; }
  .sc-site-nav { width: 100%; }
  .sc-nav-shell { flex-wrap: wrap; }
  .sc-menu { flex-wrap: wrap; padding: 12px 0; }
  .sc-menu ul { position: static; display: block; border: 0; box-shadow: none; padding: 0 0 0 14px; background: transparent; min-width: 0; }
  .sc-menu > li { width: 100%; }
  .sc-menu a { font-size: 17px; padding-block: 8px; white-space: normal; }
  /* The open sheet lists every submenu, so there is nothing to point at. */
  .sc-menu .menu-item-has-children > a::after, .sc-menu .page_item_has_children > a::after { display: none; }
  .sc-menu-icon { width: 18px; height: 18px; color: var(--sc-menu-icon-accent, var(--sc-accent)); }
  .sc-menu ul .sc-menu-icon { width: 15px; height: 15px; opacity: 1; }
  /* sc-js is set in the head (functions.php), so the first paint already has the closed menu. */
  :is(.sc-js, .sc-nav-ready) .sc-nav-toggle { display: inline-flex; }
  :is(.sc-js, .sc-nav-ready) .sc-site-nav { display: none; }
  :is(.sc-js, .sc-nav-ready) .sc-nav-shell[data-open] { border-radius: 28px; }
  :is(.sc-js, .sc-nav-ready) .sc-nav-shell[data-open] .sc-site-nav { display: block; max-height: calc(100dvh - 120px); overflow-y: auto; }
  .sc-split__content { padding: 36px; margin-left: -50px; }
  .sc-split--right .sc-split__content { margin-right: -50px; }
  .sc-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sc-site-footer--rich .sc-footer-inner { grid-template-columns: minmax(0, 1fr); }
  .sc-site-footer--rich .sc-footer-side { padding-top: 0; }
  .sc-site-footer--rich .sc-footer-menu { gap: 14px 28px; }
  .sc-site-footer--rich .sc-footer-copyright { flex-direction: column; text-align: center; }
}
@media (max-width: 640px) {
  :root { --sc-gutter: 20px; }
  body.sc-managed-site { font-size: 17px; }
  .sc-site-header { top: 8px; }
  .admin-bar .sc-site-header { top: 54px; }
  .sc-nav-shell { min-height: 56px; padding: 4px 12px; }
  .sc-brand img { width: min(calc(var(--sc-logo-width, 200px) * .84), 168px); }
  .sc-brand a { font-size: 21px; }
  .sc-hero { min-height: 570px; height: 80svh; }
  .sc-hero--starter { min-height: 600px; height: 100svh; }
  .sc-hero__content { padding-bottom: 100px; }
  .sc-hero__content :is(h1, h2):where(:not(h2), .sc-auto-page-heading) { font-size: clamp(36px, 9vw, 48px); }
  .sc-hero__controls { right: 20px; bottom: 20px; }
  .sc-split { margin-block: 64px 80px; }
  .sc-split__inner { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .sc-split__image, .sc-split--right .sc-split__image { grid-row: 1; grid-column: 1; margin-top: 24px; }
  .sc-split__image::before, .sc-split--right .sc-split__image::before { inset: -24px -12px 24px; border-radius: 14px; }
  .sc-split__content, .sc-split--right .sc-split__content { grid-row: 2; grid-column: 1; margin: -24px 12px 0; padding: 28px 24px; border-radius: 10px; }
  .sc-split__content h2 { font-size: 30px; }
  .sc-gallery { margin-block: 56px; }
  .sc-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .sc-footer-inner { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 48px; }
  .sc-footer-copyright { grid-column: 1; }
  .sc-site-footer--rich .sc-footer-inner { grid-template-columns: minmax(0, 1fr); gap: 48px; padding-top: 48px; text-align: center; }
  .sc-site-footer--rich :is(.sc-footer-about, .sc-footer-side) { align-items: center; }
  .sc-site-footer--rich .sc-footer-id { flex-direction: column; gap: 12px; }
  .sc-site-footer--rich :is(.sc-footer-menu, .sc-footer-badges) { justify-content: center; }
  .sc-site-footer--rich .sc-footer-menu { gap: 14px 28px; }
  .sc-site-footer { margin-top: 64px; }
  .sc-post-grid { grid-template-columns: minmax(0, 1fr); }
  :is(.sc-page-heading, .sc-page > .entry-content:first-child > h1:first-child) { padding-top: 124px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  .sc-split__image, .sc-split__content, .sc-split__image::before { transform: none !important; opacity: 1 !important; }
}

/* Without JavaScript, expose native navigation in a normal rounded panel. */
@media (max-width: 1024px) {
  html:not(.sc-js) body:not(.sc-nav-ready) .sc-site-header { position: relative; top: 0; margin: 8px auto; }
  html:not(.sc-js) body:not(.sc-nav-ready) .sc-nav-shell { border-radius: 24px; }
}
/* The phone menu eases open and closed, to its real height. Closed is still display: none, so the first paint has
   nothing to flash, and a link in it works at once. A browser without discrete transitions just opens it.
   The 8px row gap and the menu's padding sit inside the moving part, so the panel starts and ends at no height.
   32px is the same pill as 999px on a closed bar of 64px or less, and stays a rounded panel while it closes. */
@media (max-width: 1024px) and (prefers-reduced-motion: no-preference) {
  :is(.sc-js, .sc-nav-ready) .sc-nav-shell { row-gap: 0; border-radius: 32px; transition: border-radius .4s cubic-bezier(.45, 0, .25, 1); }
  :is(.sc-js, .sc-nav-ready) .sc-site-nav { max-height: calc(100dvh - 120px); grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .4s cubic-bezier(.45, 0, .25, 1), opacity .3s ease, display .4s allow-discrete; }
  :is(.sc-js, .sc-nav-ready) .sc-nav-shell[data-open] .sc-site-nav { display: grid; grid-template-rows: 1fr; opacity: 1; overflow: hidden; }
  :is(.sc-js, .sc-nav-ready) .sc-site-nav > * { min-height: 0; overflow: hidden; padding-block: 0; transition: padding-block .4s cubic-bezier(.45, 0, .25, 1); }
  :is(.sc-js, .sc-nav-ready) .sc-nav-shell[data-open] .sc-site-nav > * { overflow-y: auto; padding-block: 20px 12px; }
  @starting-style {
    :is(.sc-js, .sc-nav-ready) .sc-nav-shell[data-open] .sc-site-nav { grid-template-rows: 0fr; opacity: 0; }
    :is(.sc-js, .sc-nav-ready) .sc-nav-shell[data-open] .sc-site-nav > * { padding-block: 0; }
  }
}
@media print {
  .sc-hide-print { display: none !important; }
}
