/*
Theme Name:    Silverline
Theme URI:     https://github.com/TallestTreeDigital/silverline-website
Description:   Silverline child theme for teamsilverline.com. Built on GeneratePress + GenerateBlocks Pro; Inter typography; sharp 0px radii; orange/white section alternation. See silverline-theme-build-plan.md and silverline-build-plan.md in the engagement directory for full context.
Author:        Tallest Tree Digital
Author URI:    https://tallesttree.digital
Template:      generatepress
Version:       0.2.0
Text Domain:   silverline
*/

/*
 * Block styles registered in functions.php map to these class hooks.
 * Preserves legacy Squarespace .silverline-icon-heading / .silverline-icon-heading-light
 * authoring patterns so migrated content renders correctly without rewrites.
 */
.is-style-silverline-icon-heading,
.silverline-icon-heading {
	color: #F7941E;
	font-weight: 700;
	font-size: clamp(1.5rem, 2.25vw, 2.25rem);
	text-align: center;
	line-height: 1.2;
}

.is-style-silverline-icon-heading-light,
.silverline-icon-heading-light {
	color: #F7941E;
	font-weight: 400;
	font-size: clamp(1.5rem, 2.25vw, 2.25rem);
	text-align: center;
	line-height: 1.2;
}

/*
 * Suppress Kadence's auto-rendered page title bar on every WP page (post_type=page).
 * All top-level pages in this build (homepage, services, about, reports) carry
 * their own .silverline-section--hero treatment that already includes the page
 * title as a styled H1. Letting Kadence also render an entry-hero stacks a
 * redundant title bar above the page's real hero. Posts (blog) keep the title
 * bar since blog post templates rely on it.
 */
body.page .entry-hero,
body.page .kadence-title-bar,
body.page .entry-hero-container-inner {
	display: none;
}

body.page .content-area,
body.page .content-area > .site-container,
body.page article.entry,
body.page article.entry > .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/*
 * Force Inter on body + headings. Theme.json sets fontFamily but Kadence's
 * generated CSS for h1–h6 wins specificity, falling back to system-ui.
 * Explicit element selectors here let our child stylesheet (loaded after
 * Kadence parent) reassert Inter via the CSS variable set by theme.json.
 */
body,
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
	font-family: var(--wp--preset--font-family--inter, "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif);
}

/* The homepage content already spans the viewport's usable width. Avoid the
 * parent's 100vw breakout, which adds horizontal scrolling with scrollbars. */
.home .entry-content > .alignfull {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

/* Match the publication grid's padded logo canvases without stretching the
 * taller Houston Chronicle artwork. Keep its row box at the shared height. */
.home .entry-content img.wp-image-1511 {
	box-sizing: border-box;
	height: 59px;
	object-fit: contain;
	padding: 10px 20px;
	width: 140px;
}

/* Longevity proof: shared baselines and stronger hierarchy, using the
 * existing orange section background and white text. */
.home .silverline-proof {
	color: #ffffff;
	padding-block: clamp(3rem, 5vw, 5rem);
	padding-inline: 1.5rem;
}
.home .silverline-proof__grid {
	display: flex;
	gap: 0;
}
.home .silverline-proof__stat {
	flex: 1 1 0;
	min-width: 0;
	padding-inline: clamp(1.5rem, 3vw, 3rem);
}
.home .silverline-proof__stat + .silverline-proof__stat {
	border-left: 1px solid rgb(255 255 255 / 35%);
	margin-top: 0;
}
.home .silverline-proof__number {
	color: inherit;
	font-size: clamp(4rem, 7.5vw, 6rem);
	font-variant-numeric: lining-nums tabular-nums;
	font-weight: 600;
	letter-spacing: -0.055em;
	line-height: 1;
	margin: 0;
}
.home .silverline-proof__label {
	color: inherit;
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.4;
	margin: 1.5rem 0 0;
	max-width: 19ch;
}
@media (max-width: 767px) {
	.home .silverline-proof { padding-block: 1.5rem; }
	.home .silverline-proof__grid { flex-direction: column; }
	.home .silverline-proof__stat {
		align-items: center;
		display: grid;
		gap: 1.5rem;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		padding: 1.5rem 0;
	}
	.home .silverline-proof__stat + .silverline-proof__stat {
		border-left: 0;
		border-top: 1px solid rgb(255 255 255 / 35%);
	}
	.home .silverline-proof__number { font-size: clamp(3rem, 13vw, 4rem); }
	.home .silverline-proof__label { font-size: 1rem; margin: 0; }
}

/* Production service photography: static by default, bounded desktop movement. */
.silverline-service-photo {
  position: relative;
  height: 348px;
  overflow: hidden;
  margin-block: 0 !important;
}
.silverline-service-photo > .wp-block-image {
  position: absolute;
  inset: -124px 0;
  width: 100%;
  max-width: none;
  margin: 0;
}
.silverline-service-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}
.silverline-service-photo--public-affairs-advocacy img { object-position: 52.67% 70.41%; }
.silverline-service-photo--thought-leadership img { object-position: 50.27% 92.01%; }
@media (max-width: 767px) {
  .silverline-service-photo { height: 240px; }
}
@media (max-width: 767px), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .silverline-service-photo > .wp-block-image { inset: 0; transform: none !important; }
}

/* Connected event photography, preserving the originals' proportions. */
.silverline-community-carousel { margin-block: 0 !important; background: #fff; }
.silverline-community-track {
  --photo-height: 300px;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  margin: 0;
}
.silverline-community-track > .wp-block-image {
  flex: 0 0 auto;
  height: var(--photo-height);
  margin: 0;
  scroll-snap-align: start;
}
.silverline-community-track img { width: 100%; height: 100%; object-fit: contain; display: block; }
.silverline-community-photo-1 { width: calc(var(--photo-height) * 1.5); }
.silverline-community-photo-2 { width: calc(var(--photo-height) * 720 / 723); }
.silverline-community-photo-3 { width: calc(var(--photo-height) * 1719 / 1289); }
.silverline-community-photo-4 { width: calc(var(--photo-height) * 2398 / 1410); }
.silverline-community-photo-5 { width: calc(var(--photo-height) * 1.25); }
.silverline-community-controls { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 24px; margin: 0; }
.silverline-community-controls[hidden] { display: none; }
.silverline-community-controls button { min-width: 44px; min-height: 44px; padding: 8px 14px; background: #2d96aa; color: #fff; font-size: 24px; line-height: 1; border: 0; cursor: pointer; }
.silverline-community-controls button:disabled { opacity: .4; cursor: default; }
.silverline-community-controls button:focus-visible, .silverline-community-track:focus-visible { outline: 3px solid #333; outline-offset: -3px; }
@media (max-width: 767px) {
  .silverline-community-track { --photo-height: 220px; }
  .silverline-community-controls { padding: 8px 16px; }
}

/* Entry collection forms: readable on white and orange report sections. */
.gform_wrapper form.silverline-capture-form {
  background: #fff;
  color: #333;
  padding: 32px;
  --gf-color-primary: #237787;
  --gf-color-primary-contrast: #fff;
  --gf-color-in-ctrl: #fff;
  --gf-color-in-ctrl-contrast: #333;
}
.gform_wrapper form.silverline-capture-form .gfield_label,
.gform_wrapper form.silverline-capture-form .ginput_complex label,
.gform_wrapper form.silverline-capture-form .gfield_description,
.gform_wrapper form.silverline-capture-form .gfield_consent_label,
.gform_wrapper form.silverline-capture-form .gchoice label { color: #333; }
.gform_wrapper form.silverline-capture-form a { color: #176676; text-decoration: underline; }
.gform_confirmation_wrapper { background: #fff; color: #333; padding: 24px; }
@media (max-width: 767px) {
  .gform_wrapper form.silverline-capture-form { padding: 20px 16px; }
}

body .gform_wrapper form.silverline-capture-form input[type="submit"] {
  background: #237787;
  color: #fff;
  border-radius: 0;
  min-height: 44px;
  padding: 12px 28px;
}

/* Option B leadership biographies and managed policy. */
.silverline-bio-hero h1, .silverline-policy-hero h1 { color: #fff; font-size: clamp(36px, 5vw, 56px); font-weight: 300; line-height: 1.1; letter-spacing: -.02em; margin: 0; }
.silverline-bio-back { margin: 0 0 28px; font-size: 14px; }
.silverline-bio-back a { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.silverline-bio-role { margin: 20px 0 0; color: #fff; font-size: 22px; }
.silverline-bio-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 64px; align-items: start; }
.silverline-bio-portrait { max-width: 360px; }
.silverline-bio-portrait figure { margin: 0; }
.silverline-bio-portrait img { width: 100%; height: auto; display: block; }
.silverline-bio-contact { margin-top: 24px; font-size: 16px; }
.silverline-bio-copy { margin: 0; font-size: 18px; line-height: 1.7; max-width: 70ch; }
.silverline-bio-copy p { margin: 0 0 24px; }
.silverline-bio-copy .silverline-bio-lead { font-size: 21px; line-height: 1.6; }
.silverline-bio-contact a, .silverline-bio-copy a, .silverline-bio-articles a, .silverline-policy a { color: #176676; text-decoration: underline; text-underline-offset: 3px; }
.silverline-bio-insights { background: #f4f4f4; }
.silverline-bio-insights h2, .silverline-bio-cta h2 { font-size: clamp(30px, 4vw, 42px); font-weight: 300; line-height: 1.2; }
.silverline-bio-articles { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 36px; }
.silverline-bio-articles article { border-top: 1px solid #bbb; padding-top: 20px; }
.silverline-bio-articles time { color: #555; font-size: 14px; }
.silverline-bio-articles h3 { font-size: 22px; font-weight: 500; line-height: 1.4; margin-top: 14px; }
.silverline-bio-cta { color: #fff; }
.silverline-bio-cta .silverline-btn { display: inline-block; background: #237787; color: #fff; padding: 14px 28px; text-decoration: none; font-size: 16px; }
.silverline-policy { font-size: 17px; line-height: 1.7; overflow-wrap: anywhere; }
.silverline-policy h2 { margin-top: 40px; font-size: 28px; line-height: 1.3; }
.silverline-policy #policy { width: 100%; max-width: 100%; }
.silverline-policy table { display: block; max-width: 100%; overflow-x: auto; }
@media (max-width: 767px) {
 .silverline-bio-grid { grid-template-columns: 1fr; gap: 36px; }
 .silverline-bio-portrait { max-width: 320px; }
 .silverline-bio-articles { grid-template-columns: 1fr; gap: 24px; }
 .silverline-bio-copy .silverline-bio-lead { font-size: 20px; }
}

/* Balance unpadded publication wordmarks against the existing logo canvases. */
.silverline-publication-logo--orion,
.silverline-publication-logo--sabj { width: 170px; max-width: 100%; align-self: center; justify-self: center; }
.silverline-publication-logo--orion img,
.silverline-publication-logo--sabj img { width: 76.47% !important; height: auto; display: block; margin-inline: auto; }
.silverline-publication-logo--sabj img { filter: brightness(0); opacity: .8; }

/* Analytics consent controls; equal-weight accept/decline actions. */
.silverline-cookie-banner { position: fixed; bottom: 20px; left: 20px; z-index: 9999; width: min(420px, calc(100% - 40px)); padding: 24px; background: #fff; color: #333; box-shadow: 0 4px 24px #0003; font-size: 15px; line-height: 1.5; }
.silverline-cookie-banner[hidden] { display: none; }
.silverline-cookie-banner p { margin: 0 0 16px; }
.silverline-cookie-banner a { color: #176676; text-decoration: underline; }
.silverline-cookie-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.silverline-cookie-actions button { background: #237787; color: #fff; min-height: 44px; padding: 10px 16px; font-size: 14px; }
.silverline-cookie-preferences { display: inline-block; background: transparent; color: inherit; text-decoration: underline; min-height: 44px; padding: 8px; font-size: inherit; }
.silverline-cookie-banner button:focus-visible, .silverline-cookie-preferences:focus-visible { outline: 3px solid #333; outline-offset: 3px; }
