/* Site-wide refinements aligned with the original Velarenthessique palette. */
:root { --site-header-height: 84px; }
html { scroll-behavior: smooth; scroll-padding-top: 102px; }
body { margin: 0; min-width: 0; font-family: var(--font-family-body); }
img { max-width: 100%; height: auto; }
.site-main { display: contents; }
.site-header.navigation-section { position: fixed; top: 0; left: 0; z-index: 2000; width: 100%; background: rgba(34,45,40,.94); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid rgba(255,255,255,.17); transition: box-shadow .2s, background .2s; }
.site-header.site-header-scrolled { background: #26342e; box-shadow: 0 10px 32px rgba(22,32,24,.22); }
.site-header-inner { max-width: 1440px; margin-inline: auto; padding: 13px clamp(18px,3.5vw,56px); min-height: var(--site-header-height); display: flex; align-items: center; gap: 28px; justify-content: space-between; }
.site-brand { display: flex; align-items: center; flex-shrink: 0; gap: 11px; color: #f8f1e7 !important; text-decoration: none; }
.site-brand:hover, .site-brand:focus { color: white !important; }
.site-brand-mark { display: grid; place-items: center; width: 43px; height: 43px; flex-shrink: 0; border: 1px solid #cebb9f; border-radius: 50%; color: #e6d5bd; font: italic 29px Georgia,serif; }
.site-brand-wordmark { font: 500 clamp(17px,1.3vw,22px) Georgia,'Times New Roman',serif; letter-spacing: .007em; white-space: nowrap; line-height: 1.15; }
.site-brand-subtitle { display: block; margin-top: 5px; font: 600 8px/1.2 Arial,sans-serif; letter-spacing: .22em; color: #d8c2a7; }
.site-header-menu { display: flex; flex: 1; align-items: center; gap: clamp(16px,2.2vw,30px); justify-content: flex-end; }
.site-nav-links { display: flex; align-items: center; flex-wrap: nowrap; gap: clamp(13px,1.7vw,24px); }
.site-header .site-nav-link { color: #f4efea; opacity: .86; font: 500 12px/1.4 Arial,sans-serif; text-decoration: none; letter-spacing: .05em; position: relative; padding: 10px 0; white-space: nowrap; }
.site-header .site-nav-link:hover, .site-header .site-nav-link[aria-current="page"] { opacity: 1; color: #fff; }
.site-header .site-nav-link[aria-current="page"]::after { content: ''; height: 1px; background: #dbc3a4; position: absolute; bottom: 4px; left: 0; right: 0; }
.site-header-cta { background: #d7b995; border: 1px solid #d7b995; color: #203128 !important; padding: 13px 17px; border-radius: 999px; display: inline-flex; justify-content: center; gap: 10px; align-items: center; white-space: nowrap; text-decoration: none !important; font: 700 11px/1.3 Arial,sans-serif; letter-spacing: .045em; transition: background .2s, transform .2s; }
.site-header-cta:hover { background: #f5debd; transform: translateY(-1px); }
.site-menu-toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 9px; border: 1px solid rgba(255,255,255,.4); border-radius: 4px; background: transparent; color: white; cursor: pointer; }
.site-menu-icon { width: 23px; display: flex; flex-direction: column; gap: 5px; }
.site-menu-icon i { display: block; height: 1.5px; background: white; width: 100%; transition: transform .18s, opacity .18s; }
.site-header a:focus-visible, .site-menu-toggle:focus-visible { outline: 2px solid #eed2ac; outline-offset: 4px; }
.site-menu-lock { overflow: hidden; }
.site-header.site-menu-open .site-menu-icon i:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.site-header.site-menu-open .site-menu-icon i:nth-child(2) { opacity: 0; }
.site-header.site-menu-open .site-menu-icon i:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.site-editorial-page, .site-legal-main { background: var(--color-surface); min-height: 60vh; padding: clamp(130px,12vw,175px) clamp(20px,5vw,74px) 100px; color: var(--color-on-surface); }
.site-editorial-page > *, .site-legal-content { width: min(100%,1060px); margin-inline: auto; }
.site-editorial-hero { padding: 0 0 70px; border-bottom: 1px solid #cfc3b3; }
.site-editorial-hero h1, .site-legal-main h1 { font-family: var(--font-family-heading); font-size: var(--font-size-4xl); line-height: 1.2; max-width: 780px; margin: 20px 0 25px; }
.site-editorial-hero p, .site-legal-lede { font-size: 1.1rem; color: #57564e; line-height: 1.7; max-width: 750px; }
.site-eyebrow, .site-journal-number { display: inline-block; font: 700 11px/1.4 Arial,sans-serif; letter-spacing: .18em; text-transform: uppercase; color: #856d55; }
.site-journal-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; padding-top: 40px; }
.site-journal-card { background: #fffdf9; border: 1px solid #ded3c3; padding: clamp(24px,3vw,40px); min-width: 0; }
.site-journal-card h2 { font-family: var(--font-family-heading); font-size: var(--font-size-2xl); margin: 19px 0; line-height: 1.3; }
.site-journal-card p { color: #5a5b54; line-height: 1.75; }
.site-journal-card details { margin-top: 24px; padding-top: 20px; border-top: 1px solid #dcd0c0; }
.site-journal-card summary { cursor:pointer; color: #2e3b36; font-weight: 600; display: flex; align-items: center; justify-content: space-between; }
.site-journal-expanded { margin-top: 16px; }
.site-home-insights { padding: clamp(70px,7vw,110px) clamp(20px,6vw,80px); background: #ece6dc; }
.site-insights-intro, .site-insights-grid { max-width: 1180px; margin-inline: auto; }
.site-insights-intro { max-width: 850px; margin-bottom: 45px; }
.site-insights-intro h2 { font-family: var(--font-family-heading); font-size: var(--font-size-3xl); margin: 12px 0 20px; color: #283b32; }
.site-insights-intro p { color: #595f57; line-height: 1.8; }
.site-insights-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.site-insight-card { padding: 28px 24px; border: 1px solid #d3c6b8; background: #f6f2ec; }
.site-insight-card h3 { color: #24362d; font: 500 25px/1.25 Georgia,serif; margin: 0 0 15px; }
.site-insight-card p { font-size: .94rem; line-height: 1.75; color: #565b55; }
.site-legal-content { max-width: 900px; }
.site-legal-lede { margin-bottom: 18px; }
.site-legal-updated { color: #726d64; font-size: .9rem; margin-bottom: 28px; }
.site-legal-note { margin: 25px 0 35px; padding: 23px 25px; background: #eae4da; border: 1px solid #d8cbbc; }
.site-legal-note > strong { font: 600 24px Georgia,serif; }
.site-legal-note > p { margin: 10px 0 18px; line-height: 1.65; color: #4f584e; }
.site-legal-note dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap: 15px 25px; }
.site-legal-note dt { font-size: .75rem; letter-spacing: .06em; color:#586259; text-transform:uppercase; font-weight:700; margin-bottom: 4px; }
.site-legal-note dd { margin:0; color:#28352e; overflow-wrap:anywhere; line-height:1.55; }
.site-legal-section { padding: 25px 0; border-top: 1px solid #d6ccbc; }
.site-legal-section h2 { font-family: var(--font-family-heading); font-size: var(--font-size-2xl); margin-bottom: 12px; line-height: 1.3; }
.site-legal-section p { color: #555b54; line-height: 1.9; max-width: 850px; }
.site-legal-home-link { margin-top: 26px; display: inline-block; padding: 14px 22px; border-radius: 999px; border: 1px solid #2e3b36; color: #2e3b36 !important; text-decoration: none !important; font-weight:600; }
.site-legal-home-link:hover { background: #2e3b36; color: #fff !important; }
.site-legal-main a, .site-legal-main a:visited { color: #2e3b36; text-decoration: none; }
.site-legal-main a:hover { color: #785838; }
.site-legal-main a:active { color: #65462b; }
.site-legal-main a:focus-visible { outline:2px solid #785838; outline-offset:4px; }
.site-business-details { padding: 28px 0; border-top: 1px solid rgba(246,242,236,.24); border-bottom: 1px solid rgba(246,242,236,.24); width:100%; margin: 30px 0 26px; }
.site-business-details-copy { display:flex; flex-wrap: wrap; align-items:baseline; gap:10px 26px; margin-bottom: 19px; }
.site-business-details-copy strong { font:500 23px/1.35 Georgia,serif; color: #f3ebdf; }
.site-business-details-copy span { color: #dfd4c4; line-height: 1.5; font-size: .83rem; }
.site-business-grid { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px 25px; }
.site-business-grid dt { color: #d5c3aa; text-transform: uppercase; letter-spacing: .08em; font-size: .69rem; font-weight:700; margin-bottom: 5px; }
.site-business-grid dd { margin:0; font-size:.81rem; line-height:1.55; color:#f4f0e9; overflow-wrap:anywhere; }
.site-footer-legal-link, .site-footer-legal-link:visited { color: #f1e9df !important; text-decoration: none !important; font: 500 .85rem/1.6 Arial,sans-serif; }
.site-footer-legal-link:hover { color: #e7c7a6 !important; }
.site-footer-legal-link:focus-visible { outline: 2px solid #dfc0a0; outline-offset: 4px; }
.vel-footer-legal-links { display:flex; flex-wrap:wrap; gap: 10px 18px; }
.site-form-message { margin-top: 12px; color: #2e3b36; font-size: .92rem; line-height: 1.5; }
.site-contact-location { margin: 15px 0; font-size: .85rem; color: #5a5e58; }
.site-404 { text-align: center; }
.site-404 > * { max-width: 690px; margin-left: auto; margin-right: auto; }
.site-404 h1 { margin-block: 20px; }
@media (max-width: 1150px) { .site-header-inner { gap: 15px; } .site-header-menu { gap: 16px; } .site-nav-links { gap: 13px; } .site-brand-wordmark { font-size: 18px; } }
@media (max-width: 850px) {
  .site-header-inner { min-height: 73px; padding: 12px 22px; }
  .site-menu-toggle { display:inline-flex; flex-shrink:0; }
  .site-header-menu { display:none; position: fixed; top: 73px; left:0; right:0; height: calc(100dvh - 73px); overflow-y:auto; padding: 22px 22px 50px; z-index: 2090; background: #26372f; border-top: 1px solid rgba(255,255,255,.15); flex-direction: column; justify-content: flex-start; align-items:stretch; gap:25px; }
  .site-header.site-menu-open .site-header-menu { display:flex; }
  .site-nav-links { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .site-header .site-nav-link { color:#fff; width:100%; padding:15px 6px; border-bottom: 1px solid rgba(255,255,255,.2); font-size: 17px; }
  .site-header .site-nav-link[aria-current="page"]::after { display:none; }
  .site-header-cta { align-self: stretch; text-align:center; min-height:49px; }
  .site-business-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-insights-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .hero-section, .hero-title, .section-title { overflow-wrap:anywhere; word-break:break-word; white-space:normal; }
  .site-journal-grid, .site-insights-grid, .site-legal-note dl, .site-business-grid { grid-template-columns:minmax(0,1fr); }
  .site-editorial-page,.site-legal-main { padding: 118px 20px 72px; }
  .site-editorial-hero { padding-bottom: 45px; }
  .site-home-insights { padding:65px 18px; }
  .site-insight-card { padding:25px 21px; }
  .site-legal-section { padding:23px 0; }
  .site-business-details { margin-top:25px; }
  .site-brand-wordmark { font-size: clamp(15px,4vw,19px); }
  .site-brand-mark { width:37px; height:37px; font-size: 23px; }
  .site-header-inner { padding: 12px 15px; }
  .site-header-menu { padding-inline: 20px; }
  .site-legal-main a { overflow-wrap:anywhere; }
  .site-editorial-page, .site-legal-main, .site-main { min-width:0; }
}
@media (max-width: 350px) { .site-brand-wordmark { font-size: 14px; } .site-brand-subtitle { letter-spacing:.12em; font-size:7px; } .site-header-inner { gap:8px; } }
@media (prefers-reduced-motion: reduce) { *,*:before,*:after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; } }
@media (max-width: 767px) {
  .about-cta-container { flex-direction: column; align-items: stretch; gap: 20px; min-width:0; }
  .about-cta-left, .about-cta-right { width: 100%; max-width: 100%; min-width:0; flex-shrink: 1; }
  .about-cta-action-rail { width: 100%; max-width: 100%; min-width:0; box-sizing: border-box; gap:10px; }
  .about-cta-action-label { min-width:0; font-size:.82rem; overflow-wrap:anywhere; }
  .service-matrix-intro { min-width:0; width:100%; max-width:100%; }
  .service-matrix-intro .service-matrix-cta-wrap, .service-matrix-intro .service-matrix-cta-wrap a, .service-matrix-intro .service-matrix-cta-wrap .btn { display:block; box-sizing:border-box; max-width:100%; min-width:0; width:100%; }
  .service-matrix-intro .btn { padding:14px 10px; font-size:.8rem; white-space:normal; overflow-wrap:anywhere; }
  .spotlight-carousel-track { width:100%; max-width:100%; margin-right:0; padding-right:12px; box-sizing:border-box; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
  .spotlight-card { scroll-snap-align:start; flex:0 0 min(80vw,320px); min-width:0; }
  .vel-project-category, .project-card-category { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
}
@media (max-width: 350px) {
 .vel-hero-cta { width:min(100%,205px); max-width:205px; font-size:.75rem; padding-inline:8px; white-space:normal; }
 .vel-project-category { font-size:.57rem; text-align:right; flex-shrink:1; }
 .project-card-category { font-size:.6rem; }
}
@media (max-width: 350px) {
 .spotlight-carousel-cta { max-width: calc(100vw - 64px); width: 100%; padding: 13px 11px; font-size:.75rem; white-space:normal; overflow-wrap:anywhere; }
}
.site-journal-image { width:100%; aspect-ratio:16/10; height:auto; object-fit:cover; margin-bottom:21px; background:#c6b7a4; }
.spotlight-carousel-track { touch-action:pan-y pan-x; }
.spotlight-carousel-track.is-dragging { cursor:grabbing; scroll-snap-type:none; user-select:none; }
@media (hover:hover) and (pointer:fine) { .spotlight-carousel-track { cursor:grab; } }
