/* ==========================================================================
   FALCON FAMILY 2.1.0 — FALCON BLACK EDITORIAL VISUAL SYSTEM
   Authoritative visual layer. No cursor glow, tilt or decorative gimmicks.
   ========================================================================== */

:root {
  --gold: #c9a65b;
  --gold-bright: #e2c77f;
  --gold-deep: #967126;
  --ink: #0e100f;
  --ink-soft: #171a18;
  --paper: #f2efe8;
  --paper-bright: #fbfaf6;
  --text-muted: #6f706b;
  --line-dark: rgba(255,255,255,.105);
  --line-light: rgba(14,16,15,.115);
  --display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --radius-control: 12px;
  --radius-card: 20px;
  --radius-media: 16px;
  --shadow-soft: 0 20px 54px rgba(10,12,11,.08);
  --shadow-deep: 0 28px 72px rgba(0,0,0,.25);
}

/* Typography: one display family + one interface family. */
h1,h2,h3,
.hero-title-primary,
.hero h1 em,
.facts-grid strong,
.service-visual-card figcaption strong,
.footer-masthead-copy strong {
  font-family: var(--display) !important;
}

h1,h2,h3 { text-wrap: balance; }

.hero-title-primary {
  font-weight: 600 !important;
  letter-spacing: -.045em !important;
}

.hero h1 em {
  font-style: italic !important;
  font-weight: 500 !important;
  letter-spacing: -.035em;
}

.section-heading h2,
.intro h2,
.principles h2,
.contact h2 {
  letter-spacing: -.042em;
}

.eyebrow,
.card-kicker,
.marker-number,
.marker-label,
.footer-label,
.service-kicker {
  letter-spacing: .16em;
}

.gold-rule {
  width: 48px;
  height: 1px;
  background: var(--gold);
}

/* Header: architectural, restrained and precise. */
.site-header {
  background: rgba(12,14,13,.93) !important;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: none !important;
  backdrop-filter: blur(16px) saturate(110%);
  -webkit-backdrop-filter: blur(16px) saturate(110%);
}

.site-header::after {
  opacity: .28 !important;
}

.site-header.is-scrolled {
  background: rgba(10,12,11,.975) !important;
  border-bottom-color: rgba(201,166,91,.16);
  box-shadow: 0 12px 34px rgba(0,0,0,.11) !important;
}

.desktop-nav { gap: clamp(24px,2.6vw,40px); }
.desktop-nav a {
  color: rgba(251,250,246,.68);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .115em;
}
.desktop-nav a:hover { color: var(--paper-bright); }
.desktop-nav a::after { background: var(--gold) !important; }

.language-current {
  min-height: 42px;
  min-width: 58px;
  padding-inline: 13px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  letter-spacing: .1em;
}
.language-current:hover { border-color: rgba(226,199,127,.35); }
.language-menu {
  border-radius: 12px;
  border-color: rgba(226,199,127,.18);
  box-shadow: 0 26px 70px rgba(0,0,0,.30);
}
.language-menu a { border-radius: 8px; }

/* Legacy controls normalized by the v2.7 Rounded Glass interaction layer. */
.button,
.contact-direct-button,
.form-submit,
.imprint-map-button,
.mobile-contact-cta,
.cookie-action {
  min-height: 54px;
  border-radius: var(--radius-control) !important;
  letter-spacing: .095em;
  box-shadow: none;
}

.button,
.contact-direct-button,
.form-submit,
.imprint-map-button {
  padding-inline: 20px 13px;
}

.button:hover,
.contact-direct-button:hover,
.form-submit:hover,
.imprint-map-button:hover {
  transform: translateY(-1px) !important;
}

.button-gold,
.contact-direct-button,
.form-submit,
.cookie-action-primary {
  color: #101210;
  background: var(--gold-bright) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28) !important;
}

.button-gold:hover,
.contact-direct-button:hover,
.form-submit:hover,
.cookie-action-primary:hover {
  background: #e8d08f !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 12px 28px rgba(0,0,0,.08) !important;
}

.button-ghost,
.imprint-map-button {
  color: var(--paper-bright);
  background: rgba(255,255,255,.025) !important;
  border-color: rgba(255,255,255,.16) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025) !important;
}
.button-ghost:hover,
.imprint-map-button:hover {
  background: rgba(255,255,255,.055) !important;
  border-color: rgba(226,199,127,.35) !important;
}

.button span[aria-hidden="true"],
.contact-direct-button .cta-arrow,
.form-submit .cta-arrow,
.imprint-map-button > span[aria-hidden="true"] {
  width: 30px !important;
  height: 30px !important;
  border-radius: 7px !important;
}

/* Hero: content first. Remove the old grid/glow decoration entirely. */
.hero-grid-lines,
.hero-glow,
.art-orbit,

.hero::after { opacity: .54 !important; }
.hero-copy { isolation: isolate; }
.hero-lead { color: rgba(251,250,246,.67); }
.hero-signature {
  margin-top: 38px;
  border-top-color: rgba(255,255,255,.105);
}
.hero-signature > div { min-height: 46px; border-bottom-color: rgba(255,255,255,.08); }
.hero-signature span { color: rgba(226,199,127,.78); }
.hero-signature strong { color: rgba(251,250,246,.56); font-size: .68rem; }

/* Media geometry: rounded Falcon-native surfaces. */
.hero-video-panel,
.service-card-media,
.service-visual-card,
.selected-project-image,
.corporate-presence-figure {
}

.hero-video-panel {
  border-radius: var(--radius-card) !important;
  border-color: rgba(226,199,127,.26) !important;
  box-shadow: var(--shadow-deep) !important;
}
.hero-video-panel::before {
  border-radius: 13px !important;
  border-color: rgba(255,255,255,.12) !important;
}

/* Service portfolio: a 2×2 editorial matrix instead of four unrelated card styles. */
.service-grid { gap: 18px !important; }
.service-card {
  min-height: 520px;
  padding: 22px 22px 25px;
  border-radius: var(--radius-card);
  border-color: var(--line-light);
  box-shadow: none !important;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease !important;
}
.service-card:hover {
  transform: translateY(-2px) !important;
  border-color: rgba(201,166,91,.34) !important;
  box-shadow: var(--shadow-soft) !important;
}

.service-card-dark,
.service-card-energy {
  color: var(--paper-bright) !important;
  background: #171a18 !important;
  border-color: rgba(255,255,255,.09) !important;
}
.service-card-ivory,
.service-card-hospitality {
  color: var(--ink) !important;
  background: var(--paper-bright) !important;
  border-color: var(--line-light) !important;
}

/* Explicitly retire the old full-gold hospitality treatment. */
.service-card-gold {
  color: var(--ink) !important;
  background: var(--paper-bright) !important;
  border-color: var(--line-light) !important;
}

.card-topline { font-size: .62rem; letter-spacing: .16em; }
.service-card-dark .card-topline,
.service-card-energy .card-topline { color: rgba(251,250,246,.47) !important; }
.service-card-ivory .card-topline,
.service-card-hospitality .card-topline { color: rgba(14,16,15,.44) !important; }

.card-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px !important;
  transition: border-color .2s ease, background .2s ease !important;
}
.service-card:hover .card-icon { transform: none !important; }
.service-card-dark .card-icon,
.service-card-energy .card-icon {
  color: var(--gold-bright) !important;
  background: rgba(255,255,255,.025);
  border-color: rgba(226,199,127,.28) !important;
}
.service-card-ivory .card-icon,
.service-card-hospitality .card-icon {
  color: var(--gold-deep) !important;
  background: rgba(201,166,91,.055);
  border-color: rgba(150,113,38,.20) !important;
}

.service-card-media {
  margin-top: 20px;
  border-radius: var(--radius-media);
}
.service-card-media img {
  transform: scale(1.015) !important;
  transition: transform .55s cubic-bezier(.22,.7,.2,1) !important;
}
.service-card:hover .service-card-media img { transform: scale(1.03) !important; }
.service-card-media-shade { background: linear-gradient(180deg,rgba(0,0,0,.015),rgba(0,0,0,.16)); }

.service-card-body { margin-top: 25px; }
.card-kicker { margin-bottom: 9px; font-size: .62rem; }
.service-card-dark .card-kicker,
.service-card-energy .card-kicker { color: rgba(226,199,127,.90) !important; }
.service-card-ivory .card-kicker,
.service-card-hospitality .card-kicker { color: var(--gold-deep) !important; }

.service-card h3 {
  margin-bottom: 12px;
  font-size: clamp(2.25rem,5vw,3.45rem);
  font-weight: 600;
  letter-spacing: -.042em;
  line-height: .96;
}
.card-summary { font-size: .9rem; line-height: 1.68; }
.service-card-dark .card-summary,
.service-card-energy .card-summary { color: rgba(251,250,246,.64) !important; }
.service-card-ivory .card-summary,
.service-card-hospitality .card-summary { color: rgba(14,16,15,.62) !important; }

.activity-list { gap: 8px; border-top-color: rgba(255,255,255,.09); }
.service-card-ivory .activity-list,
.service-card-hospitality .activity-list { border-top-color: var(--line-light) !important; }
.activity-dot { width: 4px; height: 4px; border-radius: 1px; }
.card-details { margin-top: 22px; color: inherit; opacity: .72; }
.card-watermark { display: none !important; }
.service-card::before,
.service-card.has-spotlight::before { display: none !important; }

/* About / facts / principles: reduce ornamental weight. */
.corporate-presence-figure { border-radius: var(--radius-card); }
.fact-wide { background: #171a18 !important; }
.facts-grid article { border-radius: 16px; }
.principle-number { color: rgba(226,199,127,.78); }

/* Contact: editorial panel, no decorative orbit. */
.contact-wrap {
  border-radius: var(--radius-card);
  box-shadow: 0 16px 50px rgba(14,16,15,.055);
}
.contact-direct {
  border-radius: 16px;
  background: #151816;
  box-shadow: none;
}
.contact-direct::before { display: none !important; }
.contact-form { border-radius: 16px; }
.form-field input,
.form-field textarea,
.form-field select { border-radius: 10px; }

/* Footer: ultra-minimal corporate finish. */
.site-footer {
  padding-top: 58px !important;
  background-color: #0c0e0d !important;
  border-top: 1px solid rgba(201,166,91,.12);
}
.site-footer::before { opacity: .17 !important; }
.site-footer::after { opacity: .34 !important; }
.footer-grid-pro {
  padding-top: 0 !important;
  padding-bottom: 44px;
  gap: clamp(28px,4vw,62px);
}
.footer-brand { width: min(100%,230px); }
.footer-brand-block p { display: none !important; }
.footer-column { gap: 10px; font-size: .76rem; }
.footer-label { margin-bottom: 8px; color: rgba(226,199,127,.72); font-size: .6rem; }
.footer-column a,
.footer-cookie-button,
.footer-email { color: rgba(251,250,246,.55); }
.footer-column a:hover,
.footer-cookie-button:hover,
.footer-email:hover { color: var(--paper-bright); }
.footer-bottom {
  margin-top: 0;
  padding-block: 20px max(24px,env(safe-area-inset-bottom));
  border-top-color: rgba(255,255,255,.075);
  font-size: .62rem;
}

/* Mobile language controls inherit the editorial geometry. */
.mobile-language-grid a {
  border-radius: 10px;
  background: rgba(255,255,255,.018);
}
.mobile-language-grid a[aria-current="page"] {
  color: var(--ink);
  background: var(--gold-bright);
}
.mobile-contact-cta {
  border-radius: var(--radius-control) !important;
  background: var(--gold-bright);
}
.mobile-contact-cta .cta-arrow {
  border-radius: 7px;
}

/* Chinese keeps its purpose-built CJK family. */
.ffi-lang-zh {
  --display: "Noto Serif SC", "Songti SC", serif;
  --body: "Noto Sans SC", "Microsoft YaHei", sans-serif;
}

@media (min-width:760px) {
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}

@media (min-width:980px) {
  .site-header .brand-logo { height: 52px; max-width: 184px; }
  .service-card { padding: 24px 25px 28px; }
}

@media (max-width:759px) {
  :root { }
  .button,
  .contact-direct-button,
  .form-submit { min-height: 52px; }
  .service-card { min-height: 0; border-radius: 18px; }
  .service-card h3 { font-size: clamp(2.25rem,11vw,3rem); }
  .hero-video-panel { border-radius: 18px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .service-card,
  .service-card-media img,
  .button { transition: none !important; }
}
