/* Studio: Editorial plus photo cards, price lists, open Q&A, review cards, Instagram tiles and a dark mode
   that follows the visitor. Loaded last (inc/looks.php), so it sits over the blog and motion sheets. */

/* Colours the cards and forms here read. */
:root {
  --kit-primary: #2f343b;
  --kit-on-primary: #fff;
  --kit-page: #fcfcfc;
  --kit-paper: #fff;
  --kit-soft: #fdf6ee;
  --kit-ink: #3a3a3a;
  --kit-faint: #6b6b6b;
  --kit-line: #e6e1dc;
  --kit-focus: #06c;
  --sc-field-line: #8c8278;
  --font-sans: var(--sc-sans);
  /* The sunset-orange hero button of the live site. */
  --sc-hero-button: #b35900;
  --sc-hero-button-hover: #934600;
  --sc-hero-button-shadow: #b3590059;
  /* Menu icons take the same sunset on hover and in the open sheet. */
  --sc-menu-icon-accent: #b35900;
}
/* Arrows on the hero's "Learn more" (down to the categories) and on contact buttons. */
.sc-managed-site .entry-content .wp-block-button__link:is([href^="#"], [href$="/contact/"])::after { content: ""; flex-shrink: 0; width: .8em; height: .8em; background: currentColor; -webkit-mask: var(--sc-arrow-right) center / contain no-repeat; mask: var(--sc-arrow-right) center / contain no-repeat; }
.sc-managed-site .entry-content .wp-block-button__link[href^="#"]::after { -webkit-mask-image: var(--sc-arrow-down); mask-image: var(--sc-arrow-down); }
/* The live home keeps its four category photos in one row on tablets. */
@media (min-width: 641px) and (max-width: 1024px) {
  .sc-managed-site .entry-content .wp-block-columns.is-style-sc-category-links.sc-two-up-tablet { flex-wrap: nowrap !important; gap: 40px 16px; }
  .sc-managed-site .entry-content .wp-block-columns.is-style-sc-category-links.sc-two-up-tablet > .wp-block-column { flex-basis: 0 !important; flex-grow: 1; }
}
/* The live site's phone body size. */
@media (max-width: 640px) {
  body.sc-managed-site { font-size: 16px; }
}

/* Pages laid out like the live site (RyanSmithPhotography-Site page chrome).
   The title card (page.php, shootcal_page_chrome) carries a page's opening text. */
.sc-page > .sc-title-card-wrap { margin-bottom: 40px; }
.sc-managed-site .sc-title-card__lead { max-width: 780px; color: var(--sc-text); font-size: inherit; }
.sc-title-card__lead > * { margin-block: 0 16px; }
.sc-title-card__lead .wp-block-buttons { justify-content: center; margin-top: 24px; }
/* A full-width section that opens a page with its own H1 is that title card. */
.sc-page .entry-content > .is-style-sc-boxed-full:first-child:has(> h1) { width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter))); margin: 24px auto 40px; padding: 56px; border-radius: 32px; background: linear-gradient(110deg, var(--sc-paper) 0%, var(--sc-blog-card-tint) 100%); box-shadow: 0 0 0 1px var(--sc-line), var(--sc-shadow); text-align: center; }
.sc-page .entry-content > .is-style-sc-boxed-full:first-child:has(> h1) > * { max-width: 780px; }
/* A boxed section at the top level is a white card. */
/* Ryan, 2026-11-05: live's 1100px card, with the text filling it at 940px (no empty band on the
   right) and a little more room above the heading. */
.sc-page .entry-content > .is-style-sc-boxed { width: min(1100px, calc(100% - 2 * var(--sc-gutter))); margin-block: 24px; padding: 72px 80px 48px; border-radius: 22px; background: var(--sc-paper); box-shadow: 0 0 0 1px var(--sc-line), 0 1px 2px #2f2a240a, 0 18px 44px #2f2a2414; }
.sc-page .entry-content > .is-style-sc-boxed > :not(.sc-narrow) { max-width: none; }
.sc-page .entry-content > .is-style-sc-boxed > :is(:not(p, h1, h2, h3, h4, ul, ol), .wp-block-latest-posts) { max-width: none; }
.sc-page .entry-content > :is(.is-style-sc-boxed, .is-style-sc-boxed-full:first-child) > h1 { margin-bottom: 32px; font-size: clamp(36px, 2.4vw + 16px, 56px); line-height: 1.08; text-align: center; }
.sc-page .entry-content > :is(.is-style-sc-boxed, .is-style-sc-boxed-full:first-child) > h1::after { content: ""; display: block; width: 56px; height: 1px; margin: 24px auto 0; background: var(--sc-accent); }
/* A section title opens a full-width section centred over the accent hairline. */
.sc-page .entry-content > .is-style-sc-boxed-full > h2:first-child { text-align: center; }
.sc-page .entry-content > .is-style-sc-boxed-full > h2:first-child::after { content: ""; display: block; width: 56px; height: 1px; margin: 22px auto 0; background: var(--sc-accent); }
/* A tinted box right after a full-width section joins its wash (live: no box). */
.sc-page .entry-content > .is-style-sc-boxed-full:has(+ .is-style-sc-tinted) { padding-bottom: 0; }
.sc-page .entry-content > .is-style-sc-boxed-full + .is-style-sc-tinted { max-width: none; margin-block: 0; padding: 48px 0 96px; border-radius: 0; background: #fdf6ee; box-shadow: 0 0 0 100vmax #fdf6ee; clip-path: inset(0 -100vmax); }
/* Latest posts: photo cards with serif titles. */
.sc-page .wp-block-latest-posts.is-grid { gap: 24px; margin-block: 24px; padding: 0; }
.sc-page .wp-block-latest-posts.is-grid li { margin: 0; }
/* As on live: the photo fills its rounded card (no inline-link strip or underline below it) and the
   title sits 16px under it. Specific enough to beat core's .aligncenter margin. */
.sc-page .wp-block-latest-posts li > .wp-block-latest-posts__featured-image { margin: 0 0 16px; overflow: hidden; border-radius: 12px; box-shadow: var(--sc-shadow); }
.sc-page .wp-block-latest-posts__featured-image > a { display: block; padding: 0; background: none; }
.sc-page .wp-block-latest-posts__featured-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .7s var(--sc-ease); }
.sc-page .wp-block-latest-posts li:hover .wp-block-latest-posts__featured-image img { transform: scale(1.04); }
.sc-page a.wp-block-latest-posts__post-title { display: block; color: var(--sc-heading); font: 400 21px/1.375 var(--sc-serif); text-decoration: none; }
.sc-page a.wp-block-latest-posts__post-title:hover { text-decoration: underline; text-underline-offset: 3px; }
/* Page heroes keep the live height (the short variant too). */
@media (min-width: 1025px) {
  :is(.entry-content, .editor-styles-wrapper) .is-style-sc-page-hero.sc-hero-short { min-height: max(600px, 80svh); }
}
/* The reviews form trigger is the charcoal button; the older plain link beside it goes. */
.sc-page .entry-content p:has(> a[href="#review-form-dialog"]:only-child):has(+ .sct-form-trigger-wrap) { display: none; }
.sc-page .entry-content .sct-form-trigger-wrap { text-align: center; }
.sc-managed-site .sc-page .entry-content a.sct-form-trigger { display: inline-flex; min-height: 48px; align-items: center; padding: 10px 22px; border: 0; border-radius: 999px; background: var(--sc-button) !important; color: #fff !important; font-size: 16px; font-weight: 650; text-decoration: none; box-shadow: 0 6px 16px #2f343b26; }
.sc-managed-site .sc-page .entry-content a.sct-form-trigger:hover { background: var(--sc-button-hover) !important; color: #fff !important; }
@media (max-width: 1024px) {
  .sc-page .entry-content > .is-style-sc-boxed { padding: 56px 40px 40px; }
  .sc-page .wp-block-latest-posts.is-grid { gap: 20px 16px; }
}
@media (max-width: 640px) {
  .sc-page .entry-content > .is-style-sc-boxed { padding: 36px 20px 28px; border-radius: 18px; }
  /* Phones: the opening title section sits flat on the page, like the live site. */
  .sc-page .entry-content > :is(.is-style-sc-boxed, .is-style-sc-boxed-full):first-child:has(> h1) { padding: 40px 0 24px; border-radius: 0; background: none; box-shadow: none; }
  .sc-page .wp-block-latest-posts.is-grid { grid-template-columns: minmax(0, 1fr); }
}
/* The reviews box as on the live static site (blocks.jsx box section): px-12 / px-8 around the
   review grid, and on phones the box opens up so the review (and price) cards get the full width. */
.sc-page .entry-content > .is-style-sc-boxed:has(> :is(.wp-block-shootcal-testimonials, .is-style-sc-price-table)) { padding-inline: 48px; }
@media (max-width: 1024px) {
  .sc-page .entry-content > .is-style-sc-boxed:has(> :is(.wp-block-shootcal-testimonials, .is-style-sc-price-table)) { padding-inline: 32px; }
}
@media (max-width: 640px) {
  .sc-page .entry-content > .is-style-sc-boxed:has(> :is(.wp-block-shootcal-testimonials, .is-style-sc-price-table)) { padding: 16px 0; border-radius: 0; background: none; box-shadow: none; }
}
/* Imported logos marked "thumbnail" show at the live site's 300px. */
.sc-page .entry-content .wp-block-image.size-thumbnail img { width: min(300px, 100%); height: auto; border-radius: 12px; box-shadow: 0 10px 30px -12px #0000004d; }
/* A small left/right image (the Sony lens) floats at live's 200px and the text wraps beside it.
   An explicit width stops the float growing to the photo's natural size. Phones: right-aligned, no wrap. */
.sc-page .entry-content .wp-block-image.size-thumbnail:is(.alignright, .alignleft) { width: min(200px, 42%); margin-block: 6px 16px; }
.sc-page .entry-content .wp-block-image.size-thumbnail.alignright { float: right; margin-inline: 28px 0; }
.sc-page .entry-content .wp-block-image.size-thumbnail.alignleft { float: left; margin-inline: 0 28px; }
.sc-page .entry-content .wp-block-image.size-thumbnail:is(.alignright, .alignleft) img { width: 100%; }
@media (max-width: 640px) {
  .sc-page .entry-content .wp-block-image.size-thumbnail:is(.alignright, .alignleft) { float: none; width: 200px; max-width: 100%; margin: 0 0 24px auto; }
  .sc-page .entry-content .wp-block-image.size-thumbnail.alignleft { margin: 0 auto 24px 0; }
}
/* A hero's second-line h2 reads as a sans subtitle, as on the live pages. */
.sc-managed-site .entry-content .is-style-sc-glass-card h2.sc-headline-sub { margin-top: 12px; font: 400 19px/1.3 var(--sc-sans); letter-spacing: normal; color: color-mix(in srgb, var(--sc-text) 80%, transparent); }
@media (max-width: 767px) {
  .sc-managed-site .entry-content .is-style-sc-glass-card h2.sc-headline-sub { font-size: 17px; }
}

/* The feature rows' highlight panel (white at 70%, #303030
   in dark mode). core-layouts.css draws it in the photo's column and navigation.js grows it out
   from its outer edge as the row scrolls up the screen. */
:root { --sc-photo-band-highlight: rgb(255 255 255 / .7); }

/* Live's blog post text measure (RyanSmithPhotography-Site blog.jsx MEASURE). */
.single-post { --sc-reading: 760px; }

/* Dark mode, as on the live site: inc/look-features.php marks <html class="dark"> when the visitor's system
   prefers dark, before the page draws. Live's dark tokens (RyanSmithPhotography-Site site.css .dark),
   then the Editorial surfaces that are drawn in white. */
html.dark {
  color-scheme: dark;
  --kit-primary: #ece6df;
  --kit-on-primary: #161616;
  --kit-page: #121212;
  --kit-paper: #242424;
  --kit-soft: #1e1e1e;
  --kit-ink: #ededed;
  --kit-faint: #a9a9a9;
  --kit-line: #454545;
  --kit-focus: #b6d0fa;
  --sc-bg: #121212;
  --sc-paper: #242424;
  --sc-card-bg: #242424;
  --sc-text: #ededed;
  --sc-heading: #f5f5f5;
  --sc-muted: #a9a9a9;
  --sc-link: #f5f5f5;
  --sc-line: #454545;
  --sc-band: #1e1e1e;
  --sc-glass: rgb(36 36 36 / .8);
  --sc-shadow: 0 1px 2px #0003, 0 10px 30px #00000040;
  --sc-blog-card-tint: #2a241e66;
  --sc-blog-soft: #1e1e1e;
  --sc-blog-current: #2a241eb3;
  --sc-blog-current-line: #4a3a28;
  --sc-blog-button: #ece6df;
  --sc-blog-button-ink: #161616;
  --sc-boxed-full-bg: #1e1e1e;
  --sc-ed-line: #a8743f66;
  --sc-button: #ece6df;
  --sc-button-ink: #161616;
  --sc-button-hover: #fff;
  --sc-photo-band-highlight: #303030;
}
html.dark .sc-brand img { filter: invert(1) hue-rotate(180deg); }
html.dark .sc-nav-shell { border-color: rgb(255 255 255 / .2); background: rgb(36 36 36 / .8); }
html.dark .sc-menu a:hover, html.dark .sc-menu a[aria-current="page"] { background: rgb(255 255 255 / .06); }
html.dark .sc-menu ul { background: rgb(36 36 36 / .96); }
html.dark .sc-skip-link { background: #242424; }
html.dark .sc-hero:not(.sc-hero--starter) .sc-hero__content,
html.dark :is(.entry-content, .editor-styles-wrapper) .is-style-sc-glass-card { border-color: rgb(255 255 255 / .2); background: rgb(48 48 48 / .65); }
html.dark :is(.entry-content, .editor-styles-wrapper) .is-style-sc-glass-card .sc-lead { color: rgb(237 237 237 / .85); }
html.dark :is(.entry-content, .editor-styles-wrapper) .is-style-sc-glass-card .sc-headline-sub { color: rgb(237 237 237 / .8); }
html.dark .sc-split__content { border-color: rgb(255 255 255 / .12); background: linear-gradient(to left, rgb(36 36 36 / .92) 0 62%, rgb(36 36 36 / .4)); box-shadow: 0 18px 44px #00000040; }
html.dark .sc-split--right .sc-split__content { background: linear-gradient(to right, rgb(36 36 36 / .92) 0 62%, rgb(36 36 36 / .4)); }
html.dark .sc-page .entry-content .is-style-sc-photo-band .wp-block-columns:has(> .wp-block-column .is-style-sc-feature-photo) > .wp-block-column:not(:has(.is-style-sc-feature-photo)) { background: linear-gradient(to var(--sc-ed-to), rgb(36 36 36 / .92) 0 62%, rgb(36 36 36 / .4) 100%); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08), 0 1px 2px #0003, 0 18px 44px #00000040; }
html.dark .sc-page .entry-content > .is-style-sc-boxed { box-shadow: 0 0 0 1px var(--sc-line), 0 1px 2px #0003, 0 18px 44px #00000040; }
html.dark .sc-page .entry-content > .is-style-sc-boxed-full + .is-style-sc-tinted { background: #1e1e1e; box-shadow: 0 0 0 100vmax #1e1e1e; }
html.dark .sc-managed-site .sc-page .entry-content a.sct-form-trigger,
html.dark .sc-managed-site .sc-page .entry-content a.sct-form-trigger:hover { color: #161616 !important; box-shadow: none; }
@media (max-width: 640px) {
  html.dark .sc-page .entry-content .is-style-sc-photo-band .wp-block-columns:has(> .wp-block-column .is-style-sc-feature-photo) > .wp-block-column:not(:has(.is-style-sc-feature-photo)) { background: rgb(36 36 36 / .92); }
  html.dark .sc-split__content, html.dark .sc-split--right .sc-split__content { background: rgb(36 36 36 / .94); }
}

html.dark .sc-nav-contact, html.dark .sc-nav-toggle { background: rgb(237 237 237 / .06); color: var(--sc-text); }
html.dark .sc-nav-contact:hover, html.dark .sc-nav-toggle:hover { background: rgb(237 237 237 / .1); }

/* Instagram feed (ShootCal Social Feed) as on live: soft rounded tiles, 12px gaps, 48px pills,
   the left-to-right Instagram gradient. Specificity beats the plugin's lazily loaded feed.css. */
.sc-managed-site .shootcal-instagram-feed-shell {
  --scif-tile-background: var(--kit-soft);
  --scif-tile-border: 0;
  --scif-tile-radius: 12px;
  --scif-button-font: 600 16px/1.65 var(--sc-sans);
  --scif-follow-background: linear-gradient(to right, #833ab4, #e1306c 50%, #f77737);
  --sc-quiet-line: #c9c3bd;
  --sc-quiet-hover: #f4efe9;
}
html.dark .sc-managed-site .shootcal-instagram-feed-shell { --sc-quiet-line: #686868; --sc-quiet-hover: #303030; }
.sc-managed-site .shootcal-instagram-feed { gap: 12px; }
/* The theme's img { height: auto } must not pull a landscape photo to the top of its tile. */
.sc-managed-site .shootcal-instagram-feed__item > .shootcal-instagram-feed__image { width: 100%; height: 100%; }
.sc-managed-site .shootcal-instagram-feed-shell .shootcal-instagram-feed__more-button,
.sc-managed-site .shootcal-instagram-feed-shell .shootcal-instagram-feed__follow-link { min-height: 48px; letter-spacing: normal; }
.sc-managed-site .shootcal-instagram-feed-shell .shootcal-instagram-feed__more-button { border-color: var(--sc-quiet-line); background-color: var(--kit-paper); color: var(--sc-text); }
.sc-managed-site .shootcal-instagram-feed-shell .shootcal-instagram-feed__more-button:hover { border-color: var(--sc-quiet-line); background-color: var(--sc-quiet-hover); }
.sc-managed-site .shootcal-instagram-feed-shell .shootcal-instagram-feed__follow-link { box-shadow: 0 6px 16px #2f343b26; }
html.dark .sc-managed-site .shootcal-instagram-feed-shell .shootcal-instagram-feed__follow-link { box-shadow: none; }
@media (max-width: 640px) { .sc-managed-site .shootcal-instagram-feed { gap: 8px; } }
/* Imported pages can carry the old site's spacing tokens (mts/mtl -> sc-mt-s/-l) on ten
   headings. Live www ignores them: a heading after body content gets the normal heading room
   (h2 56px, h3/h4 36px; 44/30 on phones), never 24px or 112px. Headings first in their box or
   right under another heading keep the token. Studio only; other looks keep the editor presets. */
.sc-managed-site .entry-content h2[class*="sc-mt-"]:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *) { margin-top: 56px !important; }
.sc-managed-site .entry-content :is(h3, h4)[class*="sc-mt-"]:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *) { margin-top: 36px !important; }
@media (max-width: 640px) {
  .sc-managed-site .entry-content h2[class*="sc-mt-"]:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *) { margin-top: 44px !important; }
  .sc-managed-site .entry-content :is(h3, h4)[class*="sc-mt-"]:not(:first-child):not(:is(h1, h2, h3, h4, h5, h6) + *) { margin-top: 30px !important; }
}
/* Card grids. Older GenerateBlocks grids are imported as core Columns with no widths and no
   style class, and core keeps every column on one row above 782px (23 venue columns 12px wide).
   Live shows them as a wrapping grid: 3 across on desktop, 2 on tablets, 1 on phones, short rows
   left-aligned, up to the wide measure. Matched by shape (columns holding a card group, or a
   photo with its title), so classed Columns (category links, price tables, photo bands, stacked
   splits), sized columns and photo-only rows keep their own layouts. A section can ask for a
   different count with --sc-grid-cols (desktop) and --sc-grid-cols-tablet. */
.sc-managed-site .entry-content .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) {
  display: grid; grid-template-columns: repeat(var(--sc-grid-cols, 3), minmax(0, 1fr)); gap: 40px 24px;
  max-width: var(--sc-wide); margin-inline: auto;
}
.sc-managed-site .entry-content .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) > .wp-block-column { min-width: 0; margin: 0; }
/* The section around a card grid widens with it; its heading and text keep the reading measure. */
.sc-managed-site .entry-content .wp-block-group:not(.sc-items-center):has(> .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center) > .wp-block-column:not([style*="flex-basis"]) > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) { max-width: var(--sc-wide); }
.sc-managed-site .entry-content > :is(.is-style-sc-location-cards, .is-style-sc-location-cards-boxed):has(.wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center) > .wp-block-column:not([style*="flex-basis"]) > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) { max-width: var(--sc-wide); }
/* Card titles read as titles, like live: the serif at card size in ink, not a gold underlined link. */
.sc-managed-site .entry-content :not(.sc-items-center) > .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) .wp-block-heading { font-size: clamp(22px, .5vw + 17px, 26px); line-height: 1.2; letter-spacing: .005em; margin: 36px 0 20px; }
@media (max-width: 640px) { .sc-managed-site .entry-content :not(.sc-items-center) > .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) .wp-block-heading { margin-top: 30px; } }
.sc-managed-site .entry-content :not(.sc-items-center) > .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) .wp-block-heading a { color: inherit; text-decoration: none; }
.sc-managed-site .entry-content :not(.sc-items-center) > .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) .wp-block-heading a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sc-managed-site .entry-content .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) .wp-block-image { margin: 0; }
.sc-managed-site .entry-content .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) .wp-block-image img { width: 100%; height: auto; }
.sc-managed-site .entry-content .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) .wp-block-column > .wp-block-group > * { max-width: none; }
@media (max-width: 1024px) {
  .sc-managed-site .entry-content .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) { grid-template-columns: repeat(var(--sc-grid-cols-tablet, 2), minmax(0, 1fr)); gap: 32px 24px; }
}
@media (max-width: 640px) {
  .sc-managed-site .entry-content .wp-block-columns:not([class*="is-style-"], [class*="sc-"], .are-vertically-aligned-center):not(:has(> .wp-block-column[style*="flex-basis"])):has(> .wp-block-column > :is(.wp-block-group, .wp-block-image + .wp-block-heading)) { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
/* Live keeps photo-and-name grids (vendors) 3 across on tablets; cards with a description
   (venues) drop to 2 there. */
.sc-managed-site .entry-content .wp-block-columns:not(:has(> .wp-block-column > .wp-block-group > p, > .wp-block-column > p)) { --sc-grid-cols-tablet: 3; }
/* Contact (and the wedding-story page): live's About section is the photo and the text side by
   side, with Office Location as a full-width row under them, as wide as the card like the
   calendar above it. */
.sc-managed-site .entry-content .sc-items-center:has(> .wp-block-columns) { max-width: none; }
.sc-managed-site .entry-content .sc-items-center > .wp-block-columns { --sc-grid-cols: 2; --sc-grid-cols-tablet: 1; max-width: none; column-gap: 48px; }
.sc-managed-site .entry-content .sc-items-center > .wp-block-columns > .wp-block-column > .wp-block-group > * { max-width: none; }
.sc-managed-site .entry-content .sc-items-center > .wp-block-columns > .wp-block-column:nth-child(3):last-child { grid-column: 1 / -1; }
.sc-managed-site .entry-content .sc-items-center > .wp-block-columns > .wp-block-column:nth-child(3):last-child > .wp-block-group > p { max-width: var(--wp--style--global--content-size) !important; margin-inline: auto; }
.sc-managed-site .entry-content .sc-items-center > .wp-block-columns > .wp-block-column:first-child figure { display: block; margin-inline: 0; }
.sc-managed-site .entry-content .sc-items-center > .wp-block-columns > .wp-block-column:first-child figcaption { display: block; }
.sc-managed-site .entry-content .sc-items-center > .wp-block-columns > .wp-block-column:first-child img { width: 100%; height: auto; border-radius: 10px; }
@media (max-width: 1024px) { .sc-managed-site .entry-content .sc-items-center > .wp-block-columns > .wp-block-column:first-child figure { max-width: 560px; margin-inline: auto; text-align: center; } }
/* Dividers: a faded hairline with room around it, as on live, not a 2px bar. */
.sc-managed-site .entry-content hr.wp-block-separator:not(.is-style-dots) { border: 0; border-top: 1px solid currentColor; height: 0; opacity: .18; margin-block: 48px; }

/* A category's intro, as live: a subtitle, the venue photo with its caption, then the text. */
.sc-managed-site .sc-title-card__intro :is(h2, h3) { margin: 0; color: var(--sc-heading); font-size: clamp(20px, .6vw + 15px, 25px); line-height: 1.3; text-wrap: balance; }
.sc-managed-site .sc-title-card__intro h4 { margin: 0; color: var(--sc-heading); font-family: inherit; font-size: 15.5px; font-weight: 600; letter-spacing: .02em; }
.sc-managed-site .sc-title-card__intro :where(p, ul, ol) { margin: 0; }
.sc-managed-site .sc-title-card__intro > * + * { margin-top: 18px; }
.sc-managed-site .sc-title-card__intro > .wp-caption { width: auto !important; max-width: 100%; margin: 26px 0; }
.sc-managed-site .sc-title-card__intro .wp-caption a { display: block; overflow: hidden; border-radius: 18px; background: var(--sc-blog-soft); }
.sc-managed-site .sc-title-card__intro .wp-caption img { display: block; width: 100%; height: auto; margin: 0; border-radius: 18px; }
.sc-managed-site .sc-title-card__intro .wp-caption .wp-caption-text { margin-top: 12px; padding: 0; font-size: 14.5px; line-height: 1.45; opacity: .85; text-align: center; text-wrap: balance; }
.sc-managed-site .sc-title-card__intro hr { height: 0; margin: 26px 0; border: 0; border-top: 1px solid var(--sc-line); background: none; }
.sc-managed-site .sc-title-card__intro :is(ul, ol) { display: table; margin-inline: auto; padding-left: 1.2em; text-align: left; }
.sc-managed-site .sc-title-card__intro li + li { margin-top: 6px; }
.sc-managed-site .sc-title-card__intro a.button { display: inline-flex; align-items: center; min-height: 44px; margin: 4px; padding: 0 20px; border: 1px solid var(--sc-line); border-radius: 999px; background: var(--sc-paper); color: var(--sc-heading); font-size: 15px; text-decoration: none; }
.sc-managed-site .sc-title-card__intro a.button:hover { border-color: currentColor; }

/* Review cards (ShootCal Testimonials) as on the live static site (RyanSmithPhotography-Site
   src/testimonials.jsx): category pills, a hairline card with a 3:2 photo, a sand rule beside
   the quote, the name in Gilda, a sand category chip and pill buttons. The plugin keeps its
   cards light with !important, so these answer in kind; they follow the site's dark mode. */
.sc-managed-site {
  --sc-sand: #fbeedf;
  --sc-sand-strong: #fad6a5;
  --sc-sand-ink: #5a4630;
  --sc-quiet-line: #c9c3bd;
  --sc-quiet-hover: #f4efe9;
  --sc-review-card: #fff;
  --sc-review-ring: #e6e1dc;
}
html.dark .sc-managed-site {
  --sc-sand: #2a241e;
  --sc-sand-strong: #4a3a28;
  --sc-sand-ink: #f0dcc4;
  --sc-quiet-line: #686868;
  --sc-quiet-hover: #303030;
  --sc-review-card: #24211f;
  --sc-review-ring: rgb(255 255 255 / .15);
}
.sc-managed-site .sct-testimonials { --sct-gap: 24px; --sct-quote-lh: 1.625; --sct-lines: 5; }
.sc-managed-site .sct-filter--pills { flex-direction: column; gap: 12px; margin: 0 0 32px; }
.sc-managed-site .sct-filter--pills > span { flex-basis: auto; color: var(--kit-faint); font-size: 15px; font-weight: 400; }
.sc-managed-site .sct-filter--pills .sct-filter__options { position: static; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-height: none; padding: 0; overflow: visible; border: 0; background: none !important; box-shadow: none; }
.sc-managed-site .sct-filter--pills .sct-filter__options a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--kit-line); border-radius: 999px; background: var(--kit-paper) !important; color: var(--sc-text) !important; font-size: 15px; line-height: 1.3; transition: background-color .2s; }
.sc-managed-site .sct-filter--pills .sct-filter__options a:not([aria-current]):hover { background: var(--sc-sand) !important; }
.sc-managed-site .sct-filter--pills .sct-filter__options a[aria-current="page"] { border-color: var(--sc-button); background: var(--sc-button) !important; color: var(--kit-on-primary) !important; }
.sc-managed-site .sct-testimonials .sct-testimonial { border: 0; border-radius: 14px; background: var(--sc-review-card) !important; color: var(--sc-text) !important; color-scheme: inherit; box-shadow: 0 0 0 1px var(--sc-review-ring), 0 1px 2px #2f2a240a, 0 10px 30px #2f2a2412; }
html.dark .sc-managed-site .sct-testimonials .sct-testimonial { box-shadow: 0 0 0 1px var(--sc-review-ring), 0 1px 2px #0003, 0 10px 30px #00000040; }
.sc-managed-site .sct-testimonials.sct-js .sct-testimonial[data-sct-card]:hover { transform: none; }
.sc-managed-site .sct-testimonials .sct-testimonial__media { aspect-ratio: 3 / 2; background: none; }
.sc-managed-site .sct-testimonials .sct-testimonial .sct-testimonial__media img { transition: transform .5s; }
.sc-managed-site .sct-testimonials .sct-testimonial:hover .sct-testimonial__media img { transform: scale(1.03) !important; }
.sc-managed-site .sct-testimonials .sct-testimonial__body { gap: 16px; padding: 24px; }
.sc-managed-site .sct-testimonials .sct-testimonial__quote { padding-left: 16px; border-left: 2px solid var(--sc-sand-strong); color: var(--sc-text) !important; font-size: 17px; }
.sc-managed-site .sct-testimonials .sct-testimonial__by { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.sc-managed-site .sct-testimonials .sct-testimonial__name { color: var(--sc-heading) !important; font-family: var(--sc-serif); font-size: 22px; font-weight: 400; line-height: 1.25; letter-spacing: 0; }
.sc-managed-site .sct-testimonials .sct-testimonial__date { color: var(--kit-faint) !important; font-size: 14px; text-align: left; }
.sc-managed-site .sct-testimonials .sct-testimonial__categories { gap: 8px; }
.sc-managed-site .sct-testimonials .sct-category { gap: 6px; padding: 4px 12px; border-radius: 999px; background: var(--sc-sand); color: var(--sc-sand-ink); font-size: 14px; line-height: 1.6; }
.sc-managed-site .sct-testimonials .sct-category__icon,
.sc-managed-site .sct-testimonials .sct-category__icon > svg { width: 1em !important; height: 1em !important; flex-basis: 1em; }
.sc-managed-site .sct-testimonials .sct-source { padding: 0; border: 0; color: var(--kit-faint) !important; font-size: 14px !important; line-height: 1.6; }
.sc-managed-site .sct-testimonials .sct-source__link { color: var(--kit-faint) !important; }
.sc-managed-site .sct-testimonials .sct-source__label { min-height: 0; }
.sc-managed-site .sct-testimonials .sct-source__mark { width: 18px !important; height: 18px !important; flex: 0 0 18px; margin: 0 8px 0 0 !important; }
.sc-managed-site .sct-testimonials.sct-js .sct-testimonial__open { display: inline-flex; align-items: center; justify-content: center; align-self: flex-start; width: auto; min-height: 44px; margin: 0 24px 24px; padding: 0 20px; border: 1px solid var(--sc-quiet-line); border-radius: 999px; background: transparent !important; color: var(--sc-text) !important; font-size: 15px; font-weight: 600; }
.sc-managed-site .sct-testimonials.sct-js .sct-testimonial__open:hover { background: var(--sc-quiet-hover) !important; }
.sc-managed-site .sct-testimonials .sct-testimonials__more { margin-top: 32px; }
.sc-managed-site .sct-testimonials .sct-more { display: inline-flex; align-items: center; min-height: 48px; padding: 0 28px; border: 0; background: var(--sc-button) !important; color: var(--kit-on-primary) !important; font-size: 16px; font-weight: 600; box-shadow: 0 6px 16px #2f343b26; }
.sc-managed-site .sct-testimonials .sct-more:hover { background: var(--sc-button-hover) !important; transform: none; }
html.dark .sc-managed-site .sct-testimonials .sct-more { box-shadow: none; }
html.dark .sc-footer-cta a { box-shadow: none; }
@media (max-width: 767px) {
  .sc-managed-site .sct-testimonials .sct-testimonial__body { padding: 20px; }
  .sc-managed-site .sct-testimonials.sct-js .sct-testimonial__open { margin: 0 20px 20px; }
}

/* Titles written into page content (photography apps), as on live (RyanSmithPhotography-Site
   tailwind.css ".flow > h1"): the title-panel serif size, centred ones over the accent hairline.
   Live's heading icons keep live's own class (sc-ico sc-ico-<name>) and draw from its SVG. */
.sc-page .entry-content h1.has-text-align-center { font-size: clamp(36px, 2.4vw + 16px, 58px); line-height: 1.08; letter-spacing: -.012em; }
.sc-page .entry-content h1.has-text-align-center::after { content: ""; display: block; width: 56px; height: 1px; margin: 24px auto 0; background: var(--sc-accent); }
.sc-page .entry-content .sc-ico::before { content: ""; display: inline-block; width: .8em; height: .8em; margin-right: 8px; vertical-align: -.08em; background: currentColor; -webkit-mask: var(--sc-ico) center / contain no-repeat; mask: var(--sc-ico) center / contain no-repeat; }
.sc-page .entry-content .sc-ico-apps { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M149.33 138.67c0-23.57-19.1-42.67-42.66-42.67H42.67C19.1 96 0 115.1 0 138.67v64c0 23.57 19.1 42.66 42.67 42.66h64c23.56 0 42.66-19.09 42.66-42.66v-64zm170.67 0c0-23.57-19.1-42.67-42.67-42.67h-64c-23.56 0-42.66 19.1-42.66 42.67v64c0 23.57 19.1 42.66 42.66 42.66h64c23.57 0 42.67-19.09 42.67-42.66v-64zm170.67 0c0-23.57-19.1-42.67-42.67-42.67h-64c-23.57 0-42.67 19.1-42.67 42.66v64c0 23.57 19.1 42.67 42.67 42.67h64c23.56 0 42.66-19.1 42.66-42.67v-64zM149.33 309.33c0-23.56-19.1-42.66-42.66-42.66H42.67C19.1 266.67 0 285.77 0 309.33v64c0 23.57 19.1 42.67 42.67 42.67h64c23.56 0 42.66-19.1 42.66-42.67v-64zm170.67 0c0-23.56-19.1-42.66-42.67-42.66h-64c-23.56 0-42.66 19.1-42.66 42.66v64c0 23.57 19.1 42.67 42.66 42.67h64c23.57 0 42.67-19.1 42.67-42.67v-64zm170.67 0c0-23.56-19.1-42.66-42.67-42.66h-64c-23.57 0-42.67 19.1-42.67 42.66v64c0 23.57 19.1 42.67 42.67 42.67h64c23.56 0 42.66-19.1 42.66-42.67v-64z'/%3E%3C/svg%3E"); }
/* Live's blue app buttons are pills like every other button there, and its app screenshots
   carry the rounded card shadow (sc-shot). */
.sc-managed-site .wp-block-button.is-style-sc-alt .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-color: #06c; border-radius: 999px; background: #06c; font-size: 16px; font-weight: 650; line-height: 1.2; box-shadow: 0 6px 16px #2f343b26; }
.sc-managed-site .wp-block-button.is-style-sc-alt .wp-block-button__link:hover { border-color: #0052a3; background: #0052a3; }
html.dark .sc-managed-site .wp-block-button.is-style-sc-alt .wp-block-button__link { box-shadow: none; }
@media (min-width: 641px) { .sc-managed-site .wp-block-button.is-style-sc-alt .wp-block-button__link { font-size: 17px; } }
.sc-page .entry-content .sc-shot img { border-radius: 12px; box-shadow: 0 1px 2px #2f2a240a, 0 10px 30px #2f2a2412; }
html.dark .sc-page .entry-content .sc-shot img { box-shadow: 0 1px 2px #0003, 0 10px 30px #00000040; }


/* Section titles in a card, as on live (tailwind.css "h2.text-center", blocks.jsx Heading): a
   page-level H2 with no alignment of its own is centred over the accent hairline. */
.sc-page .entry-content > :is(.is-style-sc-boxed, .is-style-sc-boxed-full) > h2:not([class*="has-text-align-"]) { text-align: center; }
.sc-page .entry-content > :is(.is-style-sc-boxed, .is-style-sc-boxed-full) > h2:not([class*="has-text-align-"])::after { content: ""; display: block; width: 56px; height: 1px; margin: 22px auto 0; background: var(--sc-accent); }
/* Hero titles in one line of type (blocks.jsx HeroHeading) use live's single-title size, so
   long ones wrap to three lines, not four; a title split into main and sub keeps the larger
   size. Live's subtitle under it sits tight, at the title's line height. */
.sc-page .entry-content .is-style-sc-glass-card h1:not(:has(.sc-headline-main)) { font-size: clamp(34px, 2.6vw + 18px, 56px); }
.sc-page .entry-content .is-style-sc-glass-card h2.sc-headline-sub { line-height: 1.08; }
/* Blog post section titles at live's prose size . */
.sc-managed-site .sc-post-body h2 { font-size: clamp(28px, 1.4vw + 16px, 38px); line-height: 1.12; }

/* Wedding price lists, as on the live static site (RyanSmithPhotography-Site blocks.jsx PriceTable
   + its CSS, measured 2026-11-05): each column is a package card. The list keeps live's roles as
   classes (header = package name, grey = price, sc-ico-<name> = feature icon; restored in content). */
.sc-page .entry-content .is-style-sc-price-table { display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; align-items: start; gap: 24px; margin-top: 40px; }
.sc-page .entry-content .is-style-sc-price-table > .wp-block-column { flex-basis: auto !important; min-width: 0; height: 100%; padding: 0; overflow: hidden; border: 0; border-radius: 14px; background: var(--sc-review-card); box-shadow: 0 0 0 1px var(--sc-review-ring), 0 1px 2px #2f2a240a, 0 18px 44px #2f2a2414; }
html.dark .sc-page .entry-content .is-style-sc-price-table > .wp-block-column { box-shadow: 0 0 0 1px var(--sc-review-ring), 0 1px 2px #0003, 0 18px 44px #00000040; }
.sc-page .entry-content .is-style-sc-price-table ul { margin: 0; padding: 0 0 8px; list-style: none; }
.sc-page .entry-content .is-style-sc-price-table li { position: relative; margin: 0 24px; padding: 12px 0 12px 28px; color: var(--sc-text); font-size: 16px; line-height: 1.65; }
html.dark .sc-page .entry-content .is-style-sc-price-table li:not(.header, .grey) { color: var(--sc-text); }
.sc-page .entry-content .is-style-sc-price-table li:not(.header, .grey) + li { border-top: 1px solid var(--sc-review-ring); }
.sc-page .entry-content .is-style-sc-price-table li.header { margin: 0; padding: 40px 24px 16px; color: var(--sc-heading); font-family: var(--sc-serif); font-size: 24px; line-height: 1.375; text-align: center; }
.sc-page .entry-content .is-style-sc-price-table li.grey { margin: 0 0 8px; padding: 0 24px 30px; color: var(--sc-accent); font-family: var(--sc-serif); font-size: 48px; line-height: 1; letter-spacing: 0; text-align: center; }
.sc-page .entry-content .is-style-sc-price-table li.grey::after { content: ""; display: block; width: 40px; height: 1px; margin: 24px auto 0; background: var(--sc-accent); }
.sc-page .entry-content .is-style-sc-price-table li.sc-ico::before { position: absolute; top: calc(12px + .45em); left: 0; width: 16px; height: 16px; margin: 0; background: var(--sc-accent); }
@media (max-width: 1024px) {
  .sc-page .entry-content > .is-style-sc-boxed > .is-style-sc-price-table { grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }
}
/* Live's buttons with an icon (wedding photographers page): the icon before the label, .8em, 8px gap. */
.sc-page .entry-content .wp-block-button.sc-ico::before { content: none; }
.sc-page .entry-content .wp-block-button.sc-ico > .wp-block-button__link { gap: 8px; }
.sc-page .entry-content .wp-block-button.sc-ico > .wp-block-button__link::before { content: ""; flex: 0 0 .8em; width: .8em; height: .8em; background: currentColor; -webkit-mask: var(--sc-ico) center / contain no-repeat; mask: var(--sc-ico) center / contain no-repeat; }
.sc-page .entry-content .sc-ico-clock-o { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-download { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 384v80c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48v-80c0-13.3 10.7-24 24-24h105.4c12.2 0 23.5 6.6 29.6 17.4L186.2 448h139.6l27.1-46.6c6.1-10.8 17.4-17.4 29.6-17.4H488c13.3 0 24 10.7 24 24z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-cloud { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-image { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.93 0-56 25.07-56 56s25.07 56 56 56 56-25.07 56-56-25.07-56-56-56zM64 384h384V272l-87.51-87.51c-6.25-6.25-16.38-6.25-22.63 0L208 314.06l-73.37-73.37c-6.25-6.25-16.38-6.25-22.63 0L64 288v96z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-book { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M448 360V24c0-13.3-10.7-24-24-24H84.1C38 0 0 38 0 84.1v343.8C0 474 38 512 84.1 512h339.9c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H84.1c-11.5 0-20.9-9.4-20.9-20.9S72.6 400 84.1 400H424c13.3 0 24-10.7 24-24z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-man-woman { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M8 3c0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.657 1.343-3 3-3s3 1.343 3 3zM26 3c0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.657 1.343-3 3-3s3 1.343 3 3zM8 8H2C.895 8 0 8.895 0 10v10h2v12h2.5v-12h1v12H8v-12h2v-10c0-1.105-.895-2-2-2zM30.469 16l1.531-1.109-4.165-6.441a.987.987 0 0 0-.835-.45h-8a.987.987 0 0 0-.835.45l-4.165 6.441 1.531 1.109 3.458-4.487 1.202 2.804-4.191 7.683h3.833l.667 10h2v-10h1v10h2l.667-10h3.833l-4.191-7.683 1.202-2.804 3.458 4.487z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-diamond { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M378.7 32H133.3L43.6 156.4c-4 5.5-4 13.1 0 18.6l202.4 276.4c5.1 7.1 15.8 7.1 20.9 0L468.4 175c4-5.5 4-13.1 0-18.6L378.7 32zM151.7 64h208.7l50.8 70.8h-74.9l-49.2-70.8h-61.9l-49.2 70.8H100.9L151.7 64zM256 384l-145-198.1h102.3l42.7 85.5 42.7-85.5H401L256 384z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-map-marker { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-cutlery { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 416 512'%3E%3Cpath d='M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 480c0 17.6-14.4 32-32 32s-32-14.4-32-32l12.9-231.4c-41.1-15-68.9-52.3-68.9-104.6 0-34.3 15.3-124.1 16.1-128.8.6-3.8 4.6-6.4 8.4-5.5 49.3 11 93.3 11 142.6 0 3.8-.9 7.8 1.7 8.4 5.5zM416 32v159.2c0 23.7-13.6 44.8-34.9 54.9L368 480c0 17.6-14.4 32-32 32s-32-14.4-32-32l-13.1-233.9C269.6 236 256 214.9 256 191.2V32c0-17.6 14.4-32 32-32s32 14.4 32 32v128h16V32c0-17.6 14.4-32 32-32s32 14.4 32 32z'/%3E%3C/svg%3E"); }
.sc-page .entry-content .sc-ico-bride { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 16c-17.7 0-32 14.3-32 32s14.3 32 32 32c8.8 0 16-7.2 16-16s-7.2-16-16-16zm-76 100c-13.3 0-24 10.7-24 24v32c0 10.6 6.8 19.6 16.4 22.8L216 240v20L84 464c-8.5 14.5 2 32 18.9 32h306.2c16.9 0 27.4-17.5 18.9-32L296 260v-20l43.6-45.2c9.6-3.2 16.4-12.2 16.4-22.8v-32c0-13.3-10.7-24-24-24H180z'/%3E%3C/svg%3E"); }
/* H3s at live's size (RyanSmithPhotography-Site tailwind.css: clamp(22px, .5vw + 17px, 26px), 1.2,
   .005em; 24.2px at 1440, 22px on phones). A centred section h3 with the import's sc-mb-m keeps live's 24px below. */
.sc-managed-site h3 { font-size: clamp(22px, .5vw + 17px, 26px); line-height: 1.2; letter-spacing: .005em; }
.sc-managed-site .entry-content h3.sc-mb-m { margin-bottom: 24px !important; }

/* Open Q&A lists (inc/look-features.php, the Details block's "Open question" style), as on the live static site:
   a "Jump to a question" menu, then serif questions over accent hairlines, answers open.
   Straight under the page title (H2 questions) the list is centred, like live's title card. */
.sc-managed-site .entry-content .sc-qa-wrap { max-width: 900px; margin: 0 auto; }
.sc-managed-site .sc-qa-jump { display: grid; gap: 8px; margin: 0 0 24px; color: var(--sc-heading); font-size: 16px; font-weight: 600; }
.sc-managed-site .sc-qa-jump select { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid var(--sc-field-line); border-radius: 12px; background: var(--kit-paper); color: var(--sc-text); font-size: 16px; font-weight: 400; }
.sc-managed-site .sc-qa-jump select:focus-visible { border-color: var(--kit-focus); outline: 2px solid var(--kit-focus); outline-offset: 3px; }
.sc-managed-site .sc-qa { border-top: 1px solid var(--sc-ed-line); }
.sc-managed-site .sc-qa__item { padding: 26px 0; }
.sc-managed-site .sc-qa__item + .sc-qa__item { border-top: 1px solid var(--sc-ed-line); }
.sc-managed-site .entry-content .sc-qa-question { margin: 0; scroll-margin-top: 24px; color: var(--sc-heading); font-family: var(--sc-serif); font-size: clamp(19px, .5vw + 15px, 23px); font-weight: 400; line-height: 1.3; letter-spacing: 0; }
.sc-managed-site .sc-qa-question:focus { outline: none; }
.sc-managed-site .sc-qa-question:focus-visible { outline: 3px solid #06c; outline-offset: 4px; }
.sc-managed-site .sc-qa__answer { margin-top: 12px; }
.sc-managed-site .sc-qa__answer > :first-child { margin-top: 0; }
.sc-managed-site .sc-qa__answer > :last-child { margin-bottom: 0; }
.sc-managed-site .sc-qa--center :is(.sc-qa-jump, .sc-qa__item) { text-align: center; }

/* Folded FAQs (core/details), as on the live static site: 900px between
   accent hairlines, serif questions with a thin accent plus that loses its upright when open. */
.sc-managed-site .entry-content .wp-block-details { max-width: 900px; margin: 0 auto; padding: 0 4px; border-bottom: 1px solid var(--sc-ed-line); }
.sc-managed-site .entry-content :not(.wp-block-details) + .wp-block-details { margin-top: 24px; border-top: 1px solid var(--sc-ed-line); }
.sc-managed-site .entry-content .wp-block-details summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; padding: 22px 0; list-style: none; color: var(--sc-heading); font-size: clamp(19px, .5vw + 15px, 23px); line-height: 1.3; transition: color .25s ease; }
.sc-managed-site .entry-content .wp-block-details summary::-webkit-details-marker { display: none; }
.sc-managed-site .entry-content .wp-block-details summary:hover { color: var(--sc-accent); }
.sc-managed-site .entry-content .wp-block-details summary::after { content: ""; flex: 0 0 16px; height: 16px; background: linear-gradient(var(--sc-accent), var(--sc-accent)) center / 100% 1px no-repeat, linear-gradient(var(--sc-accent), var(--sc-accent)) center / 1px 100% no-repeat; transition: background-size .2s; }
.sc-managed-site .entry-content .wp-block-details[open] summary::after { background-size: 100% 1px, 1px 0; }
.sc-managed-site .entry-content .wp-block-details > :not(summary) { margin: 0; }
.sc-managed-site .entry-content .wp-block-details > :not(summary) + :not(summary) { margin-top: 1em; }
.sc-managed-site .entry-content .wp-block-details > :last-child:not(summary) { padding-bottom: 26px; }
@media (prefers-reduced-motion: reduce) { .sc-managed-site .entry-content .wp-block-details summary::after { transition: none; } }

/* The license and permit photos after the open Q&A, as on the live static site:
   five across, two on tablets, one on phones, with small grey captions. */
.sc-managed-site .entry-content .sc-qa-wrap + .wp-block-columns { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px 48px; max-width: 1088px; margin: 40px auto 0; }
.sc-managed-site .entry-content .sc-qa-wrap + .wp-block-columns > .wp-block-column { align-self: start; margin: 0; }
.sc-managed-site .entry-content .sc-qa-wrap + .wp-block-columns figure { display: block; margin: 0; }
.sc-managed-site .entry-content .sc-qa-wrap + .wp-block-columns img { width: 100%; height: auto; border-radius: 12px; box-shadow: 0 1px 2px rgb(47 42 36 / .04), 0 10px 30px rgb(47 42 36 / .07); }
.sc-managed-site .entry-content .sc-qa-wrap + .wp-block-columns figcaption { display: block; margin: 12px 0 0; color: var(--kit-faint); font-size: 14px; line-height: 1.6; text-align: center; }
@media (max-width: 1024px) { .sc-managed-site .entry-content .sc-qa-wrap + .wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .sc-managed-site .entry-content .sc-qa-wrap + .wp-block-columns { grid-template-columns: minmax(0, 1fr); } }

/* Thank-you greeting (shootcal/form-thanks), as on the live static site: a centred H2 and
   plain text under it, not the theme's notice box. */
.sc-managed-site .entry-content .sc-thanks { max-width: 900px; margin: 0 auto 40px; padding: 0; border: 0; background: none; text-align: center; }
.sc-managed-site .entry-content .sc-thanks h2 { margin: 0 0 16px; }
.sc-managed-site .entry-content .sc-thanks :is(.sc-thanks__email, .sc-thanks__note) { color: inherit; font-size: inherit; font-weight: inherit; }

/* Page title cards use live's page title size; posts and archives keep the blog size. */
/* "More from …" under a post and "Latest from the blog" on the 404 page, sized as on the static site. */
.sc-managed-site .sc-related__title { font-size: clamp(32px, 2.2vw + 14px, 48px); line-height: 1.08; }
.sc-managed-site .sc-page .sc-title-card__title { font-size: clamp(36px, 2.4vw + 16px, 58px); letter-spacing: -.012em; }

/* Kuula 360° tours, as on the live static site: up to 1000px wide at 16:10, never shorter
   than 480px (or 70% of a short screen), on black with the photo shadow. */
.sc-managed-site .entry-content .sc-embed--kuula { max-width: 1000px; margin-inline: auto; aspect-ratio: 16 / 10; min-height: min(480px, 70svh); border-radius: 12px; background: #000; box-shadow: 0 1px 2px rgb(47 42 36 / .04), 0 10px 30px rgb(47 42 36 / .07); }

/* Boxed location cards (vendors): each category is its own
   white card, 1100px wide, the heading centred over the accent hairline, the intro at 780px and
   the photos lifted by the soft shadow. Phones keep the plain flow without the card, like live.
   Plain location cards (venues) keep the open layout. */
.sc-page .entry-content > .is-style-sc-location-cards-boxed { margin-block: 40px; padding-block: 16px; }
.sc-page .entry-content > .is-style-sc-location-cards-boxed > h2 { text-align: center; }
.sc-page .entry-content > .is-style-sc-location-cards-boxed > h2::after { content: ""; display: block; width: 56px; height: 1px; margin: 22px auto 0; background: var(--sc-accent); }
.sc-page .entry-content > .is-style-sc-location-cards-boxed > p { max-width: 780px; margin-inline: auto; }
.sc-page .entry-content > .is-style-sc-location-cards-boxed img { box-shadow: 0 1px 2px rgb(47 42 36 / .04), 0 10px 30px rgb(47 42 36 / .07); }
.sc-page .entry-content > .is-style-sc-location-cards-boxed > .wp-block-group { margin-top: 40px; }
/* Live's vendor rows sit 32px apart with no space under the names (the shared card-grid rules
   above are far more specific, hence !important). */
.sc-page .entry-content > .is-style-sc-location-cards-boxed .wp-block-columns { row-gap: 32px !important; }
.sc-page .entry-content > .is-style-sc-location-cards-boxed .wp-block-columns .wp-block-heading { margin-bottom: 0 !important; }
@media (min-width: 641px) {
  .sc-page .entry-content > .is-style-sc-location-cards-boxed { width: min(1100px, calc(100% - 2 * var(--sc-gutter))); margin-inline: auto; padding: 64px 32px 48px; border-radius: 20px; background: var(--sc-review-card); box-shadow: 0 0 0 1px var(--sc-review-ring), 0 1px 2px rgb(47 42 36 / .04), 0 10px 30px rgb(47 42 36 / .07); }
  .sc-page .entry-content > .is-style-sc-location-cards-boxed > h2 { max-width: none; }
}
@media (min-width: 1025px) { .sc-page .entry-content > .is-style-sc-location-cards-boxed { padding-inline: 48px; } }

/* Dark mode: content buttons use the cream button's own ink, with the glass card's orange button left as it is. */
html.dark .sc-managed-site .wp-block-button__link:not(.has-text-color), html.dark .sc-managed-site .wp-block-button__link:not(.has-text-color):hover { color: var(--sc-button-ink); }
html.dark :is(.entry-content, .editor-styles-wrapper) .is-style-sc-glass-card .wp-block-button__link:not(.has-text-color), html.dark :is(.entry-content, .editor-styles-wrapper) .is-style-sc-glass-card .wp-block-button__link:not(.has-text-color):hover { color: #fff; }
/* The alternate button stays blue in dark mode, so its label stays white. */
html.dark .sc-managed-site .wp-block-button.is-style-sc-alt .wp-block-button__link:not(.has-text-color), html.dark .sc-managed-site .wp-block-button.is-style-sc-alt .wp-block-button__link:not(.has-text-color):hover { color: #fff; }
html.dark .sc-page .entry-content > .is-style-sc-boxed-full + .wp-block-buttons { background: var(--sc-boxed-full-bg); box-shadow: 0 0 0 100vmax var(--sc-boxed-full-bg); }

/* Six photos with captions (real estate): two wide columns, not a row of thumbnails. */
.sc-managed-site .entry-content .wp-block-group:has(> .wp-block-columns > .wp-block-column:nth-child(6):last-child > .wp-block-image) { max-width: var(--sc-wide); }
.sc-managed-site .entry-content .wp-block-columns:has(> .wp-block-column:nth-child(6):last-child > .wp-block-image) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; max-width: var(--sc-wide); margin-inline: auto; }
.sc-managed-site .entry-content .wp-block-columns:has(> .wp-block-column:nth-child(6):last-child > .wp-block-image) > .wp-block-column { min-width: 0; margin: 0; }
@media (max-width: 640px) { .sc-managed-site .entry-content .wp-block-columns:has(> .wp-block-column:nth-child(6):last-child > .wp-block-image) { grid-template-columns: minmax(0, 1fr); } }

/* Calendar block: as wide as the old page's, readable event text, and dark mode through the plugin's own variables. */
.sc-managed-site .entry-content .shootcal-web-calendar__wrap { --shootcal-muted: #5b6270; width: min(var(--sc-wide), calc(100% - 2 * var(--sc-gutter))); max-width: none; margin-inline: auto; }
.sc-managed-site .shootcal-web-calendar--full .shootcal-web-calendar__event { font-size: .8rem; }
@media (max-width: 640px) { .sc-managed-site .entry-content .shootcal-web-calendar__wrap { width: 100%; } .sc-managed-site .shootcal-web-calendar--full .shootcal-web-calendar__event { padding-inline: 0 !important; font-size: .68rem; background: transparent; } }
html.dark .sc-managed-site .entry-content .shootcal-web-calendar__wrap { --shootcal-wrap-bg: #1e1e1e; --shootcal-wrap-border: #3a3a3a; --shootcal-grid-line: #3a3a3a; --shootcal-toolbar-border: #3a3a3a; --shootcal-label-fg: #f5f5f5; --shootcal-muted: #b8b8b8; --shootcal-btn-fg: #f5f5f5; --shootcal-btn-border: #555; --shootcal-btn-hover-bg: #2c2c2c; --shootcal-btn-active-bg: #333; --shootcal-available-bg: #1e1e1e; --shootcal-available-fg: #f5f5f5; --shootcal-past-bg: #191919; --shootcal-past-fg: #9a9a9a; --shootcal-out-bg: #191919; --shootcal-credit-fg: #b8b8b8; }
/* The plugin sets a white button with !important inside its own layer, so only a rule in that layer can change it. */
@layer shootcal-web-calendar { html.dark .shootcal-web-calendar__btn { background: #1e1e1e !important; } }
html.dark .sc-managed-site .shootcal-web-calendar--full .shootcal-web-calendar__event { background: rgba(255, 255, 255, .05); }

/* Code in posts reads as code, and long commands scroll instead of breaking. */
.sc-managed-site .entry-content pre { padding: 16px 20px; border-radius: 10px; background: var(--kit-soft); overflow-x: auto; }
.sc-managed-site .entry-content pre code { white-space: pre; overflow-wrap: normal; word-break: normal; }
