/* ==========================================================================
   Horizon Core — design tokens
   ========================================================================== */
@font-face {
	font-family: 'Heebo';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/heebo-hebrew.woff2') format('woff2');
	unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
	font-family: 'Heebo';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/heebo-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}

:root {
	--hc-ink: #100f13;
	--hc-ink-2: #17161c;
	--hc-card: #1c1b22;
	--hc-card-2: #26242c;
	--hc-border: rgba(255, 255, 255, .09);
	--hc-border-2: rgba(255, 255, 255, .17);
	--hc-white: #ffffff;
	--hc-text: rgba(255, 255, 255, .94);
	--hc-text-muted: rgba(255, 255, 255, .64);
	--hc-text-faint: rgba(255, 255, 255, .40);
	--hc-cream: #f3ede1;
	--hc-cream-text: #24211c;
	--hc-cream-text-muted: rgba(36, 33, 28, .68);
	--hc-amber: #db8b3b;
	--hc-amber-2: #eba55e;
	--hc-amber-dark: #a8632a;
	--hc-amber-ink: #2a1a0c;
	--hc-font: 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--hc-radius: 16px;
	--hc-radius-sm: 10px;
	--hc-shadow: 0 24px 60px -24px rgba(0, 0, 0, .55);
	--hc-container: 1240px;
	--hc-edge: clamp(1.25rem, 4vw, 3rem);
	--hc-a11y-scale: 1;
}

/* ==========================================================================
   Reset + base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
body {
	margin: 0;
	background: var(--hc-ink);
	color: var(--hc-text);
	font-family: var(--hc-font);
	font-size: calc(16px * var(--hc-a11y-scale));
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; }
.hc-skip {
	position: fixed; z-index: 200; top: -60px; right: 1rem;
	background: var(--hc-amber); color: var(--hc-amber-ink);
	padding: .75rem 1.25rem; border-radius: var(--hc-radius-sm);
	font-weight: 700; transition: top .2s ease;
}
.hc-skip:focus { top: 1rem; }
:focus-visible { outline: 2.5px solid var(--hc-amber-2); outline-offset: 2px; }

.hc-wrap { max-width: var(--hc-container); margin-inline: auto; padding-inline: var(--hc-edge); }
.hc-eyebrow {
	display: inline-flex; align-items: center; gap: .5em;
	font-size: .8rem; font-weight: 700; letter-spacing: .14em;
	color: var(--hc-amber-2); text-transform: uppercase;
	margin-bottom: .9rem;
}
.hc-eyebrow::before { content: ''; width: 1.4em; height: 2px; background: var(--hc-amber); }
section[data-cream] .hc-eyebrow { color: var(--hc-amber-dark); }

h2.hc-h2 {
	font-size: clamp(1.7rem, 1.35rem + 1.6vw, 2.6rem);
	font-weight: 800; letter-spacing: -.01em; line-height: 1.18;
	color: var(--hc-white);
}
section[data-cream] h2.hc-h2 { color: var(--hc-cream-text); }
.hc-lead { font-size: 1.08rem; color: var(--hc-text-muted); line-height: 1.75; max-width: 62ch; }
section[data-cream] .hc-lead { color: var(--hc-cream-text-muted); }

.hc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	padding: .9rem 1.6rem; border-radius: 999px; font-weight: 700; font-size: .96rem;
	transition: transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
	white-space: nowrap;
}
.hc-btn svg { flex-shrink: 0; }
.hc-btn-primary { background: var(--hc-amber); color: var(--hc-amber-ink); }
.hc-btn-primary:hover { background: var(--hc-amber-2); transform: translateY(-1px); }
.hc-btn-ghost { background: transparent; color: var(--hc-white); border: 1.5px solid var(--hc-border-2); }
.hc-btn-ghost:hover { border-color: var(--hc-amber-2); color: var(--hc-amber-2); }
.hc-btn-sm { padding: .6rem 1.1rem; font-size: .88rem; }
.hc-btn:disabled { opacity: .6; cursor: not-allowed; }

/* ==========================================================================
   Header
   ========================================================================== */
.hc-hd {
	position: sticky; top: 0; z-index: 90;
	background: rgba(16, 15, 19, .7);
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .25s ease, background .25s ease;
}
.hc-hd.is-stuck { background: rgba(16, 15, 19, .92); border-color: var(--hc-border); }
.hc-hd-bar { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; height: 78px; }

.hc-logo { display: flex; align-items: center; gap: .7rem; flex-shrink: 0; }
.hc-logo-mark { color: var(--hc-amber); display: flex; }
.hc-logo-txt { display: flex; flex-direction: column; line-height: 1.25; }
.hc-logo-n { font-weight: 800; font-size: 1.05rem; letter-spacing: .03em; color: var(--hc-white); }
.hc-logo-d { font-size: .72rem; color: var(--hc-text-muted); }

.hc-nav { display: flex; align-items: center; gap: 1.7rem; }
.hc-nav a { font-size: .93rem; font-weight: 500; color: var(--hc-text-muted); position: relative; padding: .3rem 0; }
.hc-nav a:hover, .hc-nav a.is-active { color: var(--hc-white); }
.hc-nav a.is-active::after { content: ''; position: absolute; right: 0; left: 0; bottom: -3px; height: 2px; background: var(--hc-amber); border-radius: 2px; }

.hc-act { display: flex; align-items: center; gap: .7rem; }
.hc-tel { display: flex; align-items: center; gap: .5em; color: var(--hc-text); font-weight: 700; font-size: .92rem; }
.hc-tel:hover { color: var(--hc-amber-2); }
.hc-cta { display: flex; align-items: center; gap: .5em; background: var(--hc-amber); color: var(--hc-amber-ink); padding: .6rem 1.05rem; border-radius: 999px; font-weight: 700; font-size: .88rem; }
.hc-cta:hover { background: var(--hc-amber-2); }
.hc-burger { display: none; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 10px; color: var(--hc-white); flex-shrink: 0; }
.hc-burger:hover { background: var(--hc-card); }

.hc-drawer {
	position: fixed; inset: 0; z-index: 150; visibility: hidden;
	display: flex; flex-direction: column;
	background: var(--hc-ink); padding: 1.25rem 1.25rem 2rem;
}
.hc-drawer.open { visibility: visible; }
.hc-drawer-hd { display: flex; align-items: center; justify-content: space-between; padding-block: .5rem 1.5rem; }
.hc-drawer-hd .x { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 10px; color: var(--hc-white); }
.hc-drawer-hd .x:hover { background: var(--hc-card); }
.hc-drawer-nav { display: flex; flex-direction: column; gap: .3rem; overflow-y: auto; }
.hc-drawer-nav a { padding: .9rem .25rem; font-size: 1.2rem; font-weight: 700; border-bottom: 1px solid var(--hc-border); color: var(--hc-white); }
.hc-drawer-ft { display: flex; gap: .75rem; margin-top: 1.5rem; }
.hc-drawer-ft .hc-btn { flex: 1; }
html.hc-noscroll, body.hc-noscroll { overflow: hidden; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hc-hero {
	position: relative; overflow: hidden;
	padding: clamp(4rem, 6vw + 2rem, 8rem) 0 clamp(3rem, 5vw, 6rem);
	background: radial-gradient(120% 90% at 85% 0%, #2a1c10 0%, var(--hc-ink) 55%), var(--hc-ink);
}
.hc-hero::before {
	content: ''; position: absolute; inset: 0; z-index: 0; opacity: .55;
	background-image:
		repeating-linear-gradient(100deg, transparent 0 68px, rgba(219,139,59,.09) 68px 70px),
		repeating-linear-gradient(80deg, transparent 0 120px, rgba(255,255,255,.035) 120px 121px);
	-webkit-mask-image: linear-gradient(to top, transparent, black 70%);
	mask-image: linear-gradient(to top, transparent, black 70%);
}
.hc-hero::after {
	content: ''; position: absolute; left: -10%; bottom: -30%; width: 60%; padding-bottom: 60%; z-index: 0;
	background: radial-gradient(circle, rgba(219,139,59,.18), transparent 70%);
}
.hc-hero-in { position: relative; z-index: 1; max-width: 46rem; }
.hc-hero h1 {
	font-size: clamp(2.3rem, 1.6rem + 3.2vw, 4.4rem);
	font-weight: 900; letter-spacing: -.02em; line-height: 1.08; color: var(--hc-white);
	margin-block: 0 1.3rem;
}
.hc-hero h1 span { display: block; }
.hc-hero .hc-rule { width: 74px; height: 4px; background: var(--hc-amber); border-radius: 4px; margin-bottom: 1.4rem; }
.hc-hero-sub { font-size: clamp(1rem, .92rem + .3vw, 1.2rem); color: var(--hc-text-muted); line-height: 1.7; max-width: 40rem; }
.hc-hero-sub b { color: var(--hc-text); font-weight: 600; }
.hc-hero-cta { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.2rem; }
.hc-hero-stats { display: flex; flex-wrap: wrap; gap: 1.8rem 2.4rem; margin-top: 3.2rem; padding-top: 2rem; border-top: 1px solid var(--hc-border); }
.hc-hero-badge { display: flex; align-items: center; gap: .6em; color: var(--hc-text-muted); font-size: .88rem; font-weight: 600; }
.hc-hero-badge svg { color: var(--hc-amber-2); flex-shrink: 0; }

/* ==========================================================================
   Section rhythm
   ========================================================================== */
section { padding-block: clamp(3.5rem, 5vw, 6.5rem); }
section[data-dark] { background: var(--hc-ink-2); }
section[data-cream] { background: var(--hc-cream); }
.hc-head { max-width: 42rem; margin-bottom: clamp(2.2rem, 4vw, 3.2rem); }
.hc-head.hc-center { margin-inline: auto; text-align: center; }

/* ==========================================================================
   About
   ========================================================================== */
.hc-about-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.hc-about-art {
	position: relative; aspect-ratio: 4/5; border-radius: var(--hc-radius); overflow: hidden;
	background: linear-gradient(155deg, #23222a, #17161c 65%);
	border: 1px solid var(--hc-border);
}
.hc-about-art svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.hc-about-art .hc-badge {
	position: absolute; right: 1.4rem; bottom: 1.4rem; left: 1.4rem;
	background: rgba(16,15,19,.72); backdrop-filter: blur(10px);
	border: 1px solid var(--hc-border-2); border-radius: var(--hc-radius-sm);
	padding: 1.1rem 1.3rem;
}
.hc-about-art .hc-badge b { display: block; color: var(--hc-white); font-size: 1.05rem; }
.hc-about-art .hc-badge span { color: var(--hc-text-muted); font-size: .84rem; }
.hc-about-cols { display: grid; gap: 1.6rem; margin-top: 2.2rem; }
.hc-about-col { display: flex; gap: 1rem; }
.hc-about-col .ic {
	flex-shrink: 0; width: 46px; height: 46px; border-radius: 12px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(219,139,59,.12); color: var(--hc-amber-2);
}
.hc-about-col b { display: block; color: var(--hc-white); font-size: 1rem; margin-bottom: .2rem; }
.hc-about-col p { color: var(--hc-text-muted); font-size: .92rem; line-height: 1.6; }

/* ==========================================================================
   Quote
   ========================================================================== */
.hc-quote { position: relative; }
.hc-quote-in { max-width: 52rem; }
.hc-quote-mark { color: var(--hc-amber); opacity: .85; margin-bottom: 1rem; }
.hc-quote blockquote { font-size: clamp(1.3rem, 1.1rem + 1vw, 1.8rem); font-weight: 700; line-height: 1.5; color: var(--hc-cream-text); letter-spacing: -.01em; }
.hc-quote blockquote b, .hc-quote blockquote mark { color: var(--hc-amber-dark); background: none; font-weight: 800; }
.hc-quote-body { margin-top: 1.4rem; color: var(--hc-cream-text-muted); font-size: 1rem; line-height: 1.75; max-width: 48ch; }
.hc-quote-attr { display: flex; align-items: center; gap: .9rem; margin-top: 2rem; }
.hc-quote-attr .dash { width: 34px; height: 2px; background: var(--hc-amber-dark); }
.hc-quote-attr b { display: block; color: var(--hc-cream-text); font-size: .96rem; }
.hc-quote-attr span { color: var(--hc-cream-text-muted); font-size: .82rem; }

/* ==========================================================================
   Expertise
   ========================================================================== */
.hc-grid-6 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--hc-border); border: 1px solid var(--hc-border); border-radius: var(--hc-radius); overflow: hidden; }
.hc-exp-card { background: var(--hc-ink-2); padding: clamp(1.6rem, 2vw, 2.3rem); transition: background .2s ease; }
.hc-exp-card:hover { background: var(--hc-card-2); }
.hc-exp-card .n { font-size: .85rem; font-weight: 800; color: var(--hc-amber-2); letter-spacing: .05em; }
.hc-exp-card h3 { margin-top: .9rem; font-size: 1.08rem; font-weight: 700; color: var(--hc-white); }
.hc-exp-card p { margin-top: .6rem; font-size: .89rem; color: var(--hc-text-muted); line-height: 1.65; }

/* ==========================================================================
   Culture
   ========================================================================== */
.hc-culture-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 3rem); margin-top: 1rem; }
.hc-culture-item .n { font-size: clamp(2.2rem, 1.8rem + 1vw, 3rem); font-weight: 900; color: var(--hc-amber); line-height: 1; }
.hc-culture-item h3 { margin-top: .8rem; font-size: 1.15rem; font-weight: 700; color: var(--hc-white); }
.hc-culture-item p { margin-top: .6rem; color: var(--hc-text-muted); font-size: .93rem; line-height: 1.7; max-width: 32ch; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.hc-faq { display: flex; flex-direction: column; gap: .8rem; margin-top: 1rem; }
.hc-faq-item { border: 1px solid var(--hc-border); border-radius: var(--hc-radius-sm); background: var(--hc-ink); overflow: hidden; }
.hc-faq-q { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; padding: 1.15rem 1.3rem; text-align: right; font-weight: 700; font-size: .98rem; color: var(--hc-white); }
.hc-faq-q svg { flex-shrink: 0; color: var(--hc-amber-2); transition: transform .2s ease; }
.hc-faq-q[aria-expanded="true"] svg { transform: rotate(180deg); }
.hc-faq-a { padding: 0 1.3rem 1.3rem; }
.hc-faq-a p { color: var(--hc-text-muted); font-size: .92rem; line-height: 1.7; max-width: 64ch; }

/* ==========================================================================
   Projects / portfolio
   ========================================================================== */
.hc-projects-top { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.hc-proj-list { display: flex; flex-direction: column; }
.hc-proj-list li { display: flex; align-items: baseline; gap: 1rem; padding: 1.05rem 0; border-bottom: 1px solid var(--hc-border); }
.hc-proj-list .n { font-size: .82rem; font-weight: 800; color: var(--hc-amber-2); flex-shrink: 0; }
.hc-proj-list b { color: var(--hc-white); font-weight: 700; font-size: 1rem; }
.hc-proj-list span { display: block; color: var(--hc-text-faint); font-size: .84rem; margin-top: .15rem; }
.hc-proj-art { position: relative; aspect-ratio: 1/1; border-radius: var(--hc-radius); overflow: hidden; border: 1px solid var(--hc-border); background: linear-gradient(160deg,#221a12,#17161c 60%); }
.hc-proj-art svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.hc-proj-cat { margin-top: clamp(2.5rem, 4vw, 4rem); }
.hc-proj-cat-hd { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.4rem; }
.hc-proj-cat-hd .k { font-size: .78rem; font-weight: 800; color: var(--hc-text-faint); letter-spacing: .08em; }
.hc-proj-cat-hd h3 { font-size: 1.2rem; font-weight: 700; color: var(--hc-white); }
.hc-proj-cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.hc-proj-card {
	position: relative; aspect-ratio: 4/3; border-radius: var(--hc-radius-sm); overflow: hidden;
	background: var(--hc-card); border: 1px solid var(--hc-border);
	padding: 1rem; display: flex; flex-direction: column; justify-content: flex-end;
	transition: transform .2s ease, border-color .2s ease;
}
.hc-proj-card:hover { transform: translateY(-3px); border-color: var(--hc-border-2); }
.hc-proj-card .ic { position: absolute; top: 1rem; right: 1rem; color: rgba(219,139,59,.5); opacity: .8; }
.hc-proj-card .bg { position: absolute; inset: 0; opacity: .5; }
.hc-proj-card b { position: relative; color: var(--hc-white); font-size: .88rem; font-weight: 700; line-height: 1.4; }
.hc-proj-card span { position: relative; color: var(--hc-text-faint); font-size: .76rem; margin-top: .2rem; }

/* ==========================================================================
   CTA band
   ========================================================================== */
.hc-band { position: relative; overflow: hidden; background: var(--hc-ink); border-top: 1px solid var(--hc-border); border-bottom: 1px solid var(--hc-border); }
.hc-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(90% 140% at 15% 100%, rgba(219,139,59,.16), transparent 60%); }
.hc-band-in { position: relative; text-align: center; max-width: 40rem; margin-inline: auto; }
.hc-band h2 { font-size: clamp(1.7rem, 1.4rem + 1.6vw, 2.7rem); font-weight: 900; color: var(--hc-white); letter-spacing: -.01em; }
.hc-band .hc-rule { margin-inline: auto; }
.hc-band p { color: var(--hc-text-muted); margin-top: 1rem; font-size: 1.02rem; }
.hc-band .hc-hero-cta { justify-content: center; margin-top: 2rem; }

/* ==========================================================================
   Contact
   ========================================================================== */
.hc-contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 4vw, 4rem); }
.hc-contact-info { display: grid; gap: 1rem; align-content: start; }
.hc-contact-card { display: flex; align-items: center; gap: 1rem; background: var(--hc-card); border: 1px solid var(--hc-border); border-radius: var(--hc-radius-sm); padding: 1.1rem 1.3rem; }
.hc-contact-card .ic { flex-shrink: 0; width: 42px; height: 42px; border-radius: 11px; background: rgba(219,139,59,.13); color: var(--hc-amber-2); display: flex; align-items: center; justify-content: center; }
.hc-contact-card span { display: block; color: var(--hc-text-faint); font-size: .78rem; }
.hc-contact-card b, .hc-contact-card a.val { color: var(--hc-white); font-size: .98rem; font-weight: 700; }
.hc-contact-map { margin-top: .2rem; border-radius: var(--hc-radius-sm); overflow: hidden; border: 1px solid var(--hc-border); aspect-ratio: 16/10; filter: grayscale(.3) invert(.92) contrast(.9); }
.hc-contact-map iframe { width: 100%; height: 100%; border: 0; }

.hc-form { background: var(--hc-card); border: 1px solid var(--hc-border); border-radius: var(--hc-radius); padding: clamp(1.5rem, 3vw, 2.4rem); }
.hc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.hc-field { display: flex; flex-direction: column; gap: .45rem; margin-bottom: 1rem; }
.hc-field label { font-size: .84rem; font-weight: 600; color: var(--hc-text-muted); }
.hc-field input, .hc-field textarea {
	background: var(--hc-ink); border: 1.5px solid var(--hc-border-2); border-radius: 10px;
	padding: .8rem 1rem; color: var(--hc-white); font: inherit; font-size: .95rem; resize: vertical;
}
.hc-field input:focus, .hc-field textarea:focus { border-color: var(--hc-amber); }
.hc-field-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hc-form-note { font-size: .82rem; color: var(--hc-text-faint); margin-top: .9rem; }
.hc-form-msg { border-radius: 10px; padding: .9rem 1.1rem; font-size: .9rem; margin-bottom: 1.2rem; }
.hc-form-msg.ok { background: rgba(96, 189, 116, .13); color: #8fdba3; border: 1px solid rgba(96,189,116,.3); }
.hc-form-msg.err { background: rgba(224, 96, 96, .13); color: #f0a3a3; border: 1px solid rgba(224,96,96,.3); }

/* ==========================================================================
   Footer
   ========================================================================== */
.hc-ft { background: var(--hc-ink-2); border-top: 1px solid var(--hc-border); padding-block: clamp(3rem, 5vw, 4.5rem) 1.6rem; }
.hc-ft-top { display: grid; grid-template-columns: 1.4fr .8fr .8fr; gap: 2.5rem; padding-bottom: 2.4rem; border-bottom: 1px solid var(--hc-border); }
.hc-ft-brand p { color: var(--hc-text-muted); font-size: .92rem; line-height: 1.7; margin-top: .8rem; max-width: 30ch; }
.hc-ft-actions { display: flex; flex-direction: column; gap: .6rem; margin-top: 1.3rem; }
.hc-ft-actions a { display: flex; align-items: center; gap: .6em; color: var(--hc-text-muted); font-size: .9rem; }
.hc-ft-actions a:hover { color: var(--hc-amber-2); }
.hc-ft-addr { display: flex; align-items: center; gap: .6em; color: var(--hc-text-faint); font-size: .86rem; margin-top: .9rem; }
.hc-ft-nav, .hc-ft-legal { display: flex; flex-direction: column; gap: .75rem; }
.hc-ft-nav .h, .hc-ft-legal .h { color: var(--hc-text-faint); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .3rem; }
.hc-ft-nav a, .hc-ft-legal a { color: var(--hc-text-muted); font-size: .92rem; }
.hc-ft-nav a:hover, .hc-ft-legal a:hover { color: var(--hc-white); }
.hc-ft-bottom { display: flex; justify-content: center; padding-top: 1.6rem; color: var(--hc-text-faint); font-size: .82rem; text-align: center; }

/* ==========================================================================
   Cookie banner
   ========================================================================== */
.hc-cookie {
	position: fixed; z-index: 180; right: 1rem; bottom: 1rem; left: 1rem; max-width: 640px; margin-inline: auto;
	background: var(--hc-card); border: 1px solid var(--hc-border-2); border-radius: var(--hc-radius);
	box-shadow: var(--hc-shadow); padding: 1.2rem 1.4rem;
	display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem;
}
.hc-cookie[hidden] { display: none; }
.hc-cookie p { flex: 1 1 260px; font-size: .87rem; color: var(--hc-text-muted); line-height: 1.6; }
.hc-cookie a { color: var(--hc-amber-2); font-weight: 600; }
.hc-cookie-btns { display: flex; gap: .6rem; flex-shrink: 0; }

/* ==========================================================================
   Accessibility widget
   ========================================================================== */
.hc-a11y-btn {
	position: fixed; z-index: 170; left: 1.1rem; bottom: 1.1rem;
	width: 54px; height: 54px; border-radius: 50%;
	background: var(--hc-amber); color: var(--hc-amber-ink);
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 30px -8px rgba(219,139,59,.6);
	transition: transform .15s ease;
}
.hc-a11y-btn:hover { transform: scale(1.06); }
.hc-a11y-panel {
	position: fixed; z-index: 175; left: 1.1rem; bottom: 5rem; width: min(340px, calc(100vw - 2.2rem));
	max-height: min(560px, calc(100vh - 7rem)); overflow-y: auto;
	background: var(--hc-card); border: 1px solid var(--hc-border-2); border-radius: var(--hc-radius);
	box-shadow: var(--hc-shadow);
}
.hc-a11y-panel[hidden] { display: none; }
.hc-a11y-hd { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--hc-border); position: sticky; top: 0; background: var(--hc-card); }
.hc-a11y-hd h2 { font-size: 1rem; font-weight: 800; color: var(--hc-white); }
.hc-a11y-x { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 8px; color: var(--hc-text-muted); }
.hc-a11y-x:hover { background: var(--hc-card-2); color: var(--hc-white); }
.hc-a11y-body { padding: 1.1rem 1.2rem 1.4rem; display: flex; flex-direction: column; gap: .6rem; }
.hc-a11y-group { background: var(--hc-ink); border: 1px solid var(--hc-border); border-radius: 10px; padding: .8rem .9rem; margin-bottom: .3rem; }
.hc-a11y-label { display: block; font-size: .82rem; color: var(--hc-text-muted); margin-bottom: .55rem; }
.hc-a11y-row { display: flex; gap: .5rem; }
.hc-a11y-row button { flex: 1; background: var(--hc-card-2); border: 1px solid var(--hc-border-2); border-radius: 8px; padding: .5rem 0; color: var(--hc-white); font-weight: 700; }
.hc-a11y-row button:hover { border-color: var(--hc-amber); color: var(--hc-amber-2); }
.hc-a11y-toggle {
	display: flex; align-items: center; gap: .7em; width: 100%; text-align: right;
	background: var(--hc-ink); border: 1px solid var(--hc-border); border-radius: 10px;
	padding: .75rem .9rem; color: var(--hc-text); font-size: .9rem; font-weight: 600;
}
.hc-a11y-toggle svg { color: var(--hc-text-faint); flex-shrink: 0; }
.hc-a11y-toggle:hover { border-color: var(--hc-border-2); }
.hc-a11y-toggle.is-on { background: rgba(219,139,59,.14); border-color: var(--hc-amber); color: var(--hc-white); }
.hc-a11y-toggle.is-on svg { color: var(--hc-amber-2); }
.hc-a11y-hint { font-size: .76rem; color: var(--hc-text-faint); line-height: 1.5; margin-top: .3rem; }
.hc-a11y-reset { margin-top: .3rem; text-align: center; padding: .7rem; border-radius: 10px; border: 1px solid var(--hc-border-2); color: var(--hc-text-muted); font-size: .86rem; font-weight: 600; }
.hc-a11y-reset:hover { color: var(--hc-white); border-color: var(--hc-white); }
.hc-a11y-statement { display: block; text-align: center; color: var(--hc-amber-2); font-size: .84rem; font-weight: 600; margin-top: .2rem; }

/* Applied accessibility states (site-wide) */
html.hc-a11y-contrast body { background: #000; color: #fff; }
html.hc-a11y-contrast :is(section, header, footer, .hc-card, .hc-a11y-panel, .hc-cookie) { background: #000 !important; border-color: #fff !important; }
html.hc-a11y-contrast .hc-exp-card, html.hc-a11y-contrast .hc-proj-card, html.hc-a11y-contrast .hc-contact-card, html.hc-a11y-contrast .hc-form { background: #000 !important; }
html.hc-a11y-contrast * { color: #fff !important; text-shadow: none !important; box-shadow: none !important; background-image: none !important; }
html.hc-a11y-contrast a, html.hc-a11y-contrast .hc-eyebrow, html.hc-a11y-contrast .n, html.hc-a11y-contrast button { color: #ffd166 !important; }
html.hc-a11y-contrast .hc-btn-primary { background: #ffd166 !important; color: #000 !important; }
html.hc-a11y-contrast img, html.hc-a11y-contrast svg circle.fill, html.hc-a11y-contrast .hc-hero::before, html.hc-a11y-contrast .hc-hero::after { opacity: 0 !important; }

html.hc-a11y-readable body { letter-spacing: .01em; }
html.hc-a11y-readable p, html.hc-a11y-readable li, html.hc-a11y-readable .hc-lead { line-height: 1.95 !important; letter-spacing: .015em !important; word-spacing: .04em; }

html.hc-a11y-links a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px; }
html.hc-a11y-links a:not(.hc-btn):not(.hc-cta) { color: var(--hc-amber-2) !important; }

html.hc-a11y-headings h1, html.hc-a11y-headings h2, html.hc-a11y-headings h3 {
	outline: 2px dashed var(--hc-amber); outline-offset: 6px; background: rgba(219,139,59,.08);
}

html.hc-a11y-motion *, html.hc-a11y-motion *::before, html.hc-a11y-motion *::after {
	animation: none !important; transition: none !important; scroll-behavior: auto !important;
}

html.hc-a11y-cursor, html.hc-a11y-cursor * {
	cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'><path d='M6 3 L34 18 L20 21 L15 35 Z' fill='%23db8b3b' stroke='%23100f13' stroke-width='2' stroke-linejoin='round'/></svg>") 6 3, auto !important;
}

/* ==========================================================================
   Blog listing
   ========================================================================== */
.hc-page-hero { padding-block: clamp(3rem, 5vw, 5rem) 2rem; background: var(--hc-ink); }
.hc-crumbs { display: flex; align-items: center; gap: .5em; font-size: .84rem; color: var(--hc-text-faint); margin-bottom: 1.1rem; }
.hc-crumbs a:hover { color: var(--hc-amber-2); }
.hc-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; padding-block: 1rem 5rem; }
.hc-blog-card { background: var(--hc-card); border: 1px solid var(--hc-border); border-radius: var(--hc-radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .18s ease, border-color .18s ease; }
.hc-blog-card:hover { transform: translateY(-4px); border-color: var(--hc-border-2); }
.hc-blog-card .thumb { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.hc-blog-card .thumb svg, .hc-blog-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.hc-blog-card .b { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.hc-blog-card .meta { display: flex; align-items: center; gap: .5em; font-size: .78rem; color: var(--hc-amber-2); font-weight: 700; margin-bottom: .6rem; }
.hc-blog-card .meta .sep { color: var(--hc-text-faint); }
.hc-blog-card .meta .cat { color: var(--hc-text-faint); font-weight: 600; }
.hc-blog-card h2 { font-size: 1.08rem; font-weight: 700; color: var(--hc-white); line-height: 1.4; }
.hc-blog-card p { margin-top: .6rem; color: var(--hc-text-muted); font-size: .88rem; line-height: 1.65; flex: 1; }
.hc-blog-card .more { margin-top: 1rem; font-size: .86rem; font-weight: 700; color: var(--hc-amber-2); }
.hc-blog-empty { padding: 4rem 0; text-align: center; color: var(--hc-text-muted); }

.navigation.pagination { display: flex; justify-content: center; padding-bottom: 5rem; }
.navigation.pagination .nav-links { display: flex; align-items: center; gap: .5rem; }
.navigation.pagination a, .navigation.pagination span { display: flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding-inline: .6rem; border-radius: 10px; border: 1px solid var(--hc-border); color: var(--hc-text-muted); font-size: .88rem; font-weight: 600; }
.navigation.pagination a:hover { border-color: var(--hc-amber); color: var(--hc-amber-2); }
.navigation.pagination span.current { background: var(--hc-amber); border-color: var(--hc-amber); color: var(--hc-amber-ink); }

/* ==========================================================================
   Single article
   ========================================================================== */
.hc-article-hd { max-width: 46rem; margin-bottom: 2rem; }
.hc-article-hd h1 { font-size: clamp(1.7rem, 1.3rem + 1.8vw, 2.6rem); font-weight: 800; color: var(--hc-white); line-height: 1.28; letter-spacing: -.01em; }
.hc-article-hero { aspect-ratio: 21/9; border-radius: var(--hc-radius); overflow: hidden; border: 1px solid var(--hc-border); margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.hc-article-hero svg, .hc-article-hero img { width: 100%; height: 100%; object-fit: cover; }
.hc-single-wrap { display: grid; grid-template-columns: minmax(0, 46rem) auto; gap: 3rem; padding-bottom: 5rem; }

.hc-prose { color: var(--hc-text); font-size: 1.02rem; line-height: 1.85; }
section[data-cream] .hc-prose { color: var(--hc-cream-text); }
.hc-prose > * + * { margin-top: 1.3rem; }
.hc-prose h2 { font-size: 1.4rem; font-weight: 800; color: var(--hc-white); margin-top: 2.4rem; letter-spacing: -.005em; }
.hc-prose h3 { font-size: 1.15rem; font-weight: 700; color: var(--hc-white); margin-top: 2rem; }
section[data-cream] .hc-prose h2, section[data-cream] .hc-prose h3 { color: var(--hc-cream-text); }
.hc-prose p { color: var(--hc-text-muted); }
section[data-cream] .hc-prose p { color: var(--hc-cream-text-muted); }
.hc-prose ul, .hc-prose ol { padding-inline-start: 1.4rem; color: var(--hc-text-muted); display: grid; gap: .55rem; }
.hc-prose ul { list-style: disc; }
.hc-prose ol { list-style: decimal; }
.hc-prose li::marker { color: var(--hc-amber-2); }
.hc-prose strong { color: var(--hc-white); }
section[data-cream] .hc-prose strong { color: var(--hc-cream-text); }
.hc-prose a { color: var(--hc-amber-2); text-decoration: underline; text-underline-offset: 2px; }
.hc-prose blockquote { border-inline-start: 3px solid var(--hc-amber); padding-inline-start: 1.2rem; color: var(--hc-text); font-weight: 600; font-size: 1.08rem; }
.hc-prose table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.hc-prose th, .hc-prose td { border: 1px solid var(--hc-border-2); padding: .7rem .8rem; text-align: right; color: var(--hc-text-muted); }
.hc-prose th { color: var(--hc-white); background: var(--hc-card-2); }

.hc-inline-cta { background: var(--hc-card); border: 1px solid var(--hc-border-2); border-radius: var(--hc-radius); padding: 1.6rem 1.8rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.hc-inline-cta b { display: block; color: var(--hc-white); font-size: 1.05rem; }
.hc-inline-cta span { color: var(--hc-text-muted); font-size: .88rem; }
.hc-inline-cta .btns { display: flex; gap: .7rem; flex-wrap: wrap; }

.hc-article-side { width: 260px; }
.hc-side-card { position: sticky; top: 100px; background: var(--hc-card); border: 1px solid var(--hc-border); border-radius: var(--hc-radius); padding: 1.5rem; text-align: center; }
.hc-side-card b { display: block; color: var(--hc-white); font-size: 1rem; margin-bottom: .4rem; }
.hc-side-card p { color: var(--hc-text-muted); font-size: .86rem; margin-bottom: 1.1rem; }
.hc-side-card .hc-btn { width: 100%; margin-bottom: .6rem; }

.hc-related { background: var(--hc-ink-2); border-top: 1px solid var(--hc-border); }
.hc-related h2 { font-size: 1.3rem; font-weight: 800; color: var(--hc-white); margin-bottom: 1.6rem; }
.hc-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }

.hc-back { display: inline-flex; align-items: center; gap: .5em; color: var(--hc-text-muted); font-size: .88rem; font-weight: 600; margin-bottom: 1.5rem; }
.hc-back:hover { color: var(--hc-amber-2); }

/* ==========================================================================
   Legal pages (privacy / accessibility)
   ========================================================================== */
.hc-legal { padding-block: 1rem 5rem; }
.hc-legal-in { max-width: 46rem; margin-inline: auto; }
.hc-legal-updated { color: var(--hc-text-faint); font-size: .86rem; margin-top: .5rem; margin-bottom: 2.2rem; }
.hc-legal .hc-inline-cta { margin-top: 3rem; }

/* ==========================================================================
   404
   ========================================================================== */
.hc-404 { min-height: 60vh; display: flex; align-items: center; justify-content: center; text-align: center; }
.hc-404 .n { font-size: 6rem; font-weight: 900; color: var(--hc-card-2); line-height: 1; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1080px) {
	.hc-nav { display: none; }
	.hc-tel-txt { display: none; }
	.hc-burger { display: flex; }
	.hc-about-grid, .hc-contact-grid, .hc-projects-top { grid-template-columns: 1fr; }
	.hc-about-art { order: -1; aspect-ratio: 16/9; }
	.hc-grid-6 { grid-template-columns: repeat(2, 1fr); }
	.hc-culture-grid { grid-template-columns: 1fr; gap: 2rem; }
	.hc-proj-cat-grid { grid-template-columns: repeat(2, 1fr); }
	.hc-blog-grid, .hc-related-grid { grid-template-columns: repeat(2, 1fr); }
	.hc-single-wrap { grid-template-columns: 1fr; }
	.hc-article-side { width: 100%; }
	.hc-side-card { position: static; }
}
@media (max-width: 680px) {
	.hc-cta span { display: none; }
	.hc-hero-stats { gap: 1.5rem; }
	.hc-grid-6 { grid-template-columns: 1fr; }
	.hc-proj-cat-grid { grid-template-columns: 1fr 1fr; }
	.hc-blog-grid, .hc-related-grid { grid-template-columns: 1fr; }
	.hc-form-row { grid-template-columns: 1fr; }
	.hc-ft-top { grid-template-columns: 1fr; gap: 2rem; }
	.hc-a11y-btn { width: 48px; height: 48px; left: .8rem; bottom: .8rem; }
	.hc-a11y-panel { left: .8rem; right: .8rem; width: auto; bottom: 4.6rem; }
	.hc-cookie { right: .7rem; left: .7rem; bottom: .7rem; }
}
