/* ==========================================================================
   Reset (from the parent theme bethree/style.css, inlined here so the browser
   downloads one stylesheet less before the first paint; inc/performance.php
   dequeues the parent file). Keep in sync if the parent reset ever changes.
   ========================================================================== */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}html{scroll-behavior:smooth}body{line-height:1}a{text-decoration-skip-ink:auto}:where(a[href^="tel"]){color:inherit;text-decoration:none}button{outline:0}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}q{display:inline;font-style:italic}q:before{content:'"';font-style:normal}q:after{content:'"';font-style:normal}textarea,input[type="text"],input[type="button"],input[type="submit"],input[type="reset"],input[type="search"],input[type="password"]{-webkit-appearance:none;appearance:none;border-radius:0}input[type="search"]{-webkit-appearance:textfield}table{border-collapse:collapse;border-spacing:0}th,td{padding:2px}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:super}sub{vertical-align:sub}dd{margin-left:20px}kbd,tt{font-family:courier;font-size:12px}ins{text-decoration:underline}del,strike,s{text-decoration:line-through}dt{font-weight:bold}address,cite,var{font-style:italic}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important;word-break:normal}
.screen-reader-text:focus{background-color:#f7f7f7;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;-webkit-clip-path:none;clip-path:none;color:#007acc;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
.skip-link{left:-9999rem;top:2.5rem;z-index:999999999;text-decoration:underline}
.skip-link:focus{display:block;left:6px;top:7px;font-size:14px;font-weight:600;text-decoration:none;line-height:normal;padding:15px 23px 14px;z-index:100000;right:auto}

/* ==========================================================================
   BeThree Child – main.css (orthozs.gr)
   Global stylesheet. Per-page styles: assets/css/pages/{key}.css (inc/enqueue.php).
   Source of truth: the handoff design files design/*.dc.html + HANDOFF.md §3–4.

   1. Fonts        5. Buttons, chips, links      9. Header
   2. Tokens       6. Section heading, hero      10. Footer
   3. Base         7. Shared components          11. Motion
   4. Layout       8. Forms
   ========================================================================== */


/* 1. Fonts ------------------------------------------------------------------
   Geologica, self-hosted variable font (300–700), one woff2 per subset.
   -------------------------------------------------------------------------- */
@font-face {
	font-family: "Geologica";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/geologica-greek.woff2") format("woff2");
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
	font-family: "Geologica";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/geologica-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* 2. Tokens (HANDOFF.md §3) --------------------------------------------------- */
:root {
	--be-olive: #3D4232;      /* buttons, dark blocks */
	--be-olive-deep: #2E3224; /* top bar, footer */
	--be-olive-darker: #262A1E;
	--be-olive-mid: #5A6150;  /* lines on dark */
	--be-sage: #C9C7B8;       /* secondary text on dark */
	--be-sage-light: #DDD9CC;
	--be-cream-light: #EFEBE1;
	--be-sand: #EDE6DC;       /* hero, alternate sections, button hover */
	--be-cream: #F5F2EA;      /* page background */
	--be-line: #E3DCCD;       /* borders on light */
	--be-line-2: #D5CCBB;     /* dividers on sand */
	--be-brown: #7D5F43;      /* eyebrows, small accents */
	--be-text: #2B2D23;
	--be-text-2: #3E4036;     /* long-form text */
	--be-muted: #5E5F52;
	--be-white: #FFFFFF;

	--be-font: "Geologica", system-ui, -apple-system, "Segoe UI", sans-serif;
	--be-ease: cubic-bezier(.7, 0, .2, 1);

	--be-h1-size: 60px;
	--be-h2-size: 44px;

	/* Sections: .be_row padding only, no max-width (BeThree standard: 100 / 60 / 20px). */
	--be-pad-x: 100px;
	--be-pad-y: 96px;
	--be-header-h: 84px;
	--be-radius: 20px;
}

@media (max-width: 1024px) {
	:root {
		--be-h1-size: 48px;
		--be-h2-size: 36px;
		--be-pad-x: 60px;
		--be-pad-y: 80px;
	}
}

@media (max-width: 700px) {
	:root {
		--be-h1-size: 38px;
		--be-h2-size: 30px;
		--be-pad-x: 20px;
		--be-pad-y: 64px;
	}
}


/* 3. Base ------------------------------------------------------------------ */
html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--be-header-h) + 16px);
}

body {
	font-family: var(--be-font);
	font-size: 17px;
	line-height: 1.6;
	color: var(--be-text);
	background: var(--be-cream);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
svg {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--be-olive);
}

a:hover {
	color: var(--be-olive-deep);
}

strong,
b {
	font-weight: 700;
}

em,
i {
	font-style: italic;
}

[hidden] {
	display: none !important;
}

:focus-visible {
	outline: 2px solid var(--be-brown);
	outline-offset: 3px;
}


/* 4. Layout ------------------------------------------------------------------ */
.be_row {
	padding: var(--be-pad-y) var(--be-pad-x);
}

.be_bg-white { background: var(--be-white); }
.be_bg-cream { background: var(--be-cream); }
.be_bg-sand { background: var(--be-sand); }
.be_bg-olive { background: var(--be-olive); color: var(--be-cream-light); }
.be_bg-deep { background: var(--be-olive-deep); color: var(--be-cream-light); }

/* Two columns: heading left (1fr), content right (2fr) – doctor bio, research, FAQ */
.be_split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 56px;
	align-items: start;
}

@media (max-width: 1024px) {
	.be_split {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}
}


/* 5. Buttons, chips, links ----------------------------------------------------
   Fill-sweep (client requirement): no movement, shadow or zoom on hover. ::before
   wipes in from the left (scaleX 0→1, 0.55s) and leaves to the right on hover-out;
   the text colour changes with it. Same on :focus-visible.
   -------------------------------------------------------------------------- */
.be_btn,
.be_chip {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 44px;
	border-radius: 999px;
	text-decoration: none;
	font-family: var(--be-font);
	line-height: 1.2;
	cursor: pointer;
	transition: color .45s var(--be-ease), border-color .45s var(--be-ease);
}

.be_btn::before,
.be_chip::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;
	border-radius: inherit;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform .55s var(--be-ease);
}

.be_btn:hover::before,
.be_btn:focus-visible::before,
a.be_chip:hover::before,
a.be_chip:focus-visible::before {
	transform: scaleX(1);
	transform-origin: left center;
}

.be_btn {
	padding: 16px 28px;
	border: 1px solid transparent;
	font-size: 16px;
	font-weight: 700;
}

.be_btn--sm {
	padding: 10px 18px;
	font-size: 14px;
	white-space: nowrap;
}

.be_btn--md {
	padding: 14px 22px;
	font-size: 15px;
}

/* green: olive → sand */
.be_btn--green {
	background: var(--be-olive);
	border-color: var(--be-olive);
	color: var(--be-white);
}

.be_btn--green::before { background: var(--be-sand); }
.be_btn--green:hover,
.be_btn--green:focus-visible { color: var(--be-text); }

/* outline: olive border → olive fill */
.be_btn--outline {
	background: transparent;
	border-color: var(--be-olive);
	color: var(--be-olive);
	font-weight: 600;
}

.be_btn--outline::before { background: var(--be-olive); }
.be_btn--outline:hover,
.be_btn--outline:focus-visible { color: var(--be-white); }

/* beige: sand on dark sections → olive */
.be_btn--beige {
	background: var(--be-sand);
	border-color: var(--be-sand);
	color: var(--be-text);
}

.be_btn--beige::before { background: var(--be-olive); }
.be_btn--beige:hover,
.be_btn--beige:focus-visible { color: var(--be-sand); }

/* ghost-light: sand outline on dark sections → sand fill */
.be_btn--ghost-light {
	background: transparent;
	border-color: var(--be-sand);
	color: var(--be-sand);
	font-weight: 600;
}

.be_btn--ghost-light::before { background: var(--be-sand); }
.be_btn--ghost-light:hover,
.be_btn--ghost-light:focus-visible { color: var(--be-text); }

.be_btn .be_icon {
	flex-shrink: 0;
}

.be_btns {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* chip: thin border → olive */
.be_chip {
	padding: 10px 18px;
	border: 1px solid var(--be-line);
	color: var(--be-text);
	font-size: 15px;
}

.be_chip::before { background: var(--be-olive); }
a.be_chip:hover,
a.be_chip:focus-visible {
	color: var(--be-white);
	border-color: var(--be-olive);
}

.be_chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.be_chips-label {
	font-size: 15px;
	font-weight: 600;
	color: var(--be-muted);
}

/* «Βιογραφικό →» style text links */
.be_more {
	font-size: 15px;
	font-weight: 700;
	color: var(--be-olive);
	text-decoration: none;
	transition: color .25s;
}

.be_more--sm {
	font-size: 14px;
}

a.be_more:hover,
.be_card-hover:hover .be_more {
	color: var(--be-olive-deep);
}

/* Not-yet-published targets render as text */
.is-pending {
	cursor: default;
}


/* 6. Section heading, hero --------------------------------------------------- */
.be_eyebrow {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: 1.5px;
	font-weight: 700;
	color: var(--be-brown);
}

.be_h1 {
	font-size: var(--be-h1-size);
	line-height: 1.08;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--be-text);
}

.be_title {
	font-size: var(--be-h2-size);
	line-height: 1.15;
	font-weight: 600;
	letter-spacing: -0.02em;
}

.be_title--xl {
	font-size: calc(var(--be-h2-size) + 4px);
	line-height: 1.12;
}

.be_lead {
	font-size: 17px;
	line-height: 1.6;
	color: var(--be-muted);
}

.be_lead--hero {
	font-size: 19px;
	max-width: 600px;
}

.be_head {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 640px;
	margin-bottom: 40px;
}

.be_head--wide {
	max-width: 720px;
}

.be_split > .be_head,
.be_head-row .be_head {
	margin-bottom: 0;
}

.be_head-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px 40px;
	margin-bottom: 32px;
}

/* On dark sections */
.be_bg-olive .be_title,
.be_bg-deep .be_title,
.be_head--dark .be_title {
	color: var(--be-white);
}

.be_bg-olive .be_lead,
.be_bg-deep .be_lead,
.be_head--dark .be_lead {
	color: var(--be-sage-light);
}

.be_bg-deep .be_eyebrow,
.be_bg-olive .be_eyebrow {
	color: var(--be-sage);
}

/* Hero: first section of every page; slides up under the glass header pill */
.be_hero {
	margin-top: calc(-1 * var(--be-header-h));
	padding-top: calc(var(--be-header-h) + 48px);
	background: var(--be-sand);
}

.be_facts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	margin: 0;
	padding: 22px 0 0;
	list-style: none;
	border-top: 1px solid var(--be-line-2);
	font-size: 14px;
	line-height: 1.5;
	color: var(--be-muted);
}

/* Breadcrumb */
.be_breadcrumb {
	font-size: 14px;
	color: var(--be-muted);
}

.be_breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
}

.be_breadcrumb a {
	color: var(--be-muted);
	text-decoration: none;
	transition: color .25s;
}

.be_breadcrumb a:hover {
	color: var(--be-olive);
}

.be_breadcrumb [aria-current] {
	color: var(--be-text);
	font-weight: 600;
}

/* Generic page hero (contact, legal…) */
.be_page-hero {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding-bottom: 88px;
}

.be_page-hero-text {
	display: flex;
	flex-direction: column;
	gap: 24px;
	max-width: 760px;
}


/* 7. Shared components -------------------------------------------------------- */

/* Card hover = colour only (explicit client requirement: no translate/shadow/zoom) */
.be_card-hover {
	transition: background-color .25s, border-color .25s, color .25s;
}

/* Long-form text (WYSIWYG) */
.be_prose {
	display: flex;
	flex-direction: column;
	max-width: 860px;
	gap: 20px;
	font-size: 17px;
	line-height: 1.75;
	color: var(--be-text-2);
}

.be_prose a {
	font-weight: 600;
}

.be_prose ul,
.be_prose ol {
	padding-left: 22px;
}

.be_prose h3 {
	font-size: 22px;
	line-height: 1.3;
	font-weight: 600;
	color: var(--be-text);
}

/* Arrow rows («Πού πονάτε;» lists) */
.be_arrow {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--be-line);
	color: var(--be-text);
	text-decoration: none;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	transition: color .25s;
}

.be_arrow .be_icon {
	flex-shrink: 0;
	color: var(--be-olive);
}

a.be_arrow:hover {
	color: var(--be-olive);
}

span.be_arrow .be_icon {
	opacity: .35;
}

/* FAQ: <details name="…"> = exclusive accordion without JS; answers stay in the HTML */
.be_faq {
	display: flex;
	flex-direction: column;
}

.be_faq-item {
	border-bottom: 1px solid var(--be-line);
}

.be_faq-q {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	min-height: 44px;
	padding: 22px 0;
	list-style: none;
	cursor: pointer;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--be-text);
}

.be_faq-q::-webkit-details-marker {
	display: none;
}

.be_faq-sign::before {
	content: "+";
	font-size: 24px;
	font-weight: 400;
	color: var(--be-olive);
}

.be_faq-item[open] .be_faq-sign::before {
	content: "−";
}

.be_faq-a {
	padding: 0 0 22px;
	font-size: 16px;
	line-height: 1.6;
	color: var(--be-muted);
}

.be_faq-a p + p {
	margin-top: 12px;
}

/* Phone cards + contact list (olive sections) */
.be_phone-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}

a.be_phone-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px;
	border-radius: 16px;
	background: var(--be-olive-deep);
	color: var(--be-white);
	text-decoration: none;
}

a.be_phone-card:hover {
	background: var(--be-olive-darker);
	color: var(--be-white);
}

.be_phone-card-name {
	font-size: 14px;
	color: var(--be-sage);
}

.be_phone-card-num {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
}

.be_contact-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	list-style: none;
	font-size: 16px;
	line-height: 1.5;
}

.be_contact-list li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.be_contact-list .be_icon {
	flex-shrink: 0;
	margin-top: 3px;
	color: var(--be-sage);
}

.be_contact-list a {
	color: var(--be-white);
	text-underline-offset: 3px;
}

.be_contact-list a:hover {
	color: var(--be-sand);
}

/* Map: Google Maps iframe */
.be_map {
	position: relative;
	min-height: 400px;
	border-radius: var(--be-radius);
	overflow: hidden;
	background: var(--be-sand);
}

.be_map-frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	border: 0;
}

/* Appointment grid: text + map/form (homepage «Κλείστε ραντεβού», contact page) */
.be_appointment,
.be_contact-main {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px;
	align-items: start;
}

.be_appointment-text,
.be_contact-call {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

@media (max-width: 1024px) {
	.be_appointment,
	.be_contact-main {
		grid-template-columns: minmax(0, 1fr);
	}
}


/* Doctor cards (homepage, Το Ιατρείο: template-parts/doctor-cards.php) */
.be_doc-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 24px;
}

.be_doc-card {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	overflow: hidden;
	border-radius: var(--be-radius);
	background: var(--be-white);
}

.be_doc-card:hover {
	background: var(--be-sand);
}

.be_doc-card-img {
	flex: 1 1 220px;
	min-width: 0;
	height: 380px;
	object-fit: cover;
	object-position: center 18%;
	display: block;
}

.be_doc-card-body {
	flex: 1 1 280px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 32px;
}

.be_doc-card-name {
	font-size: 28px;
	line-height: 1.2;
	font-weight: 600;
}

.be_doc-card-role {
	font-size: 15px;
	font-weight: 600;
	color: var(--be-olive);
}

.be_doc-card-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-left: 18px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--be-muted);
}

.be_doc-card .be_more {
	margin-top: auto;
}

/* The whole card is clickable through the «Βιογραφικό →» link */
.be_stretched::after {
	content: "";
	position: absolute;
	inset: 0;
}

@media (max-width: 700px) {
	.be_doc-card-img {
		height: 340px;
	}

	.be_doc-card-body {
		padding: 24px 20px;
	}
}

/* Article cards (template-parts/post-card.php: homepage, blog, related posts) */
.be_post-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

@media (max-width: 1100px) {
	.be_post-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.be_post-cards {
		grid-template-columns: minmax(0, 1fr);
	}
}

.be_post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--be-radius);
	background: var(--be-white);
	color: var(--be-text);
	text-decoration: none;
}

.be_post-card:hover {
	background: var(--be-sand);
	color: var(--be-text);
}

.be_post-card-media {
	display: block;
	aspect-ratio: 8 / 5;
	background: var(--be-line);
}

.be_post-card-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.be_post-card-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 24px;
}

.be_post-card-cat {
	font-size: 13px;
	font-weight: 700;
	color: var(--be-olive);
}

.be_post-card-title {
	font-size: 19px;
	line-height: 1.35;
	font-weight: 700;
}

.be_post-card-title a {
	color: var(--be-text);
	text-decoration: none;
}

.be_post-card-meta {
	margin-top: auto;
	padding-top: 6px;
	font-size: 13px;
	color: var(--be-muted);
}

.be_post-card-body {
	flex: 1;
}

.be_post-card:focus-within {
	outline: 2px solid var(--be-brown);
	outline-offset: 3px;
}

.be_post-card a:focus-visible {
	outline: none;
}

/* Appointment band (doctor pages, article, Το Ιατρείο) */
.be_cta-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.be_cta-band-text {
	flex: 1 1 520px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.be_cta-band .be_title {
	font-size: calc(var(--be-h2-size) + 4px);
	line-height: 1.12;
}

.be_cta-band .be_btn {
	font-size: 17px;
}

/* Numbered step cards (homepage «Η διαδικασία», Το Ιατρείο) */
.be_steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
	gap: 24px;
	list-style: none;
}

.be_step {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 28px;
	border-radius: var(--be-radius);
	background: var(--be-white);
}

.be_step:hover,
.be_bg-white .be_step:hover {
	background: var(--be-sand);
}

/* On a white section the cards are cream */
.be_bg-white .be_step {
	background: var(--be-cream);
}

.be_step-num {
	font-size: 36px;
	line-height: 1.2;
	font-weight: 600;
	color: var(--be-olive);
}

.be_step-title {
	font-size: 18px;
	line-height: 1.35;
	font-weight: 700;
}

.be_step-text {
	font-size: 15px;
	line-height: 1.6;
	color: var(--be-muted);
}

/* Filter / jump pills (blog categories, hub page sections) */
.be_blog-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.be_filter {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 20px;
	border: 1px solid var(--be-line-2);
	border-radius: 999px;
	background: var(--be-cream);
	color: var(--be-text);
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	transition: background-color .25s, color .25s, border-color .25s;
}

.be_filter:hover {
	border-color: var(--be-olive);
	color: var(--be-olive);
}

.be_filter.is-active {
	background: var(--be-olive);
	border-color: var(--be-olive);
	color: var(--be-white);
}

@media (max-width: 700px) {
	.be_blog-filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin: 0 calc(-1 * var(--be-pad-x));
		padding: 0 var(--be-pad-x) 4px;
		scrollbar-width: none;
	}

	.be_blog-filters::-webkit-scrollbar {
		display: none;
	}

	.be_filter {
		flex-shrink: 0;
	}
}

/* 8. Forms (Contact Form 7; markup post-processed in inc/forms.php) ------------ */
.be_form-card {
	padding: 36px;
	border-radius: 24px;
	background: var(--be-cream);
	color: var(--be-text);
}

.be_form-card-title {
	font-size: 28px;
	line-height: 1.25;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.be_form-card-text {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--be-muted);
}

.be_form {
	margin-top: 24px;
}

.be_form .wpcf7-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.be_form .hidden-fields-container {
	display: none;
}

.be_form .be_field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.be_form .be_field--full,
.be_form .be_field--accept,
.be_form .be_field--submit,
.be_form .wpcf7-response-output {
	grid-column: 1 / -1;
}

.be_form .be_label {
	font-size: 14px;
	font-weight: 600;
	color: var(--be-text);
}

.be_form input[type="text"],
.be_form input[type="email"],
.be_form input[type="tel"],
.be_form select,
.be_form textarea {
	width: 100%;
	min-height: 48px;
	padding: 12px 16px;
	border: 1px solid var(--be-line-2);
	border-radius: 14px;
	background: var(--be-white);
	font: 400 16px/1.4 var(--be-font);
	color: var(--be-text);
	transition: border-color .25s;
}

.be_form textarea {
	min-height: 140px;
	resize: vertical;
}

.be_form select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233D4232' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}

.be_form input:focus,
.be_form select:focus,
.be_form textarea:focus {
	outline: none;
	border-color: var(--be-olive);
}

.be_form .wpcf7-form-control-wrap {
	display: block;
}

.be_form .wpcf7-not-valid {
	border-color: #A3412F;
}

.be_form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	color: #A3412F;
}

.be_form .be_field--accept {
	font-size: 14px;
	line-height: 1.5;
	color: var(--be-muted);
}

.be_form .wpcf7-acceptance label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	cursor: pointer;
}

.be_form .wpcf7-acceptance input {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	accent-color: var(--be-olive);
}

.be_form .wpcf7-list-item {
	margin: 0;
}

.be_form button[type="submit"]:disabled {
	opacity: .45;
	cursor: not-allowed;
}

.be_form .wpcf7-spinner {
	display: none;
}

.be_form .wpcf7-response-output {
	margin: 0;
	padding: 14px 16px;
	border-radius: 14px;
	font-size: 15px;
	line-height: 1.5;
	background: var(--be-sand);
}

.be_form .wpcf7-response-output:empty {
	display: none;
}

.be_form .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	word-wrap: normal !important;
}

@media (max-width: 700px) {
	.be_form-card {
		padding: 24px 20px;
	}

	.be_form .wpcf7-form {
		grid-template-columns: minmax(0, 1fr);
	}
}


/* 9. Header (design «Top bar» + «Header — glass, sticky») ---------------------- */
.be_topbar {
	background: var(--be-olive-deep);
	font-size: 13px;
	line-height: 1.5;
}

.be_topbar-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
	padding: 10px var(--be-pad-x);
}

.be_topbar-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
}

.be_topbar-link {
	color: var(--be-sage-light);
	text-decoration: none;
	transition: color .25s;
}

.be_topbar a.be_topbar-link--tel {
	color: var(--be-cream-light);
}

.be_topbar a.be_topbar-link:hover {
	color: var(--be-white);
}

@media (max-width: 1100px) {
	.be_topbar-inner {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.be_topbar-group {
		justify-content: center;
	}
}

.be_site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	height: var(--be-header-h);
	padding: 12px max(12px, calc(var(--be-pad-x) - 16px)); /* pill sits 16px outside the content edge */
}

.be_site-header-inner {
	position: relative;
}

.be_site-header-bar {
	position: relative;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 8px 8px 14px;
	border-radius: 999px;
	background: rgba(245, 242, 234, .74);
	-webkit-backdrop-filter: blur(22px) saturate(170%);
	backdrop-filter: blur(22px) saturate(170%);
	border: 1px solid rgba(61, 66, 50, .14);
	box-shadow: 0 8px 24px rgba(30, 32, 22, .08), inset 0 1px 0 rgba(255, 255, 255, .6);
}

.be_site-header-logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	padding-left: 6px;
}

.be_site-header-logo img {
	display: block;
	width: auto;
	height: 40px;
}

.be_site-header-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

/* Desktop menu */
.be_menu {
	display: flex;
}

.be_nav {
	display: flex;
	align-items: stretch;
	gap: 2px;
	list-style: none;
	font-size: 14px;
	font-weight: 600;
}

.be_nav-item {
	display: flex;
	align-items: center;
}

.be_nav-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 12px;
	border-radius: 999px;
	color: var(--be-text);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .25s;
}

.be_nav-link:hover,
.be_dd:hover > .be_nav-link,
.be_dd:focus-within > .be_nav-link,
.be_nav-link[aria-current] {
	background: rgba(61, 66, 50, .08);
	color: var(--be-text);
}

.be_chev {
	flex-shrink: 0;
	transition: transform .2s;
}

.be_dd:hover .be_chev,
.be_dd:focus-within .be_chev {
	transform: rotate(180deg);
}

/* Dropdowns: the panel starts right under the trigger (top: 100%) and its transparent
   padding-top is the visual gap, so the hover never drops between them. Panels are an
   almost solid cream (nested backdrop blur does not render reliably). */
.be_dd {
	position: relative;
}

.be_dd-panel {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 60;
	padding-top: 22px;
}

.be_dd:hover > .be_dd-panel,
.be_dd:focus-within > .be_dd-panel {
	display: block;
}

.be_dd-box {
	display: flex;
	flex-direction: column;
	min-width: 260px;
	padding: 8px;
	border-radius: 22px;
	background: rgba(250, 248, 243, .98);
	border: 1px solid rgba(61, 66, 50, .12);
	box-shadow: 0 16px 32px rgba(30, 32, 22, .12);
}

.be_dd-item {
	display: block;
	padding: 10px 14px;
	border-radius: 12px;
	color: var(--be-text);
	text-decoration: none;
	font-weight: 500;
	white-space: nowrap;
	transition: background-color .25s, color .25s;
}

.be_dd-item:hover,
.be_dd-item[aria-current] {
	background: var(--be-sand);
	color: var(--be-olive);
}

/* Mega menu: as wide as the header pill, 4 columns × 2 rows */
.be_dd--mega {
	position: static;
}

.be_dd--mega > .be_dd-panel {
	top: calc(100% - 8px);
	right: 0;
	padding-top: 22px;
}

.be_dd-box--mega {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 32px;
	padding: 28px 32px;
}

.be_mega-col {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.be_mega-title {
	margin-bottom: 4px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(61, 66, 50, .12);
	color: var(--be-text);
	text-decoration: none;
	font-size: 15px;
	font-weight: 700;
}

.be_mega-item {
	display: block;
	padding: 6px 0;
	color: var(--be-muted);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	transition: color .25s;
}

a.be_mega-title:hover,
.be_mega-item:hover {
	color: var(--be-brown);
}

.be_mega-all {
	padding-top: 6px;
	color: var(--be-brown);
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
}

.be_mega-all:hover {
	color: var(--be-olive-deep);
}

/* Burger + mobile panel (≤1180px) */
.be_burger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 999px;
	border: 1px solid rgba(61, 66, 50, .25);
	background: rgba(61, 66, 50, .05);
	color: var(--be-text);
	cursor: pointer;
}

.be_burger-close,
.be_burger[aria-expanded="true"] .be_burger-open {
	display: none;
}

.be_burger[aria-expanded="true"] .be_burger-close {
	display: inline;
}

.be_mpanel {
	position: absolute;
	top: calc(100% + 12px);
	left: 0;
	right: 0;
	max-height: min(75vh, calc(100vh - 140px));
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 12px;
	border-radius: 24px;
	background: rgba(250, 248, 243, .98);
	border: 1px solid rgba(61, 66, 50, .14);
	box-shadow: 0 16px 32px rgba(30, 32, 22, .12);
	font-size: 17px;
	font-weight: 600;
}

.be_mnav {
	list-style: none;
}

.be_mnav > li {
	border-bottom: 1px solid rgba(61, 66, 50, .10);
}

.be_mnav > li:last-child {
	border-bottom: 0;
}

.be_mnav-summary,
.be_mnav-link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 44px;
	padding: 14px 16px;
	color: var(--be-text);
	text-decoration: none;
	list-style: none;
	cursor: pointer;
}

.be_mnav-summary::-webkit-details-marker {
	display: none;
}

.be_mnav-group[open] .be_chev {
	transform: rotate(180deg);
}

.be_mnav-list {
	display: flex;
	flex-direction: column;
	padding: 0 8px 12px;
}

.be_mnav-item {
	padding: 10px 16px;
	color: var(--be-muted);
	text-decoration: none;
	font-size: 15px;
	font-weight: 500;
}

.be_mnav-item--all {
	color: var(--be-brown);
	font-weight: 700;
}

.be_mnav-item[aria-current] {
	color: var(--be-olive);
	font-weight: 700;
}

@media (max-width: 1180px) {
	.be_menu {
		display: none;
	}

	.be_burger {
		display: inline-flex;
	}
}

@media (min-width: 1181px) {
	.be_mpanel {
		display: none !important;
	}
}

@media (max-width: 420px) {
	.be_site-header-cta {
		padding: 10px 14px;
		font-size: 13px;
	}

	.be_site-header-logo img {
		height: 34px;
	}
}


/* 10. Footer --------------------------------------------------------------------- */
.be_footer {
	background: var(--be-olive-deep);
	color: var(--be-sage);
	font-size: 14px;
	line-height: 1.6;
}

.be_footer-inner {
	display: flex;
	flex-direction: column;
	gap: 32px;
	padding: 56px var(--be-pad-x) 32px;
}

.be_footer-cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 32px;
}

.be_footer-brand,
.be_footer-col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

.be_footer-brand img {
	display: block;
	width: auto;
	height: 44px;
}

.be_footer-title {
	font-weight: 700;
	color: var(--be-white);
}

.be_footer-link {
	color: var(--be-sage-light);
	text-decoration: none;
	transition: color .25s;
}

.be_footer-link:hover {
	color: var(--be-white);
}

.be_footer-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px 32px;
	padding-top: 20px;
	border-top: 1px solid #4A503F;
}

.be_footer-copy {
	flex: 1 1 520px;
	min-width: 0;
}

.be_footer-copy a {
	color: var(--be-cream-light);
	text-underline-offset: 3px;
}

.be_footer-copy a:hover {
	color: var(--be-white);
}

.be_footer-legal {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}


/* 11. Motion ------------------------------------------------------------------------
   Hero: staggered fade-up on load (.be_in .be_d1–d5) and fade-in of the photos.
   Sections: pure-CSS scroll reveal (animation-timeline: view()); browsers without it
   simply show the content. prefers-reduced-motion switches everything off.
   ---------------------------------------------------------------------------------- */
@keyframes beUp {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: none; }
}

@keyframes beFade {
	from { opacity: 0; transform: scale(.97); }
	to { opacity: 1; transform: none; }
}

@keyframes beReveal {
	from { opacity: 0; transform: translateY(40px); }
	to { opacity: 1; transform: none; }
}

.be_in { animation: beUp .8s cubic-bezier(.2, .7, .2, 1) both; }
.be_in-img { animation: beFade 1s cubic-bezier(.2, .7, .2, 1) both; }
.be_d1 { animation-delay: .05s; }
.be_d2 { animation-delay: .15s; }
.be_d3 { animation-delay: .25s; }
.be_d4 { animation-delay: .35s; }
.be_d5 { animation-delay: .45s; }

@supports (animation-timeline: view()) {
	.be_reveal {
		animation: beReveal linear both;
		animation-timeline: view();
		animation-range: entry 0% cover 22%;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}

	html {
		scroll-behavior: auto;
	}
}
