/*
Theme Name: Jefferson International Theme
Description: A black-and-white brutalist child theme for Thryve Corporate, with Jefferson International logos, editable block layouts and parent-theme placeholder photography.
Author: Jefferson International
Template: thryve-corporate
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jefferson-international-theme
Tags: one-column, custom-logo, custom-menu, full-site-editing, block-patterns, editor-style, wide-blocks
*/
:root { --ji-gutter: clamp(20px, 4vw, 64px); --ji-section: clamp(64px, 8vw, 112px); }
html { scroll-behavior: auto; }
body { margin: 0; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.ji-shell { width: min(var(--wp--style--global--wide-size, 1280px), calc(100% - var(--ji-gutter) * 2)); margin-inline: auto !important; }
.ji-reading { width: min(920px, calc(100% - var(--ji-gutter) * 2)); margin-inline: auto !important; }
.ji-section { padding-block: var(--ji-section); margin: 0; }
.ji-main { margin: 0 !important; }
.ji-header { background: #fff; color: #000; border-bottom: 1px solid #000; }
.ji-header-row { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding-block: 24px; }
.ji-brand-logo { width: 320px; max-width: 100%; flex-shrink: 0; margin: 0; }
.ji-brand-logo a { display: block; }
.ji-brand-logo img { display: block; width: 100%; height: auto; }
.ji-nav { margin: 0 !important; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.ji-nav .wp-block-navigation__container { gap: 32px; }
.ji-nav a { color: inherit; text-decoration: none; }
.ji-nav .wp-block-navigation-item__content:hover { text-decoration: underline; text-underline-offset: 6px; }
.ji-nav .wp-block-navigation-item__content::after { display: none; }
.ji-hero { padding-block: 64px; }
.ji-hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; align-items: stretch; gap: 48px; }
.ji-hero-copy { padding-block: 24px; }
.ji-eyebrow { font-size: 12px; line-height: 1.5; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 32px; }
.ji-hero-title { font-size: clamp(48px, 6.3vw, 92px); line-height: .95; letter-spacing: -.055em; margin: 0 0 32px; }
.ji-lead { font-size: clamp(18px, 1.6vw, 22px); max-width: 36ch; }
.ji-hero-photo { margin: 0 !important; min-height: 100%; }
.ji-hero-photo img { display: block; width: 100%; height: 100%; min-height: 560px; object-fit: cover; object-position: center; filter: grayscale(100%); }
.ji-hero .wp-block-buttons { margin-top: 32px; }
.wp-block-button__link { border-radius: 0; padding: 16px 24px; box-shadow: none; }
.ji-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0; margin-top: 48px; border-top: 2px solid #000; border-bottom: 1px solid #000; }
.ji-service-card { margin: 0 !important; padding: 32px; }
.ji-service-card:first-child { padding-left: 0; }
.ji-service-card:last-child { padding-right: 0; }
.ji-service-card + .ji-service-card { border-left: 1px solid #000; }
.ji-service-number { font-size: 14px; font-weight: 700; margin: 0 0 48px; }
.ji-service-card h3 { font-size: 28px; letter-spacing: -.035em; line-height: 1.1; max-width: 13ch; }
.ji-service-card p:last-child { margin-bottom: 0; font-size: 17px; }
.ji-about { border-top: 1px solid #000; }
.ji-about-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(32px, 7vw, 112px); }
.ji-about-photo { margin: 0 !important; }
.ji-about-photo img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; filter: grayscale(100%); }
.ji-about-copy { margin: 0 !important; }
.ji-about-copy h2 { font-size: clamp(36px, 4.5vw, 64px); margin-block: 0 32px; }
.ji-contact { background: #000; color: #fff; }
.ji-contact h1, .ji-contact h2 { color: #fff; font-size: clamp(44px, 6vw, 80px); }
.ji-contact a, .ji-footer a { color: #fff; }
.ji-contact-details { margin-top: 40px; }
.ji-contact-details a { overflow-wrap: anywhere; text-underline-offset: 6px; }
.ji-contact-email { font-size: clamp(20px, 2.6vw, 32px); font-weight: 700; }
.ji-footer { background: #000; color: #fff; padding-block: 64px; border-top: 1px solid #fff; }
.ji-footer-row { display: flex; justify-content: space-between; gap: 64px; }
.ji-footer-brand .ji-eyebrow { margin: 32px 0 8px; }
.ji-footer-caption { margin: 0; font-size: 14px; }
.ji-footer-links { margin: 0 !important; min-width: 220px; }
.ji-footer-links h2 { color: #fff; font-size: 32px; margin-top: 0; }
.ji-footer-links p { font-size: 16px; }
.ji-skip-link { position: absolute; left: -9999px; top: 8px; padding: 16px; background: #fff; color: #000; z-index: 100000; border: 2px solid #000; }
.ji-skip-link:focus { left: 8px; }
:where(a,button,input,textarea,select,summary):focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.ji-contact :focus-visible, .ji-footer :focus-visible { outline-color: #fff; }
.ji-main, .ji-footer { overflow-wrap: break-word; }
/* Neutralise decorative parent treatments while preserving its layout classes. */
.thryve-has-box-shadow { box-shadow: none; }
.main-header ul.wp-block-navigation__submenu-container { border-radius: 0 !important; box-shadow: none !important; }
.wow { visibility: visible !important; animation: none !important; }
.wp-block-search__input { outline-offset: 4px; }
.wp-block-search__input:focus-visible { outline: 3px solid currentColor; }
@media (max-width: 900px) {
  .ji-header-row { gap: 24px; }
  .ji-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .ji-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
  .ji-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 32px; }
  .ji-nav .wp-block-navigation__responsive-container-content { align-items: flex-start !important; }
  .ji-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; font-size: 24px; }
  .ji-hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .ji-hero-photo img { min-height: 0; height: 380px; }
  .ji-hero-title { font-size: clamp(48px, 10vw, 80px); }
  .ji-services-grid { grid-template-columns: 1fr; }
  .ji-service-card, .ji-service-card:first-child, .ji-service-card:last-child { padding: 32px 0; }
  .ji-service-card + .ji-service-card { border-left: 0; border-top: 1px solid #000; }
  .ji-service-number { margin-bottom: 24px; }
  .ji-service-card h3 { max-width: none; }
  .ji-about-grid { grid-template-columns: 1fr; }
  .ji-about-photo img { aspect-ratio: 4 / 3; }
}
@media (max-width: 600px) {
  :root { --ji-gutter: 20px; }
  .ji-header-row { padding-block: 20px; gap: 16px; }
  .ji-brand-logo { width: 240px; }
  .ji-hero { padding-block: 32px 0; }
  .ji-hero-copy { padding-top: 16px; }
  .ji-hero-photo img { height: 300px; }
  .ji-eyebrow { font-size: 10px; margin-bottom: 24px; }
  .ji-footer-row { flex-direction: column; gap: 48px; }
}
@media (max-width: 359px) {
  :root { --ji-gutter: 16px; }
  .ji-header-row { gap: 16px; }
  .ji-nav .wp-block-navigation__responsive-container-open { padding: 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (max-width: 600px) {
  .ji-contact h1, .ji-contact h2 { font-size: clamp(29px, 8.9vw, 44px); }
}
