/*
Theme Name: Sedo Press Astra Child
Theme URI: https://sedopressmaine.com/
Description: Astra child theme for Sedo Press Maine.
Author: Sedo Press Maine
Template: astra
Version: 1.0.2
Text Domain: sedopress-astra-child
*/
:root {
	--bone:#F4EEF1;
	--bone-deep:#E9DEE5;
	--bone-card:#FBF7F9;
	--ink:#241726;
	--pine:#3C2743;
	--pine-deep:#281831;
	--pine-soft:#574061;
	--pine-line:#4E3656;
	--brass:#B0894A;
	--brass-soft:#C9A45F;
	--rose:#BC8089;
	--sage:#B6A2B4;
	--text:var(--ink);
	--text-muted:#6A5E68;
	--heading:var(--pine);
	--accent:var(--brass);
	--accent-hover:var(--brass-soft);
	--eyebrow:var(--brass);
	--border:#DDD0DA;
	--card-bg:var(--bone-card);
	--page-bg:var(--bone);
	--focus-ring:rgba(176,137,74,.5);
	--font-display:'DM Serif Display', Georgia, 'Times New Roman', serif;
	--font-body:'Spectral', Georgia, serif;
	--font-ui:'Jost', system-ui, sans-serif;
	--fs-hero:clamp(3.2rem, 8.5vw, 7.5rem);
	--fs-h1:clamp(2.6rem, 5vw, 4.5rem);
	--fs-h2:clamp(2rem, 3.6vw, 3.1rem);
	--fs-h3:1.55rem;
	--fs-lead:clamp(1.2rem, 1.6vw, 1.5rem);
	--fs-body:1.18rem;
	--fs-small:.95rem;
	--fs-eyebrow:.74rem;
	--lh-tight:1.02;
	--lh-snug:1.16;
	--lh-body:1.62;
	--sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem;
	--sp-5:1.5rem; --sp-6:2rem; --sp-7:3rem; --sp-8:4rem;
	--sp-9:6rem; --sp-10:8rem; --sp-11:11rem;
	--r-sm:3px; --r-md:6px; --r-lg:12px; --r-xl:20px; --r-full:999px;
	--shadow-sm:0 1px 2px rgba(37,24,38,.06), 0 3px 10px rgba(37,24,38,.05);
	--shadow-md:0 8px 26px rgba(37,24,38,.10), 0 3px 8px rgba(37,24,38,.06);
	--shadow-lg:0 26px 64px rgba(37,24,38,.20), 0 8px 20px rgba(37,24,38,.12);
	--ease:cubic-bezier(.22,.61,.36,1);
	--ease-out:cubic-bezier(.16,1,.3,1);
	--dur:480ms;
	--dur-slow:820ms;
}

body {
	background:var(--page-bg);
	color:var(--text);
	font-family:var(--font-body);
	font-size:var(--fs-body);
	line-height:var(--lh-body);
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	overflow-x:hidden;
}

body.home .site,
body.home .site-content,
body.home .ast-container,
body.home .content-area,
body.home .site-main {
	display:block;
	margin:0;
	padding:0;
	max-width:none;
	width:100%;
}

body.home .entry-header,
body.home .entry-content {
	margin:0;
	padding:0;
}

.sedo-site-main *,
.sedo-nav *,
.sedo-footer * {
	box-sizing:border-box;
}

.sedo-site-main img {
	display:block;
	max-width:100%;
}

.sedo-site-main a,
.sedo-nav a,
.sedo-footer a {
	color:inherit;
	text-decoration:none;
}

.sedo-site-main :focus-visible,
.sedo-nav :focus-visible,
.sedo-footer :focus-visible {
	outline:3px solid var(--focus-ring);
	outline-offset:3px;
	border-radius:2px;
}

.sedo-site-main h1,
.sedo-site-main h2,
.sedo-site-main h3 {
	color:var(--heading);
	font-family:var(--font-display);
	font-weight:500;
	margin:0;
}

.sedo-site-main h1 {
	font-size:var(--fs-h1);
	letter-spacing:0;
	line-height:var(--lh-tight);
}

.sedo-site-main h2 {
	font-size:var(--fs-h2);
	letter-spacing:0;
	line-height:var(--lh-snug);
}

.sedo-site-main h3 {
	font-size:var(--fs-h3);
	line-height:1.22;
}

.sedo-site-main p,
.sedo-footer p {
	margin:0;
	max-width:62ch;
	text-wrap:pretty;
}

.sedo-wrap {
	margin:0 auto;
	max-width:1240px;
	padding:0 clamp(1.25rem, 5vw, 4rem);
	width:100%;
}

.sedo-wrap-narrow {
	max-width:880px;
}

.sedo-section {
	padding:clamp(4.5rem, 11vh, 9rem) 0;
	position:relative;
}

.sedo-band-paper {
	background:var(--bone);
	color:var(--ink);
}

.sedo-band-paper-deep {
	background:var(--bone-deep);
	color:var(--ink);
}

.sedo-band-deep {
	background:var(--pine);
	color:var(--bone);
}

.sedo-band-deep h1,
.sedo-band-deep h2,
.sedo-band-deep h3 {
	color:var(--bone);
}

.sedo-band-deep .sedo-lead {
	color:rgba(247,242,232,.74);
}

.sedo-band-deep .sedo-muted {
	color:rgba(247,242,232,.66);
}

.sedo-band-deep .sedo-eyebrow {
	color:var(--brass-soft);
}

.sedo-eyebrow {
	color:var(--eyebrow);
	display:inline-block;
	font-family:var(--font-ui);
	font-size:var(--fs-eyebrow);
	font-weight:500;
	letter-spacing:.32em;
	text-transform:uppercase;
}

.sedo-lead {
	color:var(--text-muted);
	font-size:var(--fs-lead);
	font-weight:300;
	line-height:1.5;
}

.sedo-muted {
	color:var(--text-muted);
}

.sedo-center {
	text-align:center;
}

.sedo-center-p {
	margin-left:auto;
	margin-right:auto;
}

.sedo-center .sedo-center-p {
	text-align:center;
}

.sedo-rule {
	align-items:center;
	color:var(--accent);
	display:flex;
	gap:var(--sp-3);
}

.sedo-rule:before,
.sedo-rule:after {
	background:currentColor;
	content:"";
	flex:1 1 auto;
	height:1px;
	max-width:90px;
	opacity:.5;
}

.sedo-rule.sedo-left:before {
	display:none;
}

.sedo-rule.sedo-left:after {
	max-width:64px;
}

.sedo-dot {
	background:transparent;
	border:1px solid currentColor;
	display:block;
	height:6px;
	transform:rotate(45deg);
	width:6px;
}

.sedo-btn {
	align-items:center;
	border:1px solid transparent;
	border-radius:var(--r-full);
	cursor:pointer;
	display:inline-flex;
	font-family:var(--font-ui);
	font-size:.82rem;
	font-weight:500;
	gap:.6rem;
	letter-spacing:.16em;
	padding:.95rem 1.7rem;
	text-transform:uppercase;
	transition:all var(--dur) var(--ease);
	white-space:nowrap;
}

.sedo-arr {
	transition:transform var(--dur) var(--ease);
}

.sedo-btn:hover .sedo-arr,
.sedo-tlink:hover .sedo-arr {
	transform:translateX(4px);
}

.sedo-btn-solid {
	background:var(--pine);
	color:var(--bone);
}

.sedo-btn-solid:hover {
	background:var(--pine-deep);
	box-shadow:var(--shadow-md);
	transform:translateY(-1px);
}

.sedo-btn-brass {
	background:var(--brass);
	color:#fff;
}

.sedo-btn-brass:hover {
	background:var(--brass-soft);
	box-shadow:var(--shadow-md);
	color:#fff;
	transform:translateY(-1px);
}

.sedo-band-deep .sedo-btn-solid {
	background:var(--bone);
	color:var(--pine);
}

.sedo-band-deep .sedo-btn-solid:hover {
	background:#fff;
}

.sedo-tlink {
	align-items:center;
	border-bottom:1px solid currentColor;
	color:var(--accent);
	display:inline-flex;
	font-family:var(--font-ui);
	font-size:.82rem;
	font-weight:500;
	gap:.5rem;
	letter-spacing:.14em;
	padding-bottom:3px;
	text-transform:uppercase;
	transition:gap var(--dur) var(--ease), color var(--dur) var(--ease);
}

.sedo-tlink:hover {
	color:var(--accent-hover);
	gap:.8rem;
}

.sedo-reveal {
	opacity:1;
	transform:none;
	transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}

.sedo-reveal.sedo-in {
	opacity:1;
	transform:none;
}

.sedo-d1 { transition-delay:.08s; }
.sedo-d2 { transition-delay:.16s; }
.sedo-d3 { transition-delay:.24s; }
.sedo-d4 { transition-delay:.32s; }

.sedo-img-treat {
	filter:saturate(.82) contrast(1.02);
	height:100%;
	object-fit:cover;
	width:100%;
}

.sedo-img-frame {
	border-radius:var(--r-md);
	box-shadow:var(--shadow-lg);
	overflow:hidden;
	position:relative;
}

.sedo-img-frame:after {
	background:linear-gradient(180deg, rgba(60,39,67,.05), rgba(60,39,67,.24));
	content:"";
	inset:0;
	mix-blend-mode:multiply;
	pointer-events:none;
	position:absolute;
}

.wm-text {
	color:var(--bone);
	font-family:var(--font-display);
	font-size:1.5rem;
	font-weight:600;
	letter-spacing:0;
	line-height:1;
	white-space:nowrap;
}

.wm-dot {
	color:var(--brass-soft);
}

.sedo-footer-brand .wm-text {
	font-size:1.7rem;
}

.sedo-nav {
	background:rgba(40,24,49,.94);
	backdrop-filter:saturate(1.1) blur(10px);
	border-bottom:1px solid rgba(247,242,232,.10);
	position:sticky;
	top:0;
	z-index:60;
}

.sedo-nav-inner {
	align-items:center;
	display:grid;
	gap:var(--sp-5);
	grid-template-columns:1fr auto 1fr;
	height:68px;
}

.sedo-nav-brand {
	align-items:center;
	display:flex;
	justify-self:start;
}

.sedo-nav-links {
	display:flex;
	gap:clamp(1rem, 2.4vw, 2.4rem);
	justify-self:center;
}

.sedo-nav-links a {
	color:rgba(247,242,232,.82);
	font-family:var(--font-ui);
	font-size:.78rem;
	font-weight:400;
	letter-spacing:.18em;
	padding:.4rem 0;
	position:relative;
	text-transform:uppercase;
	transition:color var(--dur) var(--ease);
}

.sedo-nav-links a:after {
	background:var(--brass-soft);
	bottom:-2px;
	content:"";
	height:1px;
	left:0;
	position:absolute;
	right:100%;
	transition:right var(--dur) var(--ease);
}

.sedo-nav-links a:hover {
	color:#fff;
}

.sedo-nav-links a:hover:after {
	right:0;
}

.sedo-nav-cta {
	background:var(--brass-soft);
	border-radius:var(--r-full);
	color:var(--pine);
	font-family:var(--font-ui);
	font-size:.76rem;
	font-weight:500;
	justify-self:end;
	letter-spacing:.16em;
	padding:.55rem 1.1rem;
	text-transform:uppercase;
	transition:background var(--dur) var(--ease);
}

.sedo-nav-cta:hover {
	background:#fff;
	color:var(--pine);
}

.sedo-nav-toggle {
	background:none;
	border:0;
	cursor:pointer;
	display:none;
	flex-direction:column;
	gap:5px;
	justify-self:end;
	padding:8px;
}

.sedo-nav-toggle span {
	background:var(--bone);
	display:block;
	height:1.5px;
	width:22px;
}

.sedo-nav-mobile {
	background:var(--pine-deep);
	display:flex;
	flex-direction:column;
	gap:.2rem;
	padding:var(--sp-4) var(--sp-5);
}

.sedo-nav-mobile[hidden] {
	display:none;
}

.sedo-nav-mobile a {
	border-bottom:1px solid rgba(247,242,232,.08);
	color:rgba(247,242,232,.86);
	font-family:var(--font-ui);
	font-size:.8rem;
	letter-spacing:.16em;
	padding:.7rem 0;
	text-transform:uppercase;
}

.sedo-hero {
	padding-bottom:clamp(3.5rem, 9vh, 7rem);
	padding-top:clamp(3.5rem, 8vh, 6.5rem);
}

.sedo-hero-grid {
	align-items:center;
	display:grid;
	gap:clamp(2rem, 5vw, 5rem);
	grid-template-columns:1.05fr .95fr;
}

.sedo-hero-title {
	font-size:var(--fs-hero);
	font-weight:500;
	letter-spacing:0;
	line-height:var(--lh-tight);
	margin:var(--sp-5) 0 var(--sp-6);
}

.sedo-hero-title em {
	color:var(--accent);
	font-style:italic;
	font-weight:500;
}

.sedo-hero-lead {
	max-width:46ch;
}

.sedo-hero-actions {
	align-items:center;
	display:flex;
	flex-wrap:wrap;
	gap:var(--sp-6);
	margin-top:var(--sp-7);
}

.sedo-hero-figure {
	margin:0;
}

.sedo-hero-figure .sedo-img-frame {
	aspect-ratio:4 / 5;
}

.sedo-hero-cap {
	color:var(--text-muted);
	font-family:var(--font-ui);
	font-size:.72rem;
	letter-spacing:.12em;
	margin-top:var(--sp-4);
	text-align:right;
	text-transform:uppercase;
}

.sedo-sec-head {
	margin-bottom:var(--sp-8);
	max-width:64ch;
}

.sedo-sec-head.sedo-center {
	margin-left:auto;
	margin-right:auto;
}

.sedo-sec-head h2,
#newsletter h2 {
	margin:var(--sp-3) 0 var(--sp-4);
}

.sedo-about-grid {
	align-items:start;
	display:grid;
	gap:clamp(2rem, 6vw, 6rem);
	grid-template-columns:1fr 1.15fr;
}

.sedo-about-head h2 {
	margin:var(--sp-4) 0 var(--sp-5);
}

.sedo-about-body {
	display:flex;
	flex-direction:column;
	gap:var(--sp-5);
}

.sedo-about-body .sedo-lead {
	color:var(--text);
	font-weight:400;
}

.sedo-band-deep .sedo-about-body .sedo-lead {
	color:var(--bone);
}

.sedo-cat-grid {
	display:grid;
	gap:var(--sp-5);
	grid-template-columns:repeat(3, 1fr);
}

.sedo-card {
	background:var(--card-bg);
	border:1px solid var(--border);
	border-radius:var(--r-lg);
	box-shadow:var(--shadow-sm);
	padding:var(--sp-6);
	transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.sedo-cat-card {
	display:flex;
	flex-direction:column;
}

.sedo-cat-card:hover {
	box-shadow:var(--shadow-md);
	transform:translateY(-5px);
}

.sedo-cat-num {
	color:var(--accent);
	font-family:var(--font-display);
	font-size:2.6rem;
	font-style:italic;
	font-weight:500;
	line-height:1;
	margin-bottom:var(--sp-4);
}

.sedo-cat-card h3 {
	margin-bottom:var(--sp-4);
}

.sedo-hairline {
	background:var(--border);
	border:0;
	height:1px;
	width:100%;
}

.sedo-cat-line {
	background:var(--accent);
	height:2px;
	margin-bottom:var(--sp-4);
	opacity:.55;
	width:38px;
}

.sedo-approach-grid {
	align-items:center;
	display:grid;
	gap:clamp(2rem, 6vw, 5.5rem);
	grid-template-columns:.9fr 1.1fr;
}

.sedo-approach-figure {
	margin:0;
}

.sedo-approach-figure .sedo-img-frame {
	aspect-ratio:3 / 4;
}

.sedo-approach-copy h2 {
	margin:var(--sp-4) 0 var(--sp-5);
}

.sedo-approach-list {
	display:flex;
	flex-direction:column;
	gap:var(--sp-5);
	list-style:none;
	margin:var(--sp-7) 0 0;
	padding:0;
}

.sedo-approach-list li {
	border-left:2px solid var(--accent);
	padding-left:var(--sp-5);
}

.sedo-approach-list h3 {
	font-size:1.3rem;
	margin-bottom:.3rem;
}

.sedo-approach-list p {
	max-width:52ch;
}

.sedo-avail-grid {
	display:grid;
	gap:clamp(1.5rem, 4vw, 3.5rem);
	grid-template-columns:repeat(3, 1fr);
	margin-top:var(--sp-7);
}

.sedo-avail-item {
	border-top:1px solid var(--border);
	padding-top:var(--sp-4);
}

.sedo-avail-mark {
	color:var(--accent);
	display:block;
	font-size:1rem;
	margin-bottom:var(--sp-4);
}

.sedo-avail-item h3 {
	font-size:1.35rem;
	margin-bottom:var(--sp-3);
}

.sedo-sub-inner {
	align-items:center;
	display:flex;
	flex-direction:column;
	gap:var(--sp-5);
}

.sedo-sub-inner h2 {
	margin-top:var(--sp-3);
}

.sedo-news-form {
	display:flex;
	flex-wrap:wrap;
	gap:var(--sp-3);
	justify-content:center;
	margin-top:var(--sp-6);
}

.sedo-news-form input {
	background:var(--card-bg);
	border:1px solid var(--border);
	border-radius:var(--r-full);
	color:var(--text);
	font-family:var(--font-body);
	font-size:1.05rem;
	min-width:280px;
	padding:.9rem 1.2rem;
}

.sedo-news-form input:focus-visible {
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--focus-ring);
	outline:none;
}

.sedo-news-thanks {
	color:var(--accent);
	font-family:var(--font-display);
	font-size:1.5rem;
	font-style:italic;
	margin-top:var(--sp-6);
}

.sedo-dot-rose {
	color:var(--rose);
}

.sedo-footer {
	padding:var(--sp-9) 0 var(--sp-6);
}

.sedo-footer-top {
	align-items:start;
	border-bottom:1px solid var(--pine-line);
	display:grid;
	gap:clamp(2rem, 6vw, 5rem);
	grid-template-columns:1fr 1fr;
	padding-bottom:var(--sp-7);
}

.sedo-footer-tag {
	color:rgba(247,242,232,.6);
	font-family:var(--font-ui);
	font-size:.76rem;
	letter-spacing:.14em;
	line-height:1.7;
	margin-top:var(--sp-4);
	max-width:34ch;
	text-transform:uppercase;
}

.sedo-footer-contact {
	align-items:flex-start;
	display:flex;
	flex-direction:column;
	gap:var(--sp-3);
}

.sedo-contact-email {
	border-bottom:1px solid transparent;
	color:var(--accent);
	font-family:var(--font-body);
	font-size:1.05rem;
	font-style:normal;
	font-weight:500;
	transition:border-color var(--dur) var(--ease);
}

.sedo-contact-email:hover {
	border-bottom-color:currentColor;
	color:var(--accent-hover);
}

.sedo-footer-note {
	color:rgba(247,242,232,.68);
	font-size:1.02rem;
	max-width:44ch;
}

.sedo-footer-mid {
	padding:var(--sp-6) 0 var(--sp-2);
}

.sedo-footer-nav {
	display:flex;
	flex-wrap:wrap;
	gap:clamp(1rem, 3vw, 2.5rem);
	justify-content:center;
}

.sedo-footer-nav a {
	color:rgba(247,242,232,.78);
	font-family:var(--font-ui);
	font-size:.78rem;
	letter-spacing:.16em;
	text-transform:uppercase;
	transition:color var(--dur) var(--ease);
}

.sedo-footer-nav a:hover {
	color:var(--brass-soft);
}

.sedo-footer-base {
	align-items:center;
	display:flex;
	gap:var(--sp-4);
	justify-content:center;
	margin-top:var(--sp-4);
}

.sedo-footer-base span {
	color:rgba(247,242,232,.5);
	font-family:var(--font-ui);
	font-size:.74rem;
	letter-spacing:.08em;
}

.sedo-footer-motif {
	color:var(--brass-soft);
}

@media (max-width: 860px) {
	.sedo-hero-grid,
	.sedo-approach-grid {
		grid-template-columns:1fr;
	}

	.sedo-hero-figure,
	.sedo-approach-figure {
		order:-1;
	}

	.sedo-hero-figure .sedo-img-frame,
	.sedo-approach-figure .sedo-img-frame {
		aspect-ratio:16 / 10;
	}

	.sedo-hero-cap {
		text-align:left;
	}
}

@media (max-width: 820px) {
	.sedo-about-grid,
	.sedo-cat-grid,
	.sedo-avail-grid {
		grid-template-columns:1fr;
	}
}

@media (max-width: 760px) {
	.sedo-nav-inner {
		grid-template-columns:1fr auto;
	}

	.sedo-nav-links,
	.sedo-nav-cta {
		display:none;
	}

	.sedo-nav-toggle {
		display:flex;
	}

	.sedo-footer-top {
		grid-template-columns:1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior:auto;
	}

	.sedo-reveal {
		opacity:1;
		transform:none;
		transition:none;
	}
}
