/*
Theme Name: Minashvili
Theme URI: https://minashvili-law.ge/
Author: Irakli
Description: Custom trilingual (EN/FR/KA) theme for the law office of Maître Lali Minashvili. No plugins.
Version: 0.1.0
Requires PHP: 8.0
Text Domain: minashvili
*/

/* ------------------------------------------------------------------
   Tokens
   ------------------------------------------------------------------ */
:root {
	--bg: #fcfaf6;
	--bg-alt: #f6f1e8;
	--bg-card: #faf6ef;
	--ink: #16233d;
	--ink-soft: #46506a;
	--ink-muted: #7a8196;
	--gold: #b8923e;
	--gold-soft: #d9c48f;
	--gold-pale: #efe5cc;
	--line: #e5dcc8;
	--white: #ffffff;

	--font: "EB Garamond", "Noto Serif Georgian", Georgia, "Times New Roman", serif;

	--container: 1680px;
	--narrow: 900px;
	--gutter: clamp(16px, 4vw, 72px);
	--radius: 2px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

/* ------------------------------------------------------------------
   Base
   ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	overflow-x: clip;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font);
	font-size: clamp(1.1rem, 1rem + 0.3vw, 1.4rem);
	line-height: 1.55;
	font-feature-settings: "liga", "kern";
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; line-height: 1.12; letter-spacing: -0.01em; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, textarea { font: inherit; color: inherit; }
figure { margin: 0; }
address { font-style: normal; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.skip-link { position: absolute; left: -999px; top: 8px; background: var(--ink); color: var(--white); padding: .5rem 1rem; z-index: 100; }
.skip-link:focus { left: 8px; }

.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.narrow { width: min(100%, var(--narrow)); margin-inline: auto; }
.container.narrow { width: min(100% - 2 * var(--gutter), var(--narrow)); }
.container.narrow-wide { width: min(100% - 2 * var(--gutter), 1160px); }

/* Type scale */
.display { font-weight: 500; line-height: 1.08; letter-spacing: -0.015em; font-size: clamp(2.25rem, 1.4rem + 2.6vw, 4.2rem); }
.display--xl { font-size: clamp(2.6rem, 1.4rem + 3.4vw, 5.2rem); line-height: 1.04; }
.display--lg { font-size: clamp(2rem, 1.3rem + 1.7vw, 3.3rem); }
.display--md { font-size: clamp(1.75rem, 1.2rem + 1.3vw, 2.7rem); }
.display--sm { font-size: clamp(1.45rem, 1.1rem + 0.8vw, 2rem); }
.lead { font-size: clamp(1.2rem, 1rem + 0.5vw, 1.6rem); line-height: 1.5; color: var(--ink-soft); max-width: 36ch; }
.muted { color: var(--ink-muted); }
.eyebrow {
	font-size: clamp(.8rem, .7rem + .2vw, .95rem); letter-spacing: .16em; text-transform: uppercase;
	color: var(--gold); margin: 0 0 .9rem; font-weight: 500;
}
.eyebrow--small { font-size: .72rem; letter-spacing: .18em; margin: .25rem 0 .9rem; }
.eyebrow--rule { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.75rem; }
.eyebrow--rule::after { content: ""; flex: 0 0 120px; height: 1px; background: var(--gold-soft); }
.heading-rule { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 1.75rem; }
.heading-rule::after { content: ""; flex: 1; height: 1px; background: var(--gold-soft); }
.lang-ka .display, .lang-ka .display--xl { letter-spacing: 0; line-height: 1.18; }
.lang-ka .eyebrow { letter-spacing: .08em; }

/* Buttons & links */
.btn {
	display: inline-flex; align-items: center; gap: .75rem;
	padding: .8rem 1.5rem .85rem; border-radius: var(--radius);
	font-size: 1.05rem; line-height: 1; letter-spacing: .01em;
	transition: background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
}
.btn--primary { background: var(--ink); color: var(--white); }
.btn--primary:hover { background: #0f1830; transform: translateY(-1px); }
.btn--ghost { border: 1px solid var(--ink); color: var(--ink); }
.btn--ghost:hover { background: var(--ink); color: var(--white); }

.text-link {
	display: inline-block;
	padding-bottom: .15rem; border-bottom: 1px solid var(--gold);
	line-height: 1.3; transition: color .2s var(--ease), border-color .2s var(--ease);
}
.text-link:hover { color: var(--gold); border-color: transparent; }

/* ------------------------------------------------------------------
   Header
   ------------------------------------------------------------------ */
.site-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--bg) 92%, transparent);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--gold-soft);
	transition: box-shadow .3s var(--ease);
}
.site-header.is-scrolled { box-shadow: 0 6px 24px -18px rgba(22, 35, 61, .35); }
.header-inner { display: flex; align-items: center; gap: 2rem; min-height: clamp(76px, 5.5vw, 100px); }
.brand { display: flex; align-items: center; gap: .9rem; margin-right: auto; }
.brand-mark { width: clamp(52px, 4.2vw, 72px); height: auto; }
.brand-text { display: flex; flex-direction: column; border-left: 1px solid var(--gold-soft); padding-left: .9rem; line-height: 1.15; }
.brand-name { font-size: 1.02rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); font-weight: 500; }
.brand-sub { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-top: .2rem; }

.site-nav { display: flex; align-items: center; gap: 2rem; }
.nav-list { display: flex; gap: clamp(1.4rem, 2vw, 2.4rem); }
.nav-list a { position: relative; padding: .35rem 0; font-size: clamp(1rem, .9rem + .3vw, 1.25rem); color: var(--ink); }
.nav-list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.nav-list a:hover::after, .nav-list .current-menu-item > a::after, .nav-list .current_page_parent > a::after, .nav-list .current-menu-ancestor > a::after { transform: scaleX(1); }
.lang-switch { display: flex; align-items: center; gap: .35rem; padding-left: 1.5rem; border-left: 1px solid var(--gold-soft); font-size: .85rem; letter-spacing: .1em; }
.lang-switch li + li::before { content: "·"; color: var(--gold); margin-right: .35rem; }
.lang-switch a { color: var(--ink-muted); }
.lang-switch a.is-current, .lang-switch a:hover { color: var(--ink); }

.nav-toggle { display: none; align-items: center; gap: .6rem; margin-left: auto; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; }
.nav-toggle-bars { display: inline-flex; flex-direction: column; gap: 5px; width: 22px; }
.nav-toggle-bars i { height: 1.5px; background: var(--ink); transition: transform .3s var(--ease); }
.nav-open .nav-toggle-bars i:first-child { transform: translateY(3.25px) rotate(45deg); }
.nav-open .nav-toggle-bars i:last-child { transform: translateY(-3.25px) rotate(-45deg); }

/* ------------------------------------------------------------------
   Sections
   ------------------------------------------------------------------ */
.section { padding: clamp(3.5rem, 6vw, 7.5rem) 0; }
.section--tight { padding: clamp(2rem, 4vw, 3.5rem) 0; }
.section--news { background: var(--bg); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; flex-wrap: wrap; }
.section-head .text-link { margin-bottom: .4rem; }

.grid { display: grid; gap: clamp(1rem, 1.6vw, 2.2rem); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid > * { min-width: 0; }

/* ------------------------------------------------------------------
   Hero
   ------------------------------------------------------------------ */
.hero { padding: clamp(2.5rem, 5vw, 5.5rem) 0 clamp(2.5rem, 4vw, 4.5rem); }
.hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(2rem, 5vw, 6rem); align-items: center; }
.hero-text .display { max-width: 22ch; margin-bottom: 1.4rem; }
.hero-text .lead { margin-bottom: 2rem; }
.hero-actions { display: flex; align-items: center; gap: 1.75rem; flex-wrap: wrap; }
.hero-media { position: relative; width: min(780px, 60vh, 44vw); justify-self: end; }
.hero-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: var(--radius); }
.hero-media::after {
	content: ""; position: absolute; inset: 14px -14px -14px 14px; z-index: -1;
	border: 1px solid var(--gold-soft); border-radius: var(--radius);
}

/* ------------------------------------------------------------------
   Cards
   ------------------------------------------------------------------ */
[hidden] { display: none !important; } /* .card is display:flex, which would beat the UA rule */
.card { display: flex; flex-direction: column; background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; position: relative; }
.card-media { display: block; overflow: hidden; background: var(--gold-pale); }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.card:hover .card-media img { transform: scale(1.035); }
.card-placeholder { display: grid; place-items: center; width: 100%; height: 100%; }
.card-placeholder img { width: 38%; height: auto; opacity: .7; }
.card-body { padding: clamp(1rem, 1vw, 1.5rem) clamp(1.1rem, 1.2vw, 1.7rem) clamp(1.1rem, 1.1vw, 1.6rem); display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.card-title { font-size: clamp(1.35rem, 1.1rem + .6vw, 1.9rem); line-height: 1.15; }
.card-title a { transition: color .2s; }
.card-title a:hover { color: var(--gold); }
.card::after { content: ""; position: absolute; left: clamp(1.1rem, 1.2vw, 1.7rem); right: clamp(1.1rem, 1.2vw, 1.7rem); bottom: 0; height: 2px; background: var(--gold); opacity: .9; }

.card--expertise .card-media { aspect-ratio: 1 / 1; }
.card--expertise .card-body { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 1rem; padding-bottom: 1.35rem; }
.card--expertise:hover .card-title { color: var(--ink); }

.card--post .card-media { aspect-ratio: 3 / 2; }
.card--post .card-body { padding-bottom: 1.5rem; }
.card--post .text-link { align-self: flex-start; margin-top: auto; font-size: 1rem; }
.card--post .card-meta { margin: 0 0 .5rem; }
.card--post .card-meta .dot { margin: 0 .45rem; color: var(--gold-soft); }
.card--post .card-excerpt { color: var(--ink-soft); line-height: 1.5; margin: .25rem 0 1rem; }

/* ------------------------------------------------------------------
   CTA band, links, need band
   ------------------------------------------------------------------ */
.cta-band { background: var(--bg-alt); padding: clamp(2.75rem, 5vw, 4rem) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cta-band .display { margin-bottom: .6rem; }
.cta-band .lead { margin-bottom: 1.6rem; }
.cta-band-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.cta-band .note { color: var(--ink-soft); }

.link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 3rem; font-size: clamp(1.1rem, 1rem + .3vw, 1.4rem); }
.link-grid li { display: flex; }

.need-band {
	background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--radius);
	padding: clamp(2rem, 4vw, 3rem); text-align: center;
	display: flex; flex-direction: column; align-items: center; gap: 1.25rem;
}

/* ------------------------------------------------------------------
   Page header, breadcrumb, filters
   ------------------------------------------------------------------ */
.page-header { padding: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(1rem, 2vw, 1.5rem); }
.page-header .display { margin: .4rem 0 .9rem; }
.page-header .lead { margin-bottom: 0; max-width: 48ch; }
.page-header--post .display { font-size: clamp(2rem, 4vw, 3rem); }
.page-header--post .lead { max-width: 60ch; }
.breadcrumb { font-size: .9rem; color: var(--ink-muted); margin-bottom: 1.25rem; display: flex; gap: .5rem; flex-wrap: wrap; }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb .sep { color: var(--gold-soft); }

.filter-tabs { display: flex; gap: 1.75rem; border-bottom: 1px solid var(--line); margin-bottom: 2rem; overflow-x: auto; scrollbar-width: none; }
.filter-tab { position: relative; padding: .6rem 0 .75rem; font-size: 1.1rem; color: var(--ink-soft); white-space: nowrap; }
.filter-tab::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--gold); transform: scaleX(0); transition: transform .3s var(--ease); }
.filter-tab.is-active { color: var(--ink); }
.filter-tab.is-active::after, .filter-tab:hover::after { transform: scaleX(1); }

/* ------------------------------------------------------------------
   Single & content
   ------------------------------------------------------------------ */
.feature-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); }
.feature-image { margin: .5rem 0 2.5rem; }
.feature-image--expertise img { aspect-ratio: 21 / 9; object-position: center 40%; }
.back-link { margin-top: 2.5rem; }
.single-post .eyebrow .dot { margin: 0 .5rem; color: var(--gold-soft); }
.pagination { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; }

.entry-content { font-size: clamp(1.15rem, 1.05rem + .3vw, 1.45rem); line-height: 1.62; }
.entry-content > * { margin-top: 0; margin-bottom: 0; }
.entry-content > * + * { margin-top: 1.1em; }
.entry-content h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin-top: 2.2em; }
.entry-content h3 { font-size: 1.4rem; margin-top: 1.8em; }
.entry-content ul, .entry-content ol { padding-left: 1.4em; }
.entry-content ul { list-style: disc; }
.entry-content li + li { margin-top: .35em; }
.entry-content a { border-bottom: 1px solid var(--gold); transition: color .2s; }
.entry-content a:hover { color: var(--gold); }
.entry-content blockquote { margin: 2em 0; padding: .25em 0 .25em 1.4em; border-left: 2px solid var(--gold); font-style: italic; color: var(--ink-soft); font-size: 1.3rem; }
.entry-content img { border-radius: var(--radius); }
.entry-content figcaption { font-size: .9rem; color: var(--ink-muted); margin-top: .5em; }
.entry-content .wp-block-image { margin: 2em 0; }
.entry-content hr { border: 0; border-top: 1px solid var(--line); margin: 2.5em 0; }
.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content td, .entry-content th { border: 1px solid var(--line); padding: .5em .75em; text-align: left; }
.entry-content strong { font-weight: 600; }

/* About */
/* Philosophy page (template-about.php): hero with image, reading column, heading/text split, image band, numbered rows */
.ph-hero { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: clamp(300px, 34vw, 540px); padding: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(2rem, 4vw, 3.75rem); background: var(--bg-alt); }
.ph-hero-media { position: absolute; inset: 0 0 0 auto; width: 70%; }
.ph-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 75% 40%; }
.ph-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--bg-alt) 0%, rgba(246, 241, 232, .9) 18%, rgba(246, 241, 232, 0) 62%); }
.ph-hero-inner { position: relative; z-index: 1; }
.ph-hero-title { display: grid; gap: 1rem; margin: 0; }
.ph-hero-title .eyebrow { margin: 0; }
.ph-hero-title .display { max-width: 15ch; font-size: clamp(2.3rem, 1.3rem + 3.3vw, 4.8rem); }
.ph-section { padding: clamp(3rem, 5.5vw, 6rem) 0; }
.ph-text { max-width: 82ch; color: var(--ink-soft); }
.ph-idea { background: var(--bg); }
.ph-idea .ph-text { margin-inline: auto; }
.ph-text--lead > p:first-child { color: var(--ink); font-weight: 600; font-size: 1.12em; line-height: 1.5; }
.ph-split { background: var(--bg-alt); }
.ph-split-inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.ph-split-head { position: sticky; top: 120px; }
.ph-split-head .display { max-width: 14ch; }
.ph-split-head .display::after { content: ""; display: block; width: 72px; height: 2px; background: var(--gold); margin-top: 1.25rem; }
.ph-band { position: relative; overflow: hidden; padding: clamp(3.5rem, 7vw, 7.5rem) 0; background: #f3ecdf; }
.ph-band-media { position: absolute; inset: 0; }
.ph-band-media img { width: 100%; height: 100%; object-fit: cover; object-position: 100% 50%; }
.ph-band-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f3ecdf 0%, rgba(243, 236, 223, .88) 30%, rgba(243, 236, 223, 0) 70%); }
.ph-band .container { position: relative; z-index: 1; }
.ph-band .display { max-width: 15ch; }
.ph-principles { background: var(--bg); }
.ph-text--wide { max-width: 110ch; }
.ph-rows { list-style: none; margin: clamp(2rem, 3vw, 3rem) 0; padding: 0; border-top: 1px solid var(--line); }
.ph-rows li { display: grid; grid-template-columns: 56px minmax(0, .8fr) minmax(0, 2fr); gap: clamp(1rem, 3vw, 3rem); align-items: start; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.ph-num { padding-top: .3em; color: var(--gold); font-size: .95rem; letter-spacing: .14em; }
.ph-row-title { font-size: clamp(1.1rem, 1rem + .35vw, 1.35rem); font-weight: 600; line-height: 1.3; letter-spacing: 0; color: var(--ink); }
.ph-row-text { margin: 0; color: var(--ink-soft); line-height: 1.6; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.ph-text--close { margin-inline: auto; }
.ph-principles + .cta-band, .ph-idea + .cta-band { border-top: 1px solid var(--line); }
@media (max-width: 900px) {
	.ph-hero-media { width: 100%; }
	.ph-hero-media::after { background: linear-gradient(90deg, var(--bg-alt) 0%, rgba(246, 241, 232, .82) 55%, rgba(246, 241, 232, .45) 100%); }
	.ph-split-inner { grid-template-columns: 1fr; gap: 1.5rem; }
	.ph-split-head { position: static; }
	.ph-split-head .display, .ph-band .display { max-width: none; }
	.ph-band-media::after { background: linear-gradient(90deg, #f3ecdf 0%, rgba(243, 236, 223, .85) 60%, rgba(243, 236, 223, .5) 100%); }
	.ph-rows li { grid-template-columns: 40px minmax(0, 1fr); gap: .5rem 1rem; }
	.ph-row-text { grid-column: 2; }
}

/* Sectors */
.sector-card { background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.75rem 1.6rem 1.6rem; position: relative; display: flex; flex-direction: column; gap: .6rem; }
.sector-num { font-size: .8rem; letter-spacing: .18em; color: var(--gold); }
.sector-title { font-size: clamp(1.5rem, 1.2rem + .7vw, 2.1rem); line-height: 1.15; }
.sector-body { color: var(--ink-soft); font-size: 1.05rem; }
.sector-body p { margin: 0; }
.sector-card::after { content: ""; position: absolute; left: 1.6rem; right: 1.6rem; bottom: 0; height: 2px; background: var(--gold); }

/* Contact */
.contact-inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.contact-form { display: flex; flex-direction: column; gap: 1.1rem; }
.field { display: flex; flex-direction: column; gap: .35rem; margin: 0; }
.field-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.1rem; }
.field label { font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.field .req { color: var(--gold); }
.field input, .field textarea { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: .75rem .9rem; font-size: 1.1rem; transition: border-color .2s; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--gold); }
.field--submit { flex-direction: row; align-items: center; gap: 1.25rem; flex-wrap: wrap; margin-top: .5rem; }
.field--submit small { font-size: .9rem; max-width: 32ch; }
.hp { position: absolute; left: -9999px; }
.notice { padding: .9rem 1.1rem; border-radius: var(--radius); border: 1px solid var(--line); margin-bottom: 1.5rem; }
.notice--ok { background: #eef5ea; border-color: #c7dcbc; }
.notice--error { background: #faeeec; border-color: #e6c3bd; }
.contact-side { display: grid; gap: clamp(1.25rem, 2vw, 1.75rem); min-width: 0; }
.contact-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); }
.contact-details { background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.75rem; }
.contact-details .display { margin-bottom: 1.25rem; }
.detail-list { display: flex; flex-direction: column; gap: 1.1rem; }
.detail-list li { display: flex; gap: .9rem; align-items: flex-start; }
.detail-list .icon { color: var(--gold); flex: 0 0 auto; margin-top: .3rem; }
.detail-list div { display: flex; flex-direction: column; }
.detail-label { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-muted); }
.detail-list a:hover { color: var(--gold); }
.contact-extra { margin-top: 1.5rem; font-size: 1.05rem; }

/* 404 */
.not-found { text-align: center; padding-top: clamp(4rem, 10vw, 8rem); padding-bottom: clamp(4rem, 10vw, 8rem); }
.not-found .lead { margin-inline: auto; margin-bottom: 2rem; }

/* ------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------ */
.site-footer { border-top: 1px solid var(--gold-soft); margin-top: clamp(2rem, 5vw, 4rem); background: var(--bg); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2.5rem 0 2rem; flex-wrap: wrap; }
.footer-brand { display: flex; align-items: center; gap: 1.25rem; }
.footer-mark { width: clamp(70px, 5vw, 90px); height: auto; }
.footer-names { display: flex; flex-direction: column; gap: .2rem; border-left: 1px solid var(--gold-soft); padding-left: 1.25rem; }
.footer-name { font-size: 1.15rem; }
.footer-name--ka { color: var(--gold); letter-spacing: .06em; font-size: 1.05rem; }
.footer-contact { display: flex; flex-direction: column; gap: .6rem; }
.footer-contact a { display: inline-flex; align-items: center; gap: .7rem; font-size: 1.1rem; }
.footer-contact .icon { color: var(--gold); }
.footer-contact a:hover { color: var(--gold); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1rem 0 1.75rem; border-top: 1px solid var(--line); flex-wrap: wrap; font-size: .95rem; }
.footer-links { display: flex; gap: 1rem; }
.footer-links a { border-bottom: 1px solid var(--gold); }
.footer-links .sep { color: var(--gold-soft); }
.copyright { margin: 0; color: var(--ink-muted); }

/* ------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */
@media (max-width: 1080px) {
	.grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.nav-toggle { display: inline-flex; }
	.site-nav {
		/* absolute against the header, not fixed: the header's backdrop-filter would be the containing block and clip a fixed panel */
		position: absolute; top: 100%; left: 0; right: 0; z-index: 40;
		height: calc(100vh - 100%); height: calc(100dvh - 100%);
		flex-direction: column; align-items: flex-start; gap: 2rem;
		background: var(--bg); padding: 2rem var(--gutter);
		border-top: 1px solid var(--gold-soft);
		transform: translateX(100%); transition: transform .35s var(--ease);
		overflow-y: auto; overscroll-behavior: contain; visibility: hidden;
	}
	.nav-open .site-nav { transform: none; visibility: visible; }
	.nav-open { overflow: hidden; }
	.nav-list { flex-direction: column; gap: .5rem; }
	.nav-list a, .lang-ka .nav-list a { font-size: 1.5rem; }
	.lang-switch { border: 0; padding: 0; font-size: 1rem; }
	.hero-inner { grid-template-columns: 1fr; }
	.hero-media { order: -1; width: min(100%, 420px); }
	.hero-media img { aspect-ratio: 4 / 5; }
	.contact-inner { grid-template-columns: 1fr; }
	.grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	body { font-size: 1.1rem; }
	.header-inner { min-height: 72px; }
	.brand-mark { width: 48px; }
	.brand-name { font-size: .9rem; }
	.brand-sub { font-size: .62rem; }
	.grid--3, .grid--4 { grid-template-columns: 1fr; }
	.grid--4.js-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.card--expertise .card-title { font-size: 1.2rem; }
	.link-grid { grid-template-columns: 1fr; }
	.field-row { grid-template-columns: 1fr; }
	.footer-inner { flex-direction: column; align-items: flex-start; }
	.footer-bottom { flex-direction: column; align-items: flex-start; }
	.hero-media::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
	html { scroll-behavior: auto; }
}

/* ------------------------------------------------------------------
   Home: approach section (long client copy in columns)
   ------------------------------------------------------------------ */
.section--approach { padding-top: clamp(1rem, 2vw, 2rem); }
.approach-inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.75rem, 3vw, 3.5rem); align-items: start; }
.approach-lead { position: sticky; top: 120px; grid-column: 1; }
.approach-lead-text { font-size: clamp(1.35rem, 1.1rem + .8vw, 2rem); line-height: 1.35; letter-spacing: -0.01em; }
.approach-lead-text p { margin: 0; }
.approach-body { grid-column: 2 / -1; font-size: clamp(1.15rem, 1rem + .4vw, 1.45rem); line-height: 1.55; color: var(--ink-soft); max-width: 62ch; }
.approach-body > * + * { margin-top: 1.1em; }
.approach-points {
	list-style: none; counter-reset: pt; padding: 0; margin-top: clamp(3rem, 5vw, 5.5rem);
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.75rem, 3vw, 3.5rem);
}
.approach-points li { counter-increment: pt; padding-top: 1.25rem; border-top: 2px solid var(--gold); font-size: clamp(1rem, .95rem + .2vw, 1.15rem); line-height: 1.6; color: var(--ink-soft); }
.approach-points li::before { content: counter(pt, decimal-leading-zero); display: block; color: var(--gold); font-size: .85rem; letter-spacing: .16em; margin-bottom: .9rem; }
.approach-points li p { margin: 0; }
@media (max-width: 1200px) {
	.approach-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); }
	.approach-body { grid-column: 2; }
}
@media (max-width: 900px) {
	.approach-inner { grid-template-columns: 1fr; }
	.approach-lead { position: static; }
	.approach-body { grid-column: auto; }
	.approach-points { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* Content lists (service pages) */
.entry-content ul li::marker { color: var(--gold); }
.entry-content ul { padding-left: 1.2em; }
.entry-content p strong:only-child { color: var(--ink); }

/* Long expertise titles */
.card--expertise .card-title { hyphens: auto; }
.lang-ka .card--expertise .card-title { font-size: clamp(1.2rem, 1rem + .5vw, 1.6rem); }
.lang-ka .nav-list a { font-size: clamp(.95rem, .85rem + .3vw, 1.15rem); }

/* Georgian hero headline: wider measure, slightly smaller */
.lang-ka .hero-text .display { max-width: none; font-size: clamp(2.2rem, 1.2rem + 2.9vw, 4.4rem); }

/* Empty blog state */
.empty-state { text-align: center; padding: clamp(2rem, 5vw, 4rem) 1rem; background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--radius); }
.empty-state img { width: 72px; height: auto; margin: 0 auto 1.25rem; opacity: .85; }
.empty-state .display { margin-bottom: .4rem; }
.empty-state .muted { margin: 0; }

/* Expertise single: content + sidebar */
.expertise-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.expertise-main .entry-content { max-width: 820px; }
.expertise-aside { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 1.25rem; }
.aside-card { background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem 1.5rem 1.6rem; }
.aside-card .eyebrow { margin-bottom: .6rem; }
.aside-text { color: var(--ink-soft); margin: 0 0 1.2rem; font-size: 1.05rem; }
.aside-contacts { display: flex; flex-direction: column; gap: .5rem; margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1px solid var(--line); font-size: 1rem; }
.aside-contacts li { display: flex; align-items: center; gap: .6rem; }
.aside-contacts .icon { color: var(--gold); flex: 0 0 auto; }
.aside-contacts a:hover { color: var(--gold); }
.aside-links li + li { border-top: 1px solid var(--line); }
.aside-links a { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .6rem 0; font-size: 1.05rem; line-height: 1.3; transition: color .2s; }
.aside-links a:hover { color: var(--gold); }
@media (max-width: 1000px) {
	.expertise-layout { grid-template-columns: 1fr; }
	.expertise-aside { position: static; }
	.expertise-main .entry-content { max-width: none; }
}

/* ------------------------------------------------------------------
   Expertise page (single-expertise.php): half-image hero, icon list, approach card
   ------------------------------------------------------------------ */
.exp-hero { position: relative; overflow: hidden; display: flex; align-items: center; min-height: clamp(380px, 44vw, 640px); padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3.5rem); background: var(--bg-alt); }
.exp-hero-media { position: absolute; inset: 0 0 0 auto; width: 58%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 46%); mask-image: linear-gradient(90deg, transparent 0, #000 46%); }
.exp-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.exp-hero-inner { position: relative; z-index: 1; }
.exp-hero-text { max-width: min(100%, 640px); width: 47%; }
.exp-hero--plain .exp-hero-text { width: auto; max-width: 900px; }
.exp-hero .display { font-size: clamp(2rem, 1.2rem + 2.5vw, 3.7rem); line-height: 1.1; margin-top: .5rem; }
.lang-ka .exp-hero .display { line-height: 1.18; }
.exp-rule { display: block; width: 88px; height: 2px; background: var(--gold); margin: 1.3rem 0 1.5rem; }
.exp-quote { margin: 0; padding: .3rem 0 .3rem 1.4rem; border-left: 2px solid var(--gold); max-width: 34ch; color: var(--ink); font-style: italic; line-height: 1.45; font-size: clamp(1.15rem, 1rem + .55vw, 1.5rem); }
.exp-quote p { margin: 0; }
.exp-hero + .single-expertise { padding-top: clamp(2.5rem, 4vw, 4rem); }
.exp-h2 { display: flex; align-items: center; gap: 1.5rem; margin: clamp(2rem, 3.5vw, 3rem) 0 .6rem; color: var(--ink); font-weight: 500; line-height: 1.1; font-size: clamp(1.7rem, 1.2rem + 1.3vw, 2.5rem); }
.exp-h2::after { content: ""; flex: 1; max-width: 260px; height: 1px; background: var(--gold-soft); }
.exp-list-lead { margin: 0 0 .5rem; color: var(--ink-muted); font-size: 1rem; }
.exp-list { list-style: none; margin: 0; padding: 0; max-width: 820px; }
.exp-list li { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 1.4rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--line); line-height: 1.45; }
.exp-list li:last-child { border-bottom: 0; }
.exp-ico { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; border: 1px solid var(--gold-soft); background: var(--bg-card); color: var(--gold); }
.exp-item { display: block; }
.exp-item::first-letter { text-transform: uppercase; }
.exp-approach { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, .65fr); margin-top: clamp(2.5rem, 4vw, 4rem); background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.exp-approach-body { padding: clamp(1.75rem, 3vw, 3rem); }
.exp-approach-body h2 { margin-bottom: 1rem; color: var(--gold); font-weight: 500; font-size: clamp(1.3rem, 1.1rem + .6vw, 1.7rem); }
.exp-approach-body .entry-content { max-width: none; color: var(--ink-soft); font-size: clamp(1.02rem, .95rem + .3vw, 1.2rem); }
.exp-approach-media { position: relative; min-height: 220px; border-left: 1px solid var(--gold-soft); }
.exp-approach-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 45% 30%; }
@media (max-width: 900px) {
	.exp-hero { display: block; min-height: 0; padding-top: 0; }
	.exp-hero-media { position: relative; inset: auto; width: 100%; aspect-ratio: 16 / 10; -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 55%, transparent 100%); }
	.exp-hero-text { width: auto; max-width: none; }
	.exp-quote { max-width: none; }
	.exp-list li { grid-template-columns: 46px minmax(0, 1fr); gap: 1rem; }
	.exp-ico { width: 46px; height: 46px; }
	.exp-approach { grid-template-columns: 1fr; }
	.exp-approach-media { order: -1; min-height: 0; aspect-ratio: 16 / 7; border-left: 0; border-bottom: 1px solid var(--gold-soft); }
}

/* ------------------------------------------------------------------
   Justified running text (client request, 10 Nov 2026). Hyphenation on, so long
   words do not leave wide gaps in narrow columns. Headings, leads, cards, navigation
   and forms stay left-aligned.
   ------------------------------------------------------------------ */
.entry-content p, .entry-content li {
	text-align: justify; text-justify: inter-word;
	-webkit-hyphens: auto; hyphens: auto;
}
