/*
Theme Name:   Sonia Hopkins Events
Theme URI:    https://soniahopkinsevents.com
Description:  Starter child theme for GeneratePress: Champagne & Ink palette, romantic type, photo frames, fading hero and ready-made page sections.
Author:       Sonia Hopkins Events
Template:     generatepress
Version:      1.4.14
Requires at least: 6.4
Text Domain:  sonia-hopkins-events
*/

/* ==========================================================================
   1. Design tokens (edit colors here)
   ========================================================================== */
:root {
	--she-ivory: #FBF7F2;          /* page background */
	--she-blush: #EFE9E0;          /* stone: soft panels (name kept for compatibility) */
	--she-logo: #CDBE9F;           /* champagne line: photo frames, fine rules */
	--she-rose: #2B2724;           /* ink: buttons and links (name kept for compatibility) */
	--she-rose-dark: #45403A;      /* button hover */
	--she-rose-soft: #9C8259;      /* champagne script headings */
	--she-accent: #8A7148;         /* champagne gold: italic heading words, signature */
	--she-accent-text: #7A6440;    /* champagne gold for small text and hovers */
	--she-ink: #2B2724;            /* main text */
	--she-ink-soft: #454039;       /* story text */
	--she-muted: #6E665C;          /* labels, captions */
	--she-mauve: #211E1B;          /* ink: footer and dark bands (name kept for compatibility) */

	--she-serif: "Cormorant Garamond", Georgia, serif;
	--she-sans: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;
	--she-script: "Mrs Saint Delafield", cursive;
}

/* ==========================================================================
   2. Base typography
   "html body" is used so these win over GeneratePress's own inline type CSS.
   ========================================================================== */
html body {
	background-color: var(--she-ivory);
	color: var(--she-ink);
	font-family: var(--she-sans);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.7;
}

html body h1,
html body h2,
html body h3,
html body h4,
html body .she-display {
	font-family: var(--she-serif);
	font-weight: 300;
	color: var(--she-ink);
	line-height: 1.08;
	letter-spacing: 0;
}

html body h1 { font-size: clamp(44px, 6vw, 76px); }
html body h2 { font-size: clamp(36px, 4.4vw, 56px); }
html body h3 { font-size: clamp(30px, 3vw, 44px); font-weight: 400; }
html body h4 { font-size: 26px; font-weight: 400; }

html body h1 em,
html body h2 em,
html body h3 em { color: inherit; font-style: italic; }  /* one-color titles: the italic word stays the heading's color */

html body a { color: var(--she-rose); }
html body a:hover,
html body a:focus { color: var(--she-rose-dark); }

/* Story text: larger, italic-friendly serif paragraphs */
.she-story,
.she-story p {
	font-family: var(--she-serif);
	font-size: clamp(19px, 1.6vw, 22px);
	line-height: 1.6;
	color: var(--she-ink-soft);
}

.she-lede {
	font-family: var(--she-serif);
	font-style: italic;
	font-size: clamp(20px, 1.9vw, 24px);
	line-height: 1.5;
	color: #4A443D;
}

/* Spaced uppercase label, e.g. "THE PORTFOLIO" */
.she-label {
	font-family: var(--she-sans);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--she-muted);
}

/* Script accent: chapter names, "And so it begins", Sonia's signature.
   Mrs Saint Delafield runs small, so sizes are generous. Keep it to a few words. */
.she-script {
	font-family: var(--she-script);
	font-weight: 400;
	font-size: clamp(44px, 5vw, 64px);
	line-height: 1;
	color: var(--she-rose-soft);
	letter-spacing: 0;
}
.she-script.is-large { font-size: clamp(72px, 10vw, 132px); }
.she-signature { font-family: var(--she-script); font-size: 70px; line-height: 1; color: var(--she-accent); }

.she-center { text-align: center; }
.she-center .wp-block-buttons { justify-content: center; }

/* ==========================================================================
   3. Buttons (core Button block, GenerateBlocks buttons with class "she-btn", WPForms submit)
   ========================================================================== */
html body .wp-block-button__link,
html body .she-btn,
html body .entry-content input[type="submit"],
html body .wpforms-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 34px;
	border: 1px solid var(--she-rose);
	border-radius: 999px;
	background: var(--she-rose);
	color: var(--she-ivory);
	font-family: var(--she-sans);
	font-weight: 400;
	font-size: 13px;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
html body .wp-block-button__link:hover,
html body .she-btn:hover,
html body .entry-content input[type="submit"]:hover,
html body .wpforms-submit:hover {
	background: var(--she-rose-dark);
	border-color: var(--she-rose-dark);
	color: var(--she-ivory);
}

/* Soft (outline) button: Button block style "Soft outline", or class "she-btn-soft" */
html body .is-style-she-soft .wp-block-button__link,
html body .is-style-outline .wp-block-button__link,
html body .she-btn-soft {
	background: transparent;
	color: var(--she-rose);
}
html body .is-style-she-soft .wp-block-button__link:hover,
html body .is-style-outline .wp-block-button__link:hover,
html body .she-btn-soft:hover {
	background: var(--she-rose);
	color: var(--she-ivory);
}

/* Light button for use on photos and dark bands */
html body .she-btn-light,
html body .is-style-she-light .wp-block-button__link {
	background: transparent;
	border-color: var(--she-ivory);
	color: var(--she-ivory);
}
html body .she-btn-light:hover,
html body .is-style-she-light .wp-block-button__link:hover {
	background: var(--she-ivory);
	color: var(--she-mauve);
}

/* ==========================================================================
   4. Photo frames
   Core Image block: pick a style in the block sidebar (Matted, Arched, Clean).
   GenerateBlocks image: add the class she-frame-matted, she-frame-arch or she-frame-clean.
   ========================================================================== */
.is-style-she-arch img,
.she-frame-arch img,
img.she-frame-arch { border-radius: 999px 999px 0 0; }

.is-style-she-matted img,
.she-frame-matted img,
img.she-frame-matted {
	padding: 12px;
	border: 1px solid var(--she-logo);
	background: var(--she-ivory);
	box-sizing: border-box;
}

.is-style-she-clean img,
.she-frame-clean img,
img.she-frame-clean { border-radius: 2px; }

/* Portrait crop helpers for grids: add to the Image block or GenerateBlocks image */
.she-portrait img, img.she-portrait { aspect-ratio: 3 / 4.2; width: 100%; height: auto; object-fit: cover; }
.she-square img, img.she-square { aspect-ratio: 1 / 1; width: 100%; height: auto; object-fit: cover; }

/* Portfolio and story cards: titles under photos */
.she-card-title { font-family: var(--she-serif); font-size: 30px; line-height: 1.15; margin: 16px 0 6px; }
.she-card-title a { color: var(--she-ink); text-decoration: none; }
.she-card-title a:hover { color: var(--she-accent-text); }

/* Staggered three-column portfolio: add "she-stagger" to the middle column */
@media (min-width: 769px) { .she-stagger { padding-top: 140px; } }

/* ==========================================================================
   5. Fading photo hero (pattern: "Hero with fading photos")
   ========================================================================== */
.she-hero {
	position: relative;
	/* Taller on big monitors so wide screens don't slice the photos: grows with width, up to 90% of the screen height. */
	min-height: min(90vh, max(520px, 78vh, 45vw));
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: #1A1816;
	color: var(--she-ivory);
	text-align: center;
	margin: 0;
	padding: 120px 24px;
}
.she-hero__slides { position: absolute; inset: 0; margin: 0; z-index: 0; }
/* WordPress wraps group content in an inner container on classic themes; let it pass through. */
.she-hero > .wp-block-group__inner-container,
.she-hero__slides > .wp-block-group__inner-container { display: contents; }
.she-hero__slides .wp-block-image { position: absolute; inset: 0; margin: 0 !important; max-width: none; }
.she-hero__slides .wp-block-image img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 35%;
	opacity: 0;
	animation: she-fade 30s ease-in-out infinite both;
}
/* With JavaScript (assets/header.js), the hero crossfades through any number of photos. */
.she-hero__slides.is-js .wp-block-image img { animation: none; opacity: 0; transition: opacity 1.6s ease-in-out; }
.she-hero__slides.is-js .wp-block-image.is-active img { opacity: 1; }
/* Focal point per photo: add to the Image block's "Additional CSS class(es)" */
.she-hero__slides .she-focus-top img    { object-position: 50% 15%; }
.she-hero__slides .she-focus-center img { object-position: 50% 50%; }
.she-hero__slides .she-focus-bottom img { object-position: 50% 85%; }
.she-hero__slides .she-focus-left img   { object-position: 25% 40%; }
.she-hero__slides .she-focus-right img  { object-position: 75% 40%; }
.she-hero__slides .wp-block-image:nth-child(1) img { animation-delay: 0s; }
.she-hero__slides .wp-block-image:nth-child(2) img { animation-delay: 6s; }
.she-hero__slides .wp-block-image:nth-child(3) img { animation-delay: 12s; }
.she-hero__slides .wp-block-image:nth-child(4) img { animation-delay: 18s; }
.she-hero__slides .wp-block-image:nth-child(5) img { animation-delay: 24s; }
.she-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(26, 24, 22, .42);
	z-index: 1;
	pointer-events: none;
}
.she-hero .she-script,
.she-hero .she-label,
.she-hero h1,
.she-hero h2,
.she-hero p,
.she-hero .wp-block-buttons { position: relative; z-index: 2; }
.she-hero .she-script { color: var(--she-ivory); text-shadow: 0 2px 30px rgba(0, 0, 0, .25); }
.she-hero .she-label { color: var(--she-blush); }

/* Gentle crossfade only; no zoom, so photos never crop further while showing. */
@keyframes she-fade {
	0%   { opacity: 0; }
	5%   { opacity: 1; }
	20%  { opacity: 1; }
	25%  { opacity: 0; }
	100% { opacity: 0; }
}
/* Optional slow push-in: add "she-hero--zoom" to the hero group */
.she-hero--zoom .she-hero__slides .wp-block-image img { animation-name: she-fade-zoom; }
@keyframes she-fade-zoom {
	0%   { opacity: 0; transform: scale(1); }
	5%   { opacity: 1; }
	20%  { opacity: 1; }
	25%  { opacity: 0; transform: scale(1.025); }
	100% { opacity: 0; transform: scale(1.025); }
}
@media (max-width: 768px) {
	.she-hero { min-height: 72vh; padding: 110px 20px 80px; }
}

/* ==========================================================================
   6. Section helpers
   ========================================================================== */
.she-section { padding-top: clamp(72px, 9vw, 120px); padding-bottom: clamp(72px, 9vw, 120px); }
.she-panel { background: var(--she-blush); }
.she-dark { background: var(--she-mauve); color: var(--she-ivory); }
.she-dark h1, .she-dark h2, .she-dark h3, .she-dark .she-script { color: var(--she-ivory); }
.she-dark .she-label { color: var(--she-blush); }
.she-dark a { color: var(--she-ivory); }

/* GeneratePress pads every Group's inner container by 40px; inside our sections that padding
   stacks up and opens big gaps, so our groups handle their own spacing. */
[class*="she-"] > .wp-block-group__inner-container { padding: 0; max-width: none; }
/* Script lines sit close to the heading under them (the default gap grows with the large font). */
html body p.she-script { margin-bottom: .2em; }
/* Sections that follow straight on from the page title: Contact steps, venue page intros. */
.she-steps-section,
.she-venue-story { padding-top: 0; }
.she-section:has(+ .she-venue-story) { padding-bottom: 36px; }
/* Le Lieu Group line on venue pages sits close under the weddings grid (1.4.11). */
.she-venue-concierge { padding-top: 0; }
/* FAQ right after a plain section: one gap, not two (1.4.12). */
.she-section:not(.she-panel):not(.she-dark) + .she-faq-section { padding-top: 0; }
.she-section:has(+ .she-venue-concierge) { padding-bottom: 24px; }
.she-section:has(+ .she-venue-concierge) .she-grid:last-child, .she-section:has(+ .she-venue-concierge) .she-portfolio-grid:last-child { margin-bottom: 0; }

/* Content width inside full-width sections */
.she-wrap { max-width: 1320px; margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }
.she-narrow { max-width: 760px; margin-left: auto; margin-right: auto; }
.she-section > .she-wrap > *:first-child { margin-top: 0; }
.she-section > .she-wrap > *:last-child { margin-bottom: 0; }
.she-section .she-grid { margin-top: 48px; margin-bottom: 48px; }

/* Story chapter rows: image and text side by side, centered vertically */
.she-chapter { align-items: center; gap: 64px; }
.she-chapter + .she-chapter { margin-top: 110px; }
.she-chapter .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; max-height: 620px; object-fit: cover; }

/* ==========================================================================
   7. Navigation and footer (GeneratePress)
   ========================================================================== */
html body .main-navigation .main-nav ul li a,
html body .main-navigation .menu-toggle {
	font-family: var(--she-sans);
	font-weight: 400;
	font-size: 13px;
	letter-spacing: .22em;
	text-transform: uppercase;
}
html body .site-footer,
html body .site-info { background: var(--she-mauve); color: #E6DFD3; }
html body .site-footer a,
html body .site-info a { color: var(--she-ivory); }

/* --- Theme header: logo centered, menus either side (inc/header-footer.php) --- */
.she-header-wrap { position: relative; z-index: 50; }
html body .she-header { background: var(--she-ivory); color: var(--she-ink); }
.she-header__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 22px 40px 18px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 32px;
}
.she-nav--left { justify-self: start; }
.she-nav--right { justify-self: end; display: flex; align-items: center; gap: 34px; }
.she-logo { display: block; line-height: 0; }
.she-logo__img { display: block; width: auto; height: 92px; max-width: none; }

html body .she-menu {
	display: flex;
	align-items: center;
	gap: 34px;
	margin: 0;
	padding: 0;
	list-style: none;
}
html body .she-menu li { position: relative; margin: 0; }
html body .she-header .she-menu a,
html body .she-mobile-menu .she-menu a {
	display: block;
	padding: 8px 0;
	font-family: var(--she-sans);
	font-weight: 400;
	font-size: 13px;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease, color .2s ease;
}
html body .she-header .she-menu > li > a:hover,
html body .she-header .she-menu > .current-menu-item > a,
html body .she-header .she-menu > .current-menu-ancestor > a { border-bottom-color: currentColor; }
html body .she-header .she-header__cta { min-height: 44px; padding: 0 26px; font-size: 12px; }

/* Drop-down menus */
html body .she-header .she-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: -22px;
	min-width: 220px;
	margin: 0;
	padding: 12px 22px;
	list-style: none;
	background: var(--she-ivory);
	box-shadow: 0 14px 30px rgba(43, 39, 36, .12);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
html body .she-header .she-menu li:hover > .sub-menu,
html body .she-header .she-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
html body .she-header .she-menu .sub-menu a { color: var(--she-ink); font-size: 12px; }
html body .she-header .she-menu .sub-menu a:hover { color: var(--she-accent-text); }

/* Over the fading photo hero: transparent, light text, white logo */
html body .she-header.is-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	background: linear-gradient(to bottom, rgba(26, 24, 22, .42), rgba(26, 24, 22, 0));
	color: var(--she-ivory);
}
html body .she-header.is-overlay .she-header__inner { padding-top: 30px; padding-bottom: 40px; }
html body .she-header.is-overlay .she-logo__img { height: 104px; }
html body.she-has-hero .she-hero { margin-top: 0; }
html body.admin-bar .she-header.is-overlay { top: 0; }

/* Mobile menu button */
.she-menu-toggle { display: none; }
html body .she-header .she-menu-toggle {
	align-items: center;
	gap: 10px;
	padding: 8px 0;
	border: 0;
	background: none;
	color: inherit;
	font-family: var(--she-sans);
	font-size: 12px;
	letter-spacing: .22em;
	text-transform: uppercase;
	cursor: pointer;
}
.she-menu-toggle__bars,
.she-menu-toggle__bars::before,
.she-menu-toggle__bars::after {
	display: block;
	width: 22px;
	height: 1px;
	background: currentColor;
	position: relative;
	transition: transform .2s ease, background-color .2s ease;
}
.she-menu-toggle__bars::before,
.she-menu-toggle__bars::after { content: ""; position: absolute; left: 0; }
.she-menu-toggle__bars::before { top: -7px; }
.she-menu-toggle__bars::after { top: 7px; }
.she-menu-toggle[aria-expanded="true"] .she-menu-toggle__bars { background: transparent; }
.she-menu-toggle[aria-expanded="true"] .she-menu-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.she-menu-toggle[aria-expanded="true"] .she-menu-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

html body .she-mobile-menu {
	background: var(--she-ivory);
	color: var(--she-ink);
	padding: 18px 24px 34px;
	text-align: center;
	border-top: 1px solid var(--she-blush);
	box-shadow: 0 18px 30px rgba(43, 39, 36, .12);
}
html body .she-mobile-menu[hidden] { display: none; }
html body .she-mobile-menu .she-menu { flex-direction: column; gap: 4px; }
html body .she-mobile-menu .she-menu a { padding: 12px 0; font-size: 14px; }
html body .she-mobile-menu .sub-menu { margin: 0; padding: 0; list-style: none; }
html body .she-mobile-menu .sub-menu a { font-size: 12px; color: var(--she-muted); }
html body .she-mobile-menu p { margin: 18px 0 0; }

@media (max-width: 960px) {
	.she-header__inner { padding: 14px 20px; grid-template-columns: auto 1fr auto; gap: 12px; }
	.she-nav--left,
	.she-nav--right .she-menu { display: none; }
	html body .she-header .she-menu-toggle { display: inline-flex; }
	.she-logo { justify-self: center; }
	.she-logo__img,
	html body .she-header.is-overlay .she-logo__img { height: 64px; }
	html body .she-header.is-overlay .she-header__inner { padding-top: 16px; padding-bottom: 24px; }
	html body .she-header .she-header__cta { min-height: 38px; padding: 0 16px; font-size: 11px; letter-spacing: .18em; }
}
@media (max-width: 480px) {
	.she-menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.she-logo__img,
	html body .she-header.is-overlay .she-logo__img { height: 54px; }
}

/* --- Theme footer --- */
html body .she-footer {
	background: var(--she-mauve);
	color: #E6DFD3;
	text-align: center;
	font-family: var(--she-sans);
	font-weight: 300;
	font-size: 15px;
}
.she-footer__inner { max-width: 1320px; margin: 0 auto; padding: 84px 24px 40px; }
.she-footer__logo { display: inline-block; line-height: 0; }
.she-footer__logo img { display: block; width: auto; height: 100px; }
html body .she-footer__tagline {
	margin: 22px auto 0;
	font-family: var(--she-serif);
	font-style: italic;
	font-size: 22px;
	color: var(--she-ivory);
}
.she-footer__nav { margin: 42px 0 36px; padding: 26px 0; border-top: 1px solid rgba(251, 247, 242, .18); border-bottom: 1px solid rgba(251, 247, 242, .18); }
html body .she-footer .she-menu { justify-content: center; flex-wrap: wrap; gap: 14px 40px; }
html body .she-footer a { color: var(--she-ivory); text-decoration: none; }
html body .she-footer a:hover { color: var(--she-logo); }
html body .she-footer .she-menu a { font-weight: 400; font-size: 12px; letter-spacing: .24em; text-transform: uppercase; }
html body .she-footer__contact,
html body .she-footer__social { margin: 0 0 12px; line-height: 1.8; }
html body .she-footer__social a { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; }
html body .she-footer span[aria-hidden] { margin: 0 10px; opacity: .6; }
html body .she-footer__partner { margin: 18px 0 0; font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 17px; letter-spacing: .02em; }
html body .she-footer__copy { margin: 34px 0 0; font-size: 12px; letter-spacing: .08em; color: #B9AE9C; }
@media (max-width: 600px) {
	.she-footer__inner { padding-top: 60px; }
	.she-footer__logo img { height: 76px; }
	html body .she-footer .she-menu { flex-direction: column; gap: 14px; }
}

/* ==========================================================================
   Journal: full width photo-card grid (inc/journal.php)
   ========================================================================== */
html body.she-journal .site-main {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 70px 44px;
	margin: 0;
	padding: 20px 0 100px;
}
html body.she-journal .site-main > :not(article) { grid-column: 1 / -1; }
html body.she-journal .site-main > article { margin: 0; }
html body.she-journal .inside-article,
html body.she-journal .page-header {
	background: transparent;
	padding: 0;
	box-shadow: none;
}
.she-journal-head { text-align: center; padding: 70px 0 30px; max-width: 760px; margin: 0 auto; }
.she-journal-head__title { margin: 6px 0 14px; }
html body.she-journal .page-header { text-align: center; padding: 60px 0 20px; }
html body.she-journal .page-header .page-title { font-family: var(--she-serif); font-weight: 400; font-size: clamp(36px, 4vw, 52px); }

/* Card photo: matted frame, portrait crop */
html body.she-journal .post-image { margin: 0 0 24px; }
html body.she-journal .post-image a { display: block; padding: 10px; background: #fff; box-shadow: 0 10px 30px rgba(43, 39, 36, .08); }
html body.she-journal .post-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: opacity .3s ease;
}
html body.she-journal .post-image a:hover img { opacity: .88; }
html body.she-journal .entry-header { text-align: center; }
html body.she-journal .entry-title { font-family: var(--she-serif); font-weight: 400; font-size: 27px; line-height: 1.2; margin: 0 0 8px; }
html body.she-journal .entry-title a { color: var(--she-ink); text-decoration: none; }
html body.she-journal .entry-title a:hover { color: var(--she-accent-text); }
html body.she-journal .entry-header .entry-meta {
	font-family: var(--she-sans);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--she-muted);
}
html body.she-journal .entry-header .entry-meta a { color: inherit; }
html body.she-journal .entry-summary { text-align: center; color: var(--she-ink-soft); font-size: 16px; margin-top: 12px; }
html body.she-journal .entry-summary p { margin: 0; }
html body.she-journal .read-more-container,
html body.she-journal footer.entry-meta { display: none; }
html body.she-journal .paging-navigation { text-align: center; font-family: var(--she-sans); letter-spacing: .18em; text-transform: uppercase; font-size: 12px; }
@media (max-width: 1024px) { html body.she-journal .site-main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { html body.she-journal .site-main { grid-template-columns: 1fr; gap: 56px; } }

/* Single Journal post: full width page, comfortable reading column */
html body.she-journal-post .inside-article { max-width: 820px; margin-left: auto; margin-right: auto; background: transparent; }
html body.she-journal-post .entry-header { text-align: center; padding-top: 30px; }
html body.she-journal-post .entry-title { font-family: var(--she-serif); font-weight: 400; font-size: clamp(38px, 5vw, 58px); line-height: 1.1; }
html body.she-journal-post .entry-content .alignwide { margin-left: -120px; margin-right: -120px; max-width: none; }
@media (max-width: 1100px) { html body.she-journal-post .entry-content .alignwide { margin-left: 0; margin-right: 0; } }

/* Previous / next stories under a Journal post */
html body.she-journal-post .post-navigation,
html body.she-journal-post .nav-links { display: none; }
.she-post-nav {
	max-width: 1100px;
	margin: 40px auto 90px;
	padding: 36px 24px 0;
	border-top: 1px solid #E4DCCF;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
}
html body .she-post-nav__link { display: flex; align-items: center; gap: 18px; text-decoration: none; color: var(--she-ink); }
html body .she-post-nav__link.is-next { flex-direction: row-reverse; text-align: right; justify-self: end; }
.she-post-nav__img { width: 84px; height: 106px; object-fit: cover; border-radius: 999px 999px 0 0; flex: none; }
.she-post-nav__text { display: flex; flex-direction: column; gap: 4px; }
.she-post-nav__text .she-label { margin: 0; }
.she-post-nav__title { font-family: var(--she-serif); font-size: 24px; line-height: 1.2; }
html body .she-post-nav__link:hover .she-post-nav__title { color: var(--she-accent-text); }
html body .she-post-nav__back { text-decoration: none; text-align: center; white-space: nowrap; }
html body .she-post-nav__back:hover { color: var(--she-accent-text); }
@media (max-width: 760px) {
	.she-post-nav { grid-template-columns: 1fr; gap: 22px; }
	html body .she-post-nav__link.is-next { justify-self: end; }
	html body .she-post-nav__back { grid-row: 3; }
	.she-post-nav__spacer { display: none; }
	.she-post-nav__img { width: 60px; height: 76px; }
	.she-post-nav__title { font-size: 20px; }
}

/* Page names in script above each page title (About, Our Process, Portfolio, Love stories) */
html body p.she-page-name { font-size: clamp(50px, 6vw, 74px); line-height: 1.1; margin: 0 0 4px; }

/* About: big-number band, venue row, press line, pull quote */
.she-stats { gap: 40px; max-width: 980px; margin: 0 auto !important; }
.she-stats .wp-block-column { text-align: center; }
.she-stats .wp-block-column + .wp-block-column { border-left: 1px solid var(--she-logo); }
html body .she-stat__num {
	margin: 0 0 6px;
	font-family: var(--she-serif);
	font-weight: 300;
	font-size: clamp(54px, 7vw, 92px);
	line-height: 1;
	color: var(--she-ink);
}
html body .she-stats .she-label { margin: 0; }
html body .she-caption { margin: 18px 0 0; text-align: center; }
html body .she-press__label { margin: 64px 0 10px; }
html body .she-press {
	margin: 0;
	font-family: var(--she-serif);
	font-style: italic;
	font-size: clamp(22px, 2.4vw, 30px);
	color: var(--she-ink-soft);
}
.she-press span { margin: 0 .6em; color: var(--she-logo); font-style: normal; }
html body .she-quote {
	margin: 18px auto 28px;
	max-width: 820px;
	font-family: var(--she-serif);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.25;
}
.she-dark .she-quote { color: var(--she-ivory); }
.she-dark .she-lede { color: rgba(251, 247, 242, .82) !important; }
.she-dark .she-signature { color: var(--she-logo); }
@media (max-width: 781px) {
	.she-stats .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--she-logo); padding-top: 28px; }
}

/* Page sections: About, Our Process, Contact */
.she-values { gap: 48px; margin-top: 40px; }
.she-values .wp-block-column { text-align: center; }
html body .she-values h3 { font-family: var(--she-serif); font-weight: 400; font-size: 28px; margin: 4px 0 12px; }
html body .she-values .she-script { font-size: 44px; margin: 0; }
.she-trio { gap: 28px; margin: 34px 0 40px; }
.she-trio .wp-block-column:nth-child(2) { margin-top: 60px; }
html body ul.she-included { list-style: none; margin: 30px auto; padding: 0; max-width: 520px; }
html body ul.she-included li {
	padding: 14px 0;
	border-bottom: 1px solid rgba(43, 39, 36, .15);
	font-family: var(--she-serif);
	font-size: 21px;
	color: var(--she-ink);
}
html body ul.she-included li:last-child { border-bottom: 0; }
@media (max-width: 781px) {
	.she-trio .wp-block-column:nth-child(2) { margin-top: 0; }
}

/* Contact: photo beside a stationery-style inquiry card (Aisle Planner form inside).
   Aisle Planner shows its form in two columns only when the form is at least 768px wide,
   so the card stays wide enough for that; the photo moves below it on smaller screens. */
.she-inquiry {
	display: grid !important;
	grid-template-columns: minmax(0, 320px) minmax(0, 880px);
	gap: 56px;
	align-items: start;
	justify-content: center;
	max-width: 1280px;
	margin: 0 auto;
}
.she-inquiry > .wp-block-column { margin: 0 !important; flex-basis: auto !important; }
.she-inquiry__aside { position: sticky; top: 40px; text-align: center; }
.she-inquiry__aside .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.she-inquiry__aside .she-label { margin: 34px 0 6px; }
html body .she-inquiry__aside .she-lede { font-size: clamp(16px, 1.4vw, 20px); margin: 0 0 10px; white-space: nowrap; }
.she-inquiry__aside p:last-child { margin-bottom: 0; }
@media (max-width: 1320px) {
	/* Narrower laptops: slimmer photo column; the form keeps its 768px for two columns. */
	.she-inquiry { grid-template-columns: minmax(0, 250px) minmax(0, 848px); gap: 40px; }
	html body .she-inquiry__aside .she-lede { font-size: 15px; }
}
@media (max-width: 1199px) {
	/* Stacked: the form first, then a simple centered contact line; the photo steps aside. */
	.she-inquiry { grid-template-columns: minmax(0, 880px); gap: 36px; }
	.she-inquiry__aside { position: static; order: 2; text-align: center; }
	.she-inquiry__aside .wp-block-image { display: none; }
	.she-inquiry__aside .she-label { margin: 0 0 8px; }
	html body .she-inquiry__aside .she-lede { font-size: 19px; white-space: normal; }
	html body .she-inquiry__aside .she-lede br { display: none; }
	html body .she-inquiry__aside .she-lede a + br + a::before { content: "\00B7"; display: inline-block; margin: 0 .6em; color: var(--she-logo); text-decoration: none; }
	.she-inquiry__aside p { margin: 0 0 6px; }
}
.she-form-card {
	position: relative;
	background: #fff;
	padding: 56px 40px 44px;
	box-shadow: 0 14px 40px rgba(43, 39, 36, .08);
	text-align: center;
}
.she-form-card::before {
	content: "";
	position: absolute;
	inset: 14px;
	border: 1px solid var(--she-line, var(--she-logo));
	pointer-events: none;
}
.she-form-card > * { position: relative; }
html body .she-form-card .she-label { margin: 0; }
html body .she-form-card .she-script { margin: 6px 0 10px; font-size: clamp(48px, 5vw, 64px); }
html body .she-form-card__note { margin: 0 auto 26px; max-width: 360px; font-family: var(--she-serif); font-style: italic; font-size: 19px; line-height: 1.5; color: var(--she-ink-soft); }
.she-form-card__rule { width: 60px; height: 1px; margin: 0 auto 26px; background: var(--she-line, var(--she-logo)); }
.she-form-card iframe { display: block; width: 100%; border: 0; }
/* Start the Aisle Planner frame short: its auto-resize only ever grows the frame, so starting at
   the embed's 750px left empty space under Send once the form went to two columns. */
.she-form-card iframe#lead-form { height: 400px; }
html body .she-form-card__sign { margin: 10px 0 0; font-family: var(--she-serif); font-style: italic; font-size: 19px; color: var(--she-ink-soft); }
html body .she-form-card__sign .she-signature { display: block; font-size: 56px; margin-top: 2px; }
@media (max-width: 640px) {
	html body .she-inquiry__aside .she-lede br { display: block; }
	html body .she-inquiry__aside .she-lede a + br + a::before { content: none; }
}
@media (max-width: 900px) {
	.she-form-card { padding: 44px 18px 32px; }
	.she-form-card::before { inset: 8px; }
}

/* ==========================================================================
   8. WPForms: soft underline fields
   ========================================================================== */
html body .wpforms-container .wpforms-field-label {
	font-family: var(--she-sans);
	font-weight: 400;
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--she-muted);
}
html body .wpforms-container input[type="text"],
html body .wpforms-container input[type="email"],
html body .wpforms-container input[type="tel"],
html body .wpforms-container input[type="date"],
html body .wpforms-container input[type="number"],
html body .wpforms-container select,
html body .wpforms-container textarea {
	border: 0;
	border-bottom: 1px solid #8F877B;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--she-ink);
	font-family: var(--she-sans);
	font-weight: 300;
	font-size: 16px;
	padding: 10px 4px;
}

/* ==========================================================================
   9. Accessibility
   ========================================================================== */
html body a:focus-visible,
html body button:focus-visible,
html body .wp-block-button__link:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible {
	outline: 2px solid var(--she-rose);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.she-hero__slides .wp-block-image img { animation: none; }
	.she-hero__slides .wp-block-image:first-child img { opacity: 1; }
}

/* ===== FAQ accordion (1.4.9): Group "she-faq" holding Details blocks ===== */
.she-faq { max-width: 860px; margin: 0 auto; }
.she-faq .wp-block-details { border-top: 1px solid var(--she-logo); padding: 0; margin: 0; }
.she-faq .wp-block-details:last-child { border-bottom: 1px solid var(--she-logo); }
.she-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 4px; font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(21px, 2.2vw, 25px); line-height: 1.3; color: var(--she-ink); }
.she-faq summary::-webkit-details-marker { display: none; }
.she-faq summary::after { content: "+"; flex: none; width: 34px; height: 34px; border: 1px solid var(--she-logo); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: "Jost", sans-serif; font-size: 18px; color: var(--she-accent); transition: transform .3s ease, background .3s ease; }
.she-faq details[open] > summary::after { content: "\2212"; background: var(--she-blush); }
.she-faq summary:hover, .she-faq summary:focus-visible { color: var(--she-accent-text); outline: none; }
.she-faq summary:focus-visible::after { box-shadow: 0 0 0 3px rgba(138,113,72,.25); }
.she-faq .wp-block-details > :not(summary) { margin: 0 4px 24px; max-width: 720px; color: var(--she-ink-soft); }
.she-faq-section > .wp-block-group__inner-container > .she-wrap, .she-faq-section > .she-wrap { margin-bottom: 44px; }
