/* Qoraventhessalia — shared improvements, retaining the original design tokens. */
:root {
 --font-size-2xl: clamp(1.45rem, 1.3rem + 0.7vw, 1.75rem);
 --font-size-3xl: clamp(1.75rem, 1.55rem + 0.9vw, 2.2rem);
 --font-size-4xl: clamp(2.15rem, 1.9rem + 1.3vw, 3rem);
 --font-size-base: 0.95rem;
}
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-family-body); }
img { max-width: 100%; height: auto; }
.hero-dominant-img, .about-hero-image, .gallery-tile-img,
.portfolio-hero-img, .contact-hero-image, .gallery-wall-track img,
.featured-rail-track img { object-fit: cover; }
.hero-title { font-size: var(--font-size-4xl); }
.section-title { font-size: var(--font-size-3xl); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible {
 outline: 3px solid var(--color-primary); outline-offset: 3px;
}
.site-header { position: sticky; top: 0; width: 100%; z-index: 1500; }
.site-header-inner { grid-template-columns: minmax(190px,1fr) auto minmax(135px,1fr); gap:clamp(12px,2vw,28px); }
.site-brand { display:inline-flex; gap:11px; align-items:center; min-width:0; color:var(--color-on-surface); text-decoration:none; }
.site-brand-mark { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border:1px solid var(--color-primary); border-radius:50%; font:600 22px var(--font-family-heading); color:var(--color-primary); }
.site-brand-name { display:block; font:600 clamp(13px,1.3vw,17px)/1.3 var(--font-family-heading); letter-spacing:.015em; }
.site-brand-caption { display:block; font-size:9px; text-transform:uppercase; letter-spacing:.15em; color:var(--color-on-surface-secondary); }
.site-desktop-links { display:flex; align-items:center; flex-wrap:nowrap; gap:clamp(12px,1.7vw,27px); }
.site-desktop-links a { display:block; white-space:nowrap; font:500 11px/1.3 var(--font-family-body); text-transform:uppercase; letter-spacing:.045em; color:var(--color-on-surface); transition:color .2s; }
.site-desktop-links a:hover, .site-desktop-links a[aria-current="page"] { color:var(--color-primary); }
.site-header-actions { display:flex; justify-content:flex-end; align-items:center; gap:12px; }
.site-header-cta { display:inline-block; padding:11px 17px; border-radius:var(--border-radius-full); background:var(--color-primary); color:var(--color-on-primary)!important; text-align:center; white-space:nowrap; font:500 11px var(--font-family-body); letter-spacing:.04em; text-transform:uppercase; }
.site-header-cta:hover { filter:brightness(.88); }
.site-menu-toggle { display:none; flex:0 0 auto; color:var(--color-on-surface); padding:9px; cursor:pointer; background:transparent; border:1px solid var(--color-outline); border-radius:7px; }
.site-mobile-menu { display:none; padding:16px clamp(20px,5vw,40px) 24px; background:var(--color-surface); border-top:1px solid var(--color-outline); box-shadow:0 18px 26px rgba(0,0,0,.09); }
.site-mobile-menu:not([hidden]) { display:flex; flex-direction:column; gap:0; }
.site-mobile-menu a { padding:12px 0; border-bottom:1px solid var(--color-outline); color:var(--color-on-surface); font-family:var(--font-family-heading); font-size:22px; }
.site-mobile-menu .site-mobile-cta { padding:13px 18px; margin-top:18px; color:var(--color-on-primary); text-align:center; font:500 13px var(--font-family-body); background:var(--color-primary); border-radius:999px; }
body.site-menu-open { overflow:hidden; }
.site-header .site-mobile-menu { max-height:calc(100dvh - 72px); overflow-y:auto; }
.skip-to-content { position:fixed; top:-65px; left:10px; z-index:3000; padding:12px 16px; background:var(--color-primary); color:#fff; }
.skip-to-content:focus { top:8px; }
.footer-legal-right { display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.footer-legal-right a, .footer-legal-right a:visited { color:#f4ebe1; text-decoration:none; }
.footer-legal-right a:hover { color:#fff; text-decoration:underline; }
.footer-legal-right a:focus-visible { outline:2px solid #fff; }
.footer-directory .footer-nav-list { gap:12px; }
.site-legal-details { padding:22px 0 0; margin-top:22px; border-top:1px solid rgba(255,255,255,.24); color:#e3dcd3; font-size:12px; line-height:1.85; }
.site-legal-details strong { color:#fff; font-weight:600; }
.site-legal-details p { overflow-wrap:anywhere; }
.site-legal-details a, .site-legal-details a:visited { color:#f4ebe1; text-decoration:none; }
.site-legal-details a:hover { text-decoration:underline; }
.legal-main {  width:100%; background:var(--color-surface); }
.legal-container { margin:0 auto; max-width:880px; }
.legal-eyebrow { display:block; font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--color-primary); margin-bottom:12px; }
.legal-container h1 { font-size:var(--font-size-4xl); font-family:var(--font-family-heading); line-height:1.15; margin-bottom:14px; }
.legal-intro { max-width:700px; font-size:var(--font-size-lg); color:var(--color-on-surface-secondary); margin-bottom:26px; }
.legal-container .legal-info { padding:22px; border:1px solid var(--color-outline); border-left:3px solid var(--color-primary); border-radius:var(--border-radius-sm); background:var(--color-surface-elevated); margin:20px 0 36px; font-size:14px; line-height:1.85; }
.legal-info p { margin-bottom:4px; overflow-wrap:anywhere; }
.legal-section { margin:26px 0 0; padding-top:22px; border-top:1px solid var(--color-outline); }
.legal-section h2 { font:600 var(--font-size-2xl)/1.3 var(--font-family-heading); margin-bottom:10px; }
.legal-section p, .legal-section li { margin:0 0 12px; line-height:1.8; color:var(--color-on-surface-secondary); }
.legal-container a, .legal-container a:visited { color:var(--color-primary); text-decoration:underline; text-underline-offset:3px; }
.legal-container a:hover { color:var(--color-accent); }
.legal-back { display:inline-block; margin-top:35px; margin-bottom:35px; padding:12px 18px; border:1px solid var(--color-primary); border-radius:999px; text-decoration:none!important; }
.journal-main { background:var(--color-surface); padding:clamp(50px,7vw,100px) 20px; }
.journal-inner { margin:0 auto; max-width:var(--content-max-width); }
.journal-hero { max-width:850px; margin-bottom:48px; }
.journal-hero h1 { font:600 clamp(2.2rem,4vw,4rem)/1.15 var(--font-family-heading); margin:18px 0; }
.journal-hero p { max-width:680px; color:var(--color-on-surface-secondary); }
.journal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.journal-card { background:var(--color-surface-elevated); border:1px solid var(--color-outline); border-radius:var(--border-radius-md); overflow:hidden; }
.journal-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.journal-card-content { padding:25px; }
.journal-card h2 { font:600 var(--font-size-2xl)/1.3 var(--font-family-heading); margin:0 0 10px; }
.journal-card p { color:var(--color-on-surface-secondary); margin-bottom:12px; }
.journal-card .journal-tag { font-size:11px; color:var(--color-primary); letter-spacing:.12em; text-transform:uppercase; margin-bottom:10px; }
.journal-article { max-width:850px; margin:54px auto 0; }
.journal-article h2 { font:600 var(--font-size-3xl) var(--font-family-heading); margin:18px 0; }
.journal-article p { margin:12px 0; line-height:1.8; }
.journal-contact { display:inline-block; border-radius:99px; padding:13px 25px; background:var(--color-primary); color:#fff; margin-top:24px; }
.home-seo-editorial { padding:clamp(48px,6vw,80px) 20px; background:var(--color-surface-elevated); }
.home-seo-editorial-inner { max-width:var(--content-max-width); margin:auto; }
.home-seo-editorial h2 { max-width:780px; margin:0 0 24px; }
.home-seo-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 52px; }
.home-seo-columns p { color:var(--color-on-surface-secondary); line-height:1.85; }
.not-found-main { min-height:50vh; padding:90px 20px; max-width:960px; margin:auto; text-align:center; }
.not-found-main h1 { font:600 var(--font-size-4xl) var(--font-family-heading); }
@media(max-width:1180px) {
 .site-header-inner { grid-template-columns:minmax(0,1fr) auto; }
 .site-desktop-links { display:none; }
 .site-menu-toggle { display:inline-flex; align-items:center; justify-content:center; }
}
@media(max-width:767px) {
 .site-header-inner { height:72px; padding:12px 20px; }
 .site-header-cta { display:none; }
 .site-brand-name { font-size:15px; }
 .site-brand-mark { width:36px; height:36px; flex-basis:36px; }
 .journal-grid,.home-seo-columns { grid-template-columns:1fr; }
 .journal-card-content { padding:20px; }
 .hero-section,.hero-title,.section-title { overflow-wrap:anywhere; word-break:break-word; white-space:normal; }
 .legal-main { padding-inline:16px; }
 .legal-container .legal-info { padding:16px; }
 .footer-legal-right { justify-content:flex-start; }
}
@media(min-width:1181px) { .site-mobile-menu { display:none!important; } }

.gallery-tile[hidden] { display:none!important; }
.gallery-wall-track:has(.gallery-tile[hidden]) { grid-template-columns:repeat(4,minmax(0,1fr)); }
.site-main-anchor { display:block; height:0; scroll-margin-top:84px; }
.portfolio-horizontal-rail,.featured-rail-track { overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.portfolio-horizontal-rail.is-dragging,.featured-rail-track.is-dragging { cursor:grabbing; user-select:none; scroll-snap-type:none; scroll-behavior:auto; }
@media(max-width:767px) { .gallery-wall-track:has(.gallery-tile[hidden]) { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.gallery-cards-strip,.project-carousel-track { overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.gallery-cards-strip.is-dragging,.project-carousel-track.is-dragging { cursor:grabbing; user-select:none; scroll-snap-type:none; scroll-behavior:auto; }
@media(max-width:767px){.site-header .site-header-actions{min-width:0}.site-header-inner>*{min-width:0}.journal-grid{grid-template-columns:minmax(0,1fr)}}
