/*
Theme Name: Twenty Twenty-Five LSNC
Theme URI: https://wordpress.lsnc.net/
Description: A professional Twenty Twenty-Five child theme for LSNC Regulation Summaries.
Author: Legal Services of Northern California
Template: twentytwentyfive
Version: 1.0.1
Text Domain: twentytwentyfive-lsnc
*/
/* =========================================================
   GLOBAL VARIABLES
========================================================= */
:root {
	--lsnc-teal: #087f70;
	--lsnc-teal-dark: #05695f;
	--lsnc-teal-light: #0c9b89;
	--lsnc-navy: #153a5b;
	--lsnc-blue: #1f5f8b;
	--lsnc-sky: #eaf3f8;
	--lsnc-gold: #e4bd57;
	--lsnc-ink: #17212b;
	--lsnc-muted: #5e6a75;
	--lsnc-line: #d9e1e7;
	--lsnc-surface: #f7f9fb;
	--lsnc-white: #ffffff;
}
/* =========================================================
   GLOBAL
========================================================= */
html {
	scroll-behavior: smooth;
}
body {
	color: var(--lsnc-ink);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
a {
	text-underline-offset: .18em;
}
/* =========================================================
   SITE HEADER
========================================================= */
.lsnc-site-header {
	position: relative;
	z-index: 20;
	padding-block: 0 !important;
	border-bottom: 4px solid var(--lsnc-gold);
	background:
		linear-gradient(
			120deg,
			var(--lsnc-teal-dark),
			var(--lsnc-teal)
		);
	box-shadow: 0 5px 20px rgb(5 67 61 / 18%);
	color: var(--lsnc-white);
}
/* Main header row */
.lsnc-site-header > .wp-block-group {
	min-height: 84px;
	gap: clamp(1.5rem, 4vw, 4rem);
	padding-block: 16px;
}
/* Site title */
.lsnc-site-header .wp-block-site-title {
	max-width: 290px;
	margin: 0;
	font-size: clamp(1.15rem, 2vw, 1.45rem) !important;
	font-weight: 800 !important;
	line-height: 1.08 !important;
	letter-spacing: -.02em;
}
.lsnc-site-header .wp-block-site-title a {
	color: var(--lsnc-white);
	text-decoration: none;
}
.lsnc-site-header .wp-block-site-title a:hover {
	color: var(--lsnc-gold);
}
/* Site tagline, if WordPress still displays it */
.lsnc-site-header .wp-block-site-tagline {
	max-width: 340px;
	margin-top: 4px !important;
	color: rgb(255 255 255 / 78%) !important;
	font-size: .75rem !important;
	line-height: 1.25;
}
/* Logo */
.lsnc-site-header .wp-block-site-logo img {
	max-height: 54px;
	width: auto;
}
/* =========================================================
   DESKTOP NAVIGATION
========================================================= */
.lsnc-site-header .wp-block-navigation {
	margin-left: auto;
	color: var(--lsnc-white);
	font-size: .95rem;
	font-weight: 700;
}
.lsnc-site-header .wp-block-navigation__container {
	justify-content: flex-end;
	column-gap: clamp(.35rem, 1vw, .8rem) !important;
	row-gap: .45rem !important;
}
.lsnc-site-header .wp-block-navigation-item {
	position: relative;
	background: transparent;
}
.lsnc-site-header .wp-block-navigation-item__content {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: .6rem .85rem;
	border-radius: 7px;
	color: var(--lsnc-white) !important;
	line-height: 1.2;
	text-decoration: none !important;
	transition:
		color .2s ease,
		background-color .2s ease,
		transform .2s ease;
}
.lsnc-site-header .wp-block-navigation-item__content:hover {
	background: rgb(255 255 255 / 12%);
	color: var(--lsnc-gold) !important;
	transform: translateY(-1px);
}
.lsnc-site-header
.current-menu-item
> .wp-block-navigation-item__content,
.lsnc-site-header
.current-menu-ancestor
> .wp-block-navigation-item__content {
	background: rgb(255 255 255 / 14%);
	color: var(--lsnc-gold) !important;
}
/* Active menu underline */
.lsnc-site-header
.current-menu-item
> .wp-block-navigation-item__content::after {
	position: absolute;
	right: .85rem;
	bottom: 4px;
	left: .85rem;
	height: 2px;
	border-radius: 2px;
	background: var(--lsnc-gold);
	content: "";
}
/* Dropdown */
.lsnc-site-header
.wp-block-navigation__submenu-container {
	min-width: 230px !important;
	padding: .5rem !important;
	border: 1px solid rgb(255 255 255 / 18%) !important;
	border-radius: 10px !important;
	background: var(--lsnc-teal-dark) !important;
	box-shadow: 0 15px 35px rgb(0 0 0 / 22%) !important;
}
.lsnc-site-header
.wp-block-navigation__submenu-container
.wp-block-navigation-item__content {
	width: 100%;
	padding: .7rem .8rem;
}
/* Mobile menu button */
.lsnc-site-header .wp-block-navigation__responsive-container-open {
	padding: .5rem;
	border: 1px solid rgb(255 255 255 / 30%);
	border-radius: 7px;
	color: var(--lsnc-white);
}
.lsnc-site-header
.wp-block-navigation__responsive-container-open:hover {
	background: rgb(255 255 255 / 12%);
}
/* =========================================================
   HOME HERO
========================================================= */
.lsnc-hero {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(
			120deg,
			rgb(21 58 91 / 98%),
			rgb(31 95 139 / 94%)
		);
	color: var(--lsnc-white);
}
.lsnc-hero::after {
	position: absolute;
	top: -180px;
	right: -130px;
	width: 520px;
	height: 520px;
	border: 1px solid rgb(255 255 255 / 8%);
	border-radius: 50%;
	background: rgb(255 255 255 / 3%);
	content: "";
	pointer-events: none;
}
.lsnc-hero h1 {
	position: relative;
	z-index: 1;
	max-width: 760px;
	text-shadow: 0 3px 12px rgb(0 0 0 / 14%);
}
.lsnc-hero p {
	position: relative;
	z-index: 1;
	max-width: 730px;
	color: rgb(255 255 255 / 88%);
}
.lsnc-hero a {
	color: inherit;
}
/* =========================================================
   LATEST UPDATES HEADING
========================================================= */
.lsnc-post-list {
	margin-top: 0;
}
.lsnc-post-list + * {
	margin-top: var(--wp--preset--spacing--50);
}
/* =========================================================
   POST CARDS
========================================================= */
.lsnc-post-card {
	position: relative;
	overflow: hidden;
	padding: clamp(1.5rem, 3vw, 2.4rem);
	border: 1px solid var(--lsnc-line);
	border-radius: 14px;
	background: var(--lsnc-white);
	box-shadow: 0 8px 28px rgb(21 58 91 / 7%);
	transition:
		border-color .2s ease,
		box-shadow .2s ease,
		transform .2s ease;
}
.lsnc-post-card::before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 5px;
	background:
		linear-gradient(
			to bottom,
			var(--lsnc-teal),
			var(--lsnc-blue)
		);
	content: "";
	opacity: .85;
	transition: width .2s ease;
}
.lsnc-post-card:hover {
	transform: translateY(-3px);
	border-color: #adc8c3;
	box-shadow: 0 14px 38px rgb(21 58 91 / 13%);
}
.lsnc-post-card:hover::before {
	width: 8px;
}
/* Post title */
.lsnc-post-card .wp-block-post-title {
	max-width: 950px;
	margin-block: .65rem .85rem;
	font-size: clamp(1.45rem, 2.3vw, 2rem);
	font-weight: 750;
	line-height: 1.17;
	letter-spacing: -.028em;
}
.lsnc-post-card .wp-block-post-title a {
	display: inline;
	color: var(--lsnc-navy);
	text-decoration: none;
	background-image:
		linear-gradient(
			var(--lsnc-gold),
			var(--lsnc-gold)
		);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 3px;
	transition:
		color .2s ease,
		background-size .25s ease;
}
.lsnc-post-card .wp-block-post-title a:hover {
	color: var(--lsnc-teal-dark);
	background-size: 100% 3px;
}
/* Post excerpt */
.lsnc-post-card .wp-block-post-excerpt {
	max-width: 940px;
	color: var(--lsnc-muted);
	font-size: 1rem;
	line-height: 1.68;
}
.lsnc-post-card .wp-block-post-excerpt p {
	margin-bottom: 0;
}
.lsnc-post-card .wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	margin-top: .8rem;
	padding: .5rem .8rem;
	border-radius: 6px;
	background: var(--lsnc-sky);
	color: var(--lsnc-blue);
	font-size: .9rem;
	font-weight: 750;
	text-decoration: none;
	transition:
		background-color .2s ease,
		color .2s ease,
		transform .2s ease;
}
.lsnc-post-card .wp-block-post-excerpt__more-link::after {
	margin-left: .3rem;
	content: "→";
	transition: transform .2s ease;
}
.lsnc-post-card .wp-block-post-excerpt__more-link:hover {
	background: var(--lsnc-teal);
	color: var(--lsnc-white);
	transform: translateY(-1px);
}
.lsnc-post-card
.wp-block-post-excerpt__more-link:hover::after {
	transform: translateX(3px);
}
/* =========================================================
   POST META
========================================================= */
.lsnc-post-meta,
.lsnc-post-meta a {
	color: var(--lsnc-muted);
	font-size: .78rem;
	font-weight: 750;
	letter-spacing: .045em;
	text-decoration: none;
	text-transform: uppercase;
}
.lsnc-post-meta {
	column-gap: .6rem !important;
	row-gap: .3rem !important;
}
.lsnc-post-meta a:hover {
	color: var(--lsnc-teal);
}
/* =========================================================
   INDIVIDUAL POST HEADER
========================================================= */
.lsnc-single-header {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--lsnc-line);
	background:
		linear-gradient(
			135deg,
			#f8fafb,
			var(--lsnc-sky)
		);
}
.lsnc-single-header::after {
	position: absolute;
	top: -150px;
	right: -120px;
	width: 450px;
	height: 450px;
	border: 55px solid rgb(31 95 139 / 4%);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}
.lsnc-single-header > .wp-block-group {
	position: relative;
	z-index: 1;
}
/* Individual post title */
.lsnc-single-title {
	position: relative;
	max-width: 980px;
	margin-top: 1.2rem !important;
	padding-left: clamp(1rem, 2vw, 1.4rem);
	color: var(--lsnc-navy);
	font-size: clamp(2.15rem, 4.25vw, 3.75rem);
	font-weight: 780;
	line-height: 1.08;
	letter-spacing: -.042em;
}
.lsnc-single-title::before {
	position: absolute;
	top: .08em;
	bottom: .08em;
	left: 0;
	width: 6px;
	border-radius: 5px;
	background:
		linear-gradient(
			to bottom,
			var(--lsnc-gold),
			var(--lsnc-teal)
		);
	content: "";
}
/* =========================================================
   ARTICLE CONTENT
========================================================= */
.lsnc-article-content {
	font-size: clamp(1.05rem, 1.5vw, 1.18rem);
	line-height: 1.78;
}
.lsnc-article-content > :where(p, ul, ol, blockquote) {
	margin-block: 0 1.35em;
}
.lsnc-article-content :where(h2, h3, h4) {
	margin-top: 1.8em;
	margin-bottom: .65em;
	color: var(--lsnc-navy);
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: -.02em;
}
.lsnc-article-content h2 {
	padding-bottom: .4rem;
	border-bottom: 2px solid var(--lsnc-sky);
}
.lsnc-article-content a {
	color: var(--lsnc-blue);
	font-weight: 550;
}
.lsnc-article-content a:hover {
	color: var(--lsnc-teal);
}
.lsnc-article-content blockquote {
	padding: 1.1rem 1.4rem;
	border-left: 4px solid var(--lsnc-gold);
	background: var(--lsnc-surface);
}
.lsnc-article-content table {
	width: 100%;
	border-collapse: collapse;
}
.lsnc-article-content :where(th, td) {
	padding: .75rem;
	border: 1px solid var(--lsnc-line);
}
.lsnc-article-content th {
	background: var(--lsnc-sky);
	color: var(--lsnc-navy);
}
/* =========================================================
   PAGINATION
========================================================= */
.lsnc-pagination {
	gap: .45rem !important;
}
.lsnc-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: .4rem .7rem;
	border: 1px solid var(--lsnc-line);
	border-radius: 7px;
	color: var(--lsnc-navy);
	text-decoration: none;
}
.lsnc-pagination .current,
.lsnc-pagination a:hover {
	border-color: var(--lsnc-teal);
	background: var(--lsnc-teal);
	color: var(--lsnc-white);
}
/* =========================================================
   PREVIOUS / NEXT POST
========================================================= */
.lsnc-post-navigation {
	gap: 2rem;
}
.lsnc-post-navigation > div {
	flex: 1 1 0;
}
.lsnc-post-navigation
.wp-block-post-navigation-link__label {
	display: block;
	margin-bottom: .35rem;
	color: var(--lsnc-muted);
	font-size: .76rem;
	font-weight: 750;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.lsnc-post-navigation a {
	color: var(--lsnc-navy);
	font-weight: 700;
	line-height: 1.35;
	text-decoration: none;
}
.lsnc-post-navigation a:hover {
	color: var(--lsnc-teal);
	text-decoration: underline;
}
/* =========================================================
   SEARCH
========================================================= */
.wp-block-search__inside-wrapper {
	overflow: hidden;
	border-radius: 10px !important;
}
.wp-block-search__input {
	min-height: 54px;
	padding-inline: 1.1rem !important;
}
.wp-block-search__button {
	min-width: 64px;
	border-radius: 8px !important;
	background: var(--lsnc-navy) !important;
	color: var(--lsnc-white) !important;
}
.wp-block-search__button:hover {
	background: var(--lsnc-teal) !important;
}
/* =========================================================
   FOOTER
========================================================= */
.lsnc-site-footer {
	border-top: 4px solid var(--lsnc-gold);
	background:
		linear-gradient(
			120deg,
			var(--lsnc-teal-dark),
			var(--lsnc-teal)
		) !important;
}
/* =========================================================
   MOBILE
========================================================= */
@media (max-width: 781px) {
	.lsnc-site-header > .wp-block-group {
		min-height: 70px;
		padding-block: 12px;
	}
	.lsnc-site-header .wp-block-site-title {
		max-width: 220px;
		font-size: 1.08rem !important;
	}
	.lsnc-site-header .wp-block-site-tagline {
		display: none;
	}
	/* WordPress mobile navigation panel */
	.lsnc-site-header
	.wp-block-navigation__responsive-container.is-menu-open {
		padding: 1.5rem;
		background: var(--lsnc-teal-dark) !important;
		color: var(--lsnc-white) !important;
	}
	.lsnc-site-header
	.wp-block-navigation__responsive-container-close {
		color: var(--lsnc-white);
	}
	.lsnc-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container {
		width: 100%;
		align-items: stretch;
		gap: .4rem !important;
	}
	.lsnc-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item {
		width: 100%;
	}
	.lsnc-site-header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item__content {
		width: 100%;
		padding: .8rem 1rem;
	}
	.lsnc-post-card {
		padding: 1.35rem 1.25rem 1.35rem 1.45rem;
		border-radius: 10px;
	}
	.lsnc-post-card .wp-block-post-title {
		font-size: 1.4rem; 
	}
	.lsnc-single-title {
		padding-left: 1rem;
		font-size: clamp(2rem, 9vw, 3rem);
	}
	.lsnc-single-title::before {
		width: 5px;
	}
	.lsnc-post-navigation {
		align-items: flex-start !important;
		flex-direction: column;
	}
	.lsnc-post-navigation > div {
		width: 100%;
	}
}
@media (max-width: 480px) {
	.lsnc-hero h1 {
		font-size: 2.45rem !important;
	}
	.lsnc-post-card .wp-block-post-title {
		font-size: 1.3rem;
	}
	.lsnc-single-title {
		font-size: 2rem;
	}
}
/* ==========================================================
   CLASSIC LSNC MENU
========================================================== */

.lsnc-menu-bar{

    background:#14998d;
    border:none;
    box-shadow:none;
    padding:0;
}

.lsnc-main-menu{
    width:100%;
}

.lsnc-main-menu .wp-block-navigation__container{

    justify-content:center;
    gap:0 !important;

    /* This is the fix */
    align-items:center !important;
}

.lsnc-main-menu .wp-block-navigation-item{

    margin:0;
}

.lsnc-main-menu .wp-block-navigation-item__content{

    padding:18px 26px !important;

    color:#fff !important;

    font-size:1.05rem;

    font-weight:700;

    line-height:1;

    text-decoration:none !important;

    transition:
        background-color .20s ease,
        color .20s ease;
}

/* Fix vertical alignment */
.lsnc-main-menu .wp-block-navigation-item__label{

    display:flex;
    align-items:center;
    line-height:1;
}

.lsnc-main-menu .wp-block-navigation-item__content:hover{

    background:#0f8d82;

    color:#ffe38c !important;
}

.lsnc-main-menu .current-menu-item > .wp-block-navigation-item__content,
.lsnc-main-menu .current-menu-ancestor > .wp-block-navigation-item__content{

    background:#0b756b;

    color:#ffe38c !important;
}
/* =========================================================
   OLD-SITE STYLE MENU BAR
========================================================= */
.lsnc-menu-bar{
    background:#14998e;
    border:none;
    box-shadow:none;
}
.lsnc-main-menu {
	width: 100%;
}
.lsnc-main-menu .wp-block-navigation__container {
	width: 100%;
	justify-content: center;
	column-gap: 0 !important;
}
.lsnc-main-menu .wp-block-navigation-item {
	margin: 0;
}
.lsnc-main-menu .wp-block-navigation-item__content{

    color:#fff !important;
    font-size:1.05rem;
    font-weight:700;
    min-height:58px;
    padding:0 26px;
    transition:.25s;
}
.lsnc-main-menu .wp-block-navigation-item__content:hover{
    background:#0f8d82;
    color:#ffe28a !important;
}
.lsnc-main-menu
.current-menu-item
.lsnc-main-menu .current-menu-item>.wp-block-navigation-item__content{
    background:#0a746a;
    color:#ffe28a !important;
}
.lsnc-main-menu
.current-menu-item
> .wp-block-navigation-item__content::after {
	position: absolute;
	right: 18px;
	bottom: 0;
	left: 18px;
	height: 4px;
	border-radius: 4px 4px 0 0;
	background: var(--lsnc-gold);
	content: "";
}
/* =========================================================
   LATEST UPDATES WITHOUT BLUE HERO
========================================================= */
.lsnc-updates-section {
	padding-top: clamp(42px, 6vw, 75px) !important;
}
.lsnc-updates-header {
	gap: 25px;
}
.lsnc-updates-title {
	position: relative;
	margin: 0;
	padding-bottom: 12px;
	font-size: clamp(2rem, 4vw, 2.8rem) !important;
	font-weight: 780;
	letter-spacing: -.035em;
}
.lsnc-updates-title::after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 74px;
	height: 4px;
	border-radius: 4px;
	background: var(--lsnc-gold);
	content: "";
}
/* =========================================================
   MOBILE MENU
========================================================= */
@media (max-width: 781px) {
	.lsnc-brand-header {
		padding-block: 24px;
	}
	.lsnc-brand-title-row {
		justify-content: flex-start !important;
	}
	.lsnc-brand-title {
		font-size: 1.75rem !important;
	}
	.lsnc-brand-tagline {
		font-size: .9rem !important;
	}
	.lsnc-menu-bar {
		display: flex;
		justify-content: flex-end;
		min-height: 58px;
		padding-block: 8px;
	}
	.lsnc-main-menu {
		display: flex;
		justify-content: flex-end;
	}
	.lsnc-main-menu
	.wp-block-navigation__responsive-container-open {
		padding: 8px;
		border: 1px solid rgb(255 255 255 / 35%);
		border-radius: 6px;
		color: #fff;
	}
	.lsnc-main-menu
	.wp-block-navigation__responsive-container.is-menu-open {
		padding: 1.5rem;
		background: var(--lsnc-teal-dark) !important;
		color: #fff !important;
	}
	.lsnc-main-menu
	.wp-block-navigation__responsive-container-close {
		color: #fff;
	}
	.lsnc-main-menu
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container {
		align-items: stretch;
		width: 100%;
	}
	.lsnc-main-menu
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item {
		width: 100%;
	}
	.lsnc-main-menu
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item__content {
		width: 100%;
		min-height: auto;
		padding: 14px 12px;
	}
	.lsnc-updates-header {
		align-items: stretch !important;
	}
	.lsnc-updates-header .wp-block-search {
		width: 100%;
		max-width: none;
	}
}
/* =========================================================
   SMALLER, BALANCED FONT SIZES
========================================================= */
/* Website title */
.lsnc-old-title {
	font-size: clamp(1.7rem, 2.4vw, 2.25rem) !important;
	line-height: 1.08 !important;
}
/* Header tagline */
.lsnc-old-tagline {
	font-size: .92rem !important;
}
/* Latest Updates */
.lsnc-updates-title {
	font-size: clamp(1.65rem, 2.3vw, 2rem) !important;
}
/* Titles in the post listing */
.lsnc-post-card .wp-block-post-title {
	font-size: clamp(1.2rem, 1.7vw, 1.5rem) !important;
	line-height: 1.25 !important;
}
/* Title on an opened post */
.lsnc-single-title {
	max-width: 850px;
	font-size: clamp(1.75rem, 2.6vw, 2.5rem) !important;
	line-height: 1.15 !important;
	letter-spacing: -.025em !important;
}
/* Article text */
.lsnc-article-content {
	font-size: 1rem !important;
	line-height: 1.7 !important;
}
@media (max-width: 781px) {
	.lsnc-old-title {
		font-size: 1.6rem !important;
	}
	.lsnc-updates-title {
		font-size: 1.65rem !important;
	}
	.lsnc-post-card .wp-block-post-title {
		font-size: 1.2rem !important;
	}
	.lsnc-single-title {
		font-size: 1.75rem !important;
	}
}
/* =========================================================
   FORCE SINGLE POST TITLE SIZE
========================================================= */

.single .wp-block-post-title,
.single h1.wp-block-post-title,
.single .entry-title,
.wp-block-post-title.is-layout-flow {
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 2.2rem !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    letter-spacing: -.02em !important;
    color: #17324a !important;
    margin-bottom: 1rem !important;
}