:root {
  --blue: #064e7a;
  --blue-dark: #063a5b;
  --blue-bright: #0588c8;
  --blue-deep: #022f4a;
  --sky: #e8f6fc;
  --page-bg: #f3faff;
  --section-soft: #eef8fd;
  --cream: #f8f3e7;
  --gold: #c79a45;
  --gold-light: #f4c76b;
  --ink: #162b3b;
  --muted: #405564;
  --line: #d6e8f1;
  --white: #ffffff;
  --radius: 16px;
  --radius-lg: 22px;
  --shadow: 0 22px 64px rgba(18, 48, 74, .12), inset 0 1px 0 rgba(255,255,255,.76);
  --shadow-strong: 0 30px 86px rgba(6, 74, 122, .24);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: radial-gradient(circle at 18% 0%, rgba(5, 136, 200, .1), transparent 34%), linear-gradient(180deg, #f6fbff 0%, var(--page-bg) 42%, #eef8fd 100%); line-height: 1.65; text-rendering: geometricPrecision; }
img { max-width: 100%; display: block; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 99; background: var(--blue-dark); color: white; padding: .75rem 1rem; border-radius: var(--radius); }
.skip-link:focus { top: 1rem; }
.site-header { position: sticky; top: 0; z-index: 20; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(232,246,252,.94)); backdrop-filter: blur(22px); border-bottom: 1px solid rgba(5, 136, 200, .2); box-shadow: 0 20px 48px rgba(3, 47, 82, .15); }
.site-header:before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--blue-deep), var(--blue-bright), var(--gold)); }
.nav-shell { max-width: 1320px; margin: 0 auto; padding: 1rem 1.25rem; display: flex; align-items: center; gap: 1.25rem; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; width: clamp(300px, 30vw, 390px); height: 98px; overflow: hidden; }
.brand img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: drop-shadow(0 16px 28px rgba(3, 47, 82, .16)); mix-blend-mode: multiply; }
.desktop-nav { margin-left: auto; display: flex; align-items: center; gap: .48rem; }
.nav-link { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; text-decoration: none; color: #244f68; font-weight: 900; padding: .82rem .98rem; border-radius: 999px; font-size: 1.02rem; transition: color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease; }
.nav-link:after { content: ""; position: absolute; left: 1.08rem; right: 1.08rem; bottom: .48rem; height: 3px; border-radius: 999px; background: var(--gold); opacity: 0; transform: scaleX(.3); transition: opacity .2s ease, transform .2s ease; }
.nav-link:hover { color: var(--blue-deep); background: rgba(14, 136, 200, .11); transform: translateY(-1px); }
.nav-link:hover:after, .nav-link.is-active:after { opacity: 1; transform: scaleX(1); }
.nav-link.is-active { color: var(--blue-deep); background: linear-gradient(135deg, rgba(232,246,252,.98), rgba(255,255,255,.9)); box-shadow: inset 0 0 0 1px rgba(14, 136, 200, .18), 0 8px 22px rgba(3, 47, 82, .07); }
.btn { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: .9rem 1.28rem; border-radius: 999px; font-weight: 950; text-decoration: none; border: 1px solid transparent; cursor: pointer; letter-spacing: 0; box-shadow: 0 12px 30px rgba(6,74,122,.12), inset 0 1px 0 rgba(255,255,255,.2); transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease; }
.btn:before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.34) 46%, transparent 62%); transform: translateX(-120%); transition: transform .45s ease; }
.btn:hover { transform: translateY(-3px); }
.btn:hover:before { transform: translateX(120%); }
.btn-primary { background: linear-gradient(135deg, #022944, var(--blue), var(--blue-bright)); color: #ffffff; text-shadow: 0 1px 1px rgba(0,0,0,.24); border-color: rgba(255,255,255,.2); box-shadow: 0 18px 44px rgba(3, 47, 82, .34), 0 0 0 1px rgba(147,213,246,.18), inset 0 1px 0 rgba(255,255,255,.24); }
.btn-primary:hover { background: linear-gradient(135deg, #021f36, #064f78, #0793d8); box-shadow: 0 26px 64px rgba(3, 47, 82, .4), 0 0 0 1px rgba(244,199,107,.3), inset 0 1px 0 rgba(255,255,255,.28); }
.btn-secondary { color: var(--blue-dark); border-color: var(--line); background: white; }
.btn-light { color: var(--blue-dark); background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(232,246,252,.92)); border-color: rgba(255,255,255,.72); }
.btn-secondary:hover, .btn-light:hover { color: var(--blue-deep); border-color: rgba(14, 136, 200, .28); box-shadow: 0 18px 42px rgba(6, 74, 122, .18), inset 0 1px 0 rgba(255,255,255,.9); }
.hero-actions .btn, .cta-photo .btn, .hero .button-row .btn { min-height: 48px; padding: .72rem 1.15rem; font-size: .95rem; }
.btn[href^="tel:"], .btn[href*="schedule-tour"] { border-color: rgba(244,199,107,.28); }
.header-cta { padding-inline: 1.65rem; min-height: 54px; font-size: 1.02rem; white-space: nowrap; color: #ffffff; text-shadow: 0 1px 2px rgba(0,0,0,.3); border-color: rgba(255,255,255,.18); }
.mobile-menu-toggle { position: relative; display: none; flex: 0 0 52px; width: 52px; height: 52px; border-radius: 999px; border: 1px solid rgba(5, 136, 200, .22); background: linear-gradient(135deg, #ffffff, var(--sky)); box-shadow: 0 12px 26px rgba(6, 74, 122, .12); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.mobile-menu-toggle:after { content: ""; position: absolute; left: 13px; right: 13px; bottom: 8px; height: 3px; border-radius: 999px; background: var(--gold); opacity: 0; transform: scaleX(.35); transition: opacity .2s ease, transform .2s ease; }
.mobile-menu-toggle:hover:after, .mobile-menu-toggle[aria-expanded="true"]:after { opacity: 1; transform: scaleX(1); }
.mobile-menu-toggle:hover { transform: translateY(-1px); border-color: rgba(14, 136, 200, .34); box-shadow: 0 18px 34px rgba(6, 74, 122, .16); }
.mobile-menu-toggle span { display: block; width: 21px; height: 2px; background: var(--blue-dark); margin: 4px auto; border-radius: 999px; }
.mobile-menu { display: none; border-top: 1px solid var(--line); padding: .85rem 1rem 1.1rem; background: linear-gradient(135deg, rgba(255,255,255,.99), rgba(232,246,252,.96)); box-shadow: 0 20px 34px rgba(8, 58, 94, .12); }
.mobile-menu-link { position: relative; display: flex; align-items: center; min-height: 50px; padding: .9rem 1.05rem; text-decoration: none; border-radius: 999px; font-size: 1.02rem; font-weight: 900; color: #244f68; transition: color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease; }
.mobile-menu-link:after { content: ""; position: absolute; left: 1.05rem; right: 1.05rem; bottom: .48rem; height: 3px; border-radius: 999px; background: var(--gold); opacity: 0; transform: scaleX(.3); transition: opacity .2s ease, transform .2s ease; }
.mobile-menu-link.is-active, .mobile-menu-link:hover { color: var(--blue-deep); background: linear-gradient(135deg, rgba(232,246,252,.98), rgba(255,255,255,.9)); box-shadow: inset 0 0 0 1px rgba(14, 136, 200, .18), 0 8px 22px rgba(3, 47, 82, .07); transform: translateY(-1px); }
.mobile-menu-link.is-active:after, .mobile-menu-link:hover:after { opacity: 1; transform: scaleX(1); }
.muted-link { color: var(--muted); font-weight: 700; }
.hero { min-height: 660px; position: relative; display: grid; align-items: end; overflow: hidden; }
.hero picture, .hero picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,47,82,.78), rgba(6,74,122,.46) 48%, rgba(3,47,82,.16)); }
.hero-content { position: relative; width: min(740px, calc(100% - 2rem)); margin: 0 auto 4.8rem max(1rem, calc((100vw - 1180px) / 2)); padding: clamp(1.15rem, 2.2vw, 1.75rem); color: white; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; background: linear-gradient(135deg, rgba(2, 47, 74, .66), rgba(6, 78, 122, .32)); box-shadow: 0 24px 68px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.12); backdrop-filter: blur(7px); text-shadow: 0 3px 18px rgba(0,0,0,.38); }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; color: var(--gold); text-transform: uppercase; font-weight: 950; letter-spacing: .08em; font-size: .72rem; }
.eyebrow:before { content: ""; width: 22px; height: 2px; border-radius: 999px; background: currentColor; opacity: .8; }
h1, h2, h3 { line-height: 1.08; margin: 0; letter-spacing: 0; color: var(--ink); font-weight: 950; }
h1 { font-size: clamp(2.25rem, 4.4vw, 4.35rem); max-width: 760px; margin-top: .85rem; }
.hero h1, .page-hero h1, .cta-photo h2 { color: white; }
.hero p { max-width: 600px; font-size: clamp(1rem, 1.35vw, 1.18rem); }
.button-row { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: 1.35rem; }
.trust-strip { width: min(1180px, calc(100% - 2rem)); margin: -3.5rem auto 0; position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.trust-card, .cards-three article, .service-grid article { position: relative; overflow: hidden; background: linear-gradient(145deg, #ffffff, #fbfdff 56%, #f1f9fe); border: 1px solid rgba(190, 221, 238, .92); border-radius: var(--radius-lg); padding: 1.45rem; box-shadow: 0 22px 64px rgba(18, 48, 74, .11), inset 0 1px 0 rgba(255,255,255,.86); }
.trust-card { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.trust-card:hover { transform: translateY(-4px); border-color: rgba(14, 136, 200, .3); box-shadow: 0 30px 78px rgba(6, 74, 122, .17); }
.trust-card strong, .trust-card span { display: block; }
.trust-card strong { color: var(--blue-dark); font-size: 1.05rem; }
.trust-card span { color: var(--muted); margin-top: .25rem; }
.section { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 5.25rem 0; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.reverse picture { order: -1; }
.section h2 { font-size: clamp(2rem, 4vw, 3.6rem); margin-top: .7rem; }
.section p, .section-heading p { color: var(--muted); font-size: 1.08rem; }
.split > div:not(.image-card), .premium-form-layout > div:first-child { position: relative; overflow: hidden; border: 1px solid rgba(190,221,238,.88); border-radius: var(--radius-lg); padding: clamp(1.35rem, 3vw, 2rem); background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(251,253,255,.92) 58%, rgba(241,249,254,.96)); box-shadow: 0 24px 70px rgba(18,48,74,.12), inset 0 1px 0 rgba(255,255,255,.88); }
.split > div:not(.image-card):before, .premium-form-layout > div:first-child:before { content: ""; position: absolute; left: 1.2rem; right: 1.2rem; top: 0; height: 3px; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, var(--blue-bright), var(--gold)); opacity: .74; }
.image-card { overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow); background: var(--sky); border: 1px solid rgba(190,221,238,.75); }
.image-card img { aspect-ratio: 4 / 3; width: 100%; height: 100%; object-fit: cover; }
.mini-list { display: grid; gap: .75rem; margin-top: 1.5rem; }
.mini-list span { border: 1px solid rgba(190,221,238,.84); border-left: 4px solid var(--gold); padding: .75rem 1rem; background: linear-gradient(135deg, #ffffff, var(--section-soft)); border-radius: var(--radius); font-weight: 850; color: var(--blue-dark); box-shadow: 0 12px 28px rgba(18,48,74,.07); }
.warm-band { width: 100%; max-width: none; background: linear-gradient(135deg, var(--section-soft), var(--sky)); padding: 5.35rem max(1rem, calc((100vw - 1180px) / 2)); box-shadow: inset 0 1px 0 rgba(255,255,255,.8), inset 0 -1px 0 rgba(214,232,241,.7); }
.section-heading { max-width: 760px; margin-bottom: 2rem; }
.warm-band > .section-heading, .gallery-preview > .section-heading, .map-section > .section-heading { position: relative; overflow: hidden; padding: clamp(1.25rem, 3vw, 1.75rem); border: 1px solid rgba(190,221,238,.82); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.88), rgba(241,249,254,.82)); box-shadow: 0 18px 54px rgba(18,48,74,.09), inset 0 1px 0 rgba(255,255,255,.82); }
.section-heading h2 { position: relative; padding-bottom: .35rem; }
.section-heading h2:after { content: ""; display: block; width: 64px; height: 3px; border-radius: 999px; margin-top: 1rem; background: linear-gradient(90deg, var(--gold), var(--blue-bright)); }
.feature-grid, .cards-three, .service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.feature-grid article { position: relative; background: linear-gradient(145deg, #ffffff, #fbfdff 58%, #f1f9fe); border: 1px solid rgba(190,221,238,.9); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.feature-grid article:hover { transform: translateY(-4px); border-color: rgba(14,136,200,.32); box-shadow: 0 30px 78px rgba(6,74,122,.17); }
.feature-grid img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; }
.feature-grid h3, .feature-grid p { padding-left: 1.2rem; padding-right: 1.2rem; }
.feature-grid h3 { margin-top: 1.2rem; font-size: 1.35rem; }
.feature-grid p { padding-bottom: 1.2rem; color: var(--muted); }
.gallery-preview { padding-top: 4rem; }
.photo-mosaic { display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: repeat(2, 220px); gap: .8rem; }
.photo-mosaic img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow); border: 1px solid rgba(190,221,238,.72); }
.photo-mosaic img:first-child { grid-row: span 2; }
.cta-photo { position: relative; min-height: 520px; display: grid; align-items: center; color: white; overflow: hidden; margin-top: 2rem; }
.cta-photo > img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; }
.cta-photo:before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(3,47,82,.72), rgba(6,74,122,.42) 48%, rgba(3,47,82,.12)); }
.cta-photo > div { position: relative; z-index: 2; width: min(640px, calc(100% - 2rem)); margin-left: max(1rem, calc((100vw - 1180px) / 2)); margin-right: auto; padding: clamp(1.1rem, 2.2vw, 1.65rem); border: 1px solid rgba(255,255,255,.14); border-radius: 22px; background: linear-gradient(135deg, rgba(2,47,74,.62), rgba(6,78,122,.3)); box-shadow: 0 22px 62px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.12); backdrop-filter: blur(7px); text-shadow: 0 3px 20px rgba(0,0,0,.5); }
.cta-photo h2 { font-size: clamp(1.85rem, 3.4vw, 3.2rem); max-width: 620px; }
.cta-photo p { max-width: 560px; font-size: clamp(1rem, 1.25vw, 1.1rem); color: rgba(245,250,255,.9); text-shadow: 0 2px 16px rgba(0,0,0,.42); }
.map-section { padding: 4.5rem max(1rem, calc((100vw - 1180px) / 2)); background: linear-gradient(135deg, var(--sky), var(--section-soft)); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.map-section iframe { width: 100%; height: 420px; border: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.page-hero { position: relative; min-height: 660px; display: grid; align-items: end; overflow: hidden; color: white; }
.page-hero img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; }
.page-hero:before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(3,47,82,.78), rgba(6,74,122,.46) 48%, rgba(3,47,82,.16)); }
.page-hero > div { position: relative; z-index: 2; width: min(740px, calc(100% - 2rem)); margin: 0 auto 4.8rem max(1rem, calc((100vw - 1180px) / 2)); padding: clamp(1.15rem, 2.2vw, 1.75rem); max-width: 740px; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; background: linear-gradient(135deg, rgba(2,47,74,.66), rgba(6,78,122,.32)); box-shadow: 0 24px 68px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.12); backdrop-filter: blur(7px); text-shadow: 0 3px 20px rgba(0,0,0,.45); }
.page-hero h1 { font-size: clamp(2.25rem, 4.4vw, 4.35rem); max-width: 740px; margin-top: .85rem; }
.page-hero p { max-width: 600px; font-size: clamp(1rem, 1.35vw, 1.15rem); color: rgba(245,250,255,.9); text-shadow: 0 2px 18px rgba(0,0,0,.38); }
.hero-actions { margin-top: 1.35rem; }
.service-grid { grid-template-columns: repeat(4, 1fr); }
.service-grid h3, .cards-three h3 { color: var(--blue-dark); font-size: 1.35rem; }
.compact-section { padding-top: 3.2rem; padding-bottom: 3.2rem; }
.premium-intro { padding-bottom: 3.25rem; }
.premium-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.premium-stat-grid article, .gallery-intro-card, .contact-shortcuts a, .trust-note { position: relative; overflow: hidden; border: 1px solid rgba(190,221,238,.94); border-radius: var(--radius-lg); background: linear-gradient(145deg, #ffffff, #fbfdff 56%, #f1f9fe); box-shadow: 0 22px 64px rgba(18, 48, 74, .11), inset 0 1px 0 rgba(255,255,255,.86); }
.premium-stat-grid article:before, .gallery-intro-card:before, .contact-shortcuts a:before, .trust-note:before, .cards-three article:before, .service-grid article:before, .feature-grid article:before, .gallery-item:before, .lead-form:before { content: ""; position: absolute; left: 1.1rem; right: 1.1rem; top: 0; height: 3px; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, var(--blue-bright), var(--gold)); opacity: .74; }
.premium-stat-grid article { padding: 1.2rem; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.premium-stat-grid article:hover { transform: translateY(-4px); border-color: rgba(14,136,200,.32); box-shadow: 0 30px 78px rgba(6,74,122,.17); }
.premium-stat-grid span, .card-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 999px; background: linear-gradient(135deg, var(--blue-deep), var(--blue-bright)); color: white; font-weight: 900; box-shadow: 0 12px 25px rgba(3,47,82,.18); }
.premium-stat-grid h3 { margin-top: .95rem; color: var(--blue-dark); font-size: 1.2rem; }
.premium-stat-grid p { margin-bottom: 0; font-size: .98rem; }
.text-card-grid article { padding: 1.35rem; }
.text-card-grid article img { display: none; }
.cards-three article, .service-grid article { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.cards-three article:hover, .service-grid article:hover { transform: translateY(-3px); border-color: rgba(14,136,200,.25); box-shadow: 0 22px 55px rgba(6,74,122,.16); }
.service-grid-premium { grid-template-columns: repeat(3, 1fr); }
.service-grid-premium article { min-height: 100%; }
.service-grid-premium small { display: block; margin-top: 1rem; color: var(--gold); text-transform: uppercase; font-weight: 900; letter-spacing: .07em; font-size: .73rem; }
.service-grid-premium h3 { margin-top: .45rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.gallery-intro-card { position: relative; padding: 2rem; overflow: hidden; }
.gallery-intro-card:after { display: none; }
.gallery-intro-card h2 { margin-top: .75rem; font-size: clamp(2rem, 4vw, 3.35rem); }
.filter-chips { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.35rem; position: relative; z-index: 1; }
.filter-chips span { display: inline-flex; align-items: center; min-height: 40px; padding: .52rem .95rem; border-radius: 999px; background: linear-gradient(135deg, #ffffff, var(--sky)); color: var(--blue-dark); font-weight: 850; border: 1px solid rgba(14,136,200,.18); box-shadow: 0 10px 24px rgba(6,74,122,.08); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.filter-chips span:first-child { background: linear-gradient(135deg, var(--blue-deep), var(--blue-bright)); color: white; border-color: rgba(255,255,255,.4); }
.filter-chips span:hover { transform: translateY(-2px); border-color: rgba(14,136,200,.3); box-shadow: 0 14px 30px rgba(6,74,122,.13); }
.gallery-grid-premium { align-items: stretch; }
.gallery-item { position: relative; border: 1px solid rgba(190,221,238,.95); padding: .6rem; background: linear-gradient(145deg, #ffffff, #fbfdff 62%, #f1f9fe); border-radius: var(--radius-lg); overflow: hidden; cursor: zoom-in; box-shadow: 0 22px 64px rgba(18,48,74,.11), inset 0 1px 0 rgba(255,255,255,.86); text-align: left; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.gallery-item:hover { transform: translateY(-5px); border-color: rgba(14,136,200,.34); box-shadow: 0 32px 82px rgba(6,74,122,.18); }
.gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .22s ease; border-radius: calc(var(--radius-lg) - 5px); }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item > span { display: grid; gap: .3rem; padding: 1rem .8rem .75rem; color: var(--blue-dark); font-weight: 900; line-height: 1.25; }
.gallery-item small { color: var(--gold); text-transform: uppercase; letter-spacing: .07em; font-size: .72rem; }
.form-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 3rem; align-items: start; }
.premium-form-layout { align-items: stretch; }
.contact-panel { display: grid; gap: .7rem; margin-top: 1.5rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: 8px; background: linear-gradient(135deg, var(--sky), #ffffff); font-weight: 800; }
.contact-shortcuts { display: grid; gap: .85rem; margin-top: 1.5rem; }
.contact-shortcuts a { display: grid; gap: .28rem; padding: 1.1rem 1.2rem; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.contact-shortcuts a:hover { transform: translateY(-2px); border-color: rgba(14,136,200,.25); box-shadow: 0 20px 48px rgba(6,74,122,.15); }
.contact-shortcuts span { color: var(--gold); text-transform: uppercase; letter-spacing: .07em; font-size: .72rem; font-weight: 900; }
.contact-shortcuts strong { color: var(--blue-dark); line-height: 1.25; word-break: break-word; }
.trust-note { margin-top: 1rem; padding: 1.1rem 1.2rem; font-weight: 800; color: var(--blue-dark); border-left: 4px solid var(--gold); }
.lead-form { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; padding: clamp(1.35rem, 3vw, 2.15rem); border: 1px solid rgba(5,136,200,.28); border-radius: 24px; box-shadow: 0 36px 96px rgba(6,74,122,.18), inset 0 1px 0 rgba(255,255,255,.9); background: linear-gradient(145deg, #ffffff, #fbfdff 58%, #eef8fd); overflow: hidden; }
.lead-form label { display: grid; gap: .45rem; font-weight: 900; color: var(--blue-dark); font-size: .96rem; }
.lead-form .full, .lead-form .form-status, .lead-form button { grid-column: 1 / -1; }
input, select, textarea { width: 100%; min-height: 52px; border: 1px solid #c8d8e1; border-radius: var(--radius); padding: .92rem 1rem; font: inherit; color: var(--ink); background: white; box-shadow: 0 8px 22px rgba(18,48,74,.04); transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
input:hover, select:hover, textarea:hover { border-color: rgba(14,136,200,.32); background: #fbfdff; }
input:focus, select:focus, textarea:focus { border-color: var(--blue-bright); box-shadow: 0 0 0 4px rgba(14,136,200,.11); outline: 0; }
textarea { resize: vertical; }
.form-status { margin: 0; min-height: 1.5rem; font-weight: 800; color: var(--blue-dark); }
.form-status.error { color: #9f2f2f; }
.legal-section { background: linear-gradient(135deg, var(--section-soft), var(--sky)); padding: 5rem 1rem; }
.legal-card { width: min(860px, 100%); margin: 0 auto; background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 2rem; box-shadow: var(--shadow); }
.legal-card h1 { color: var(--blue-dark); font-size: clamp(2.2rem, 5vw, 4rem); }
.legal-card h2 { margin-top: 2rem; font-size: 1.35rem; color: var(--blue-dark); }
.site-footer { position: relative; overflow: hidden; background: linear-gradient(135deg, #032f52, #064a7a 46%, #075985 72%, #0e7490); color: white; padding: 5rem max(1rem, calc((100vw - 1180px) / 2)) 1.5rem; }
.site-footer:before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 12% 0%, rgba(147, 213, 246, .25), transparent 34%), radial-gradient(circle at 92% 18%, rgba(244,199,107,.15), transparent 28%), linear-gradient(180deg, rgba(255,255,255,.09), transparent 42%); pointer-events: none; }
.site-footer:after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(244,199,107,.72), rgba(147,213,246,.72), transparent); }
.footer-grid, .footer-bottom { position: relative; }
.footer-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr; gap: 1rem; }
.footer-card { position: relative; min-height: 100%; padding: clamp(1.25rem, 2vw, 1.6rem); border: 1px solid rgba(255,255,255,.17); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.06)); box-shadow: 0 24px 66px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.13); backdrop-filter: blur(16px); transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.footer-card:before { content: ""; position: absolute; left: 1.2rem; right: 1.2rem; top: 0; height: 3px; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, #f4c76b, #93d5f6); opacity: .86; }
.footer-card:after { content: ""; position: absolute; left: 1.2rem; right: 1.2rem; bottom: 0; height: 3px; border-radius: 999px 999px 0 0; background: linear-gradient(90deg, #f4c76b, #93d5f6); opacity: 0; transform: scaleX(.3); transform-origin: center; transition: opacity .2s ease, transform .2s ease; }
.footer-card:hover { transform: translateY(-4px); border-color: rgba(244,199,107,.5); background: linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,.085)); box-shadow: 0 32px 78px rgba(0,0,0,.27), 0 0 36px rgba(147,213,246,.08); }
.footer-card:hover:after { opacity: 1; transform: scaleX(1); }
.footer-brand-card { display: flex; flex-direction: column; gap: 1rem; }
.footer-logo { width: min(350px, 100%); max-width: 100%; border-radius: calc(var(--radius-lg) - 4px); padding: .62rem; background: rgba(255,255,255,.96); box-shadow: 0 20px 58px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.9); filter: none; mix-blend-mode: normal; }
.site-footer h2 { position: relative; font-size: 1rem; color: #f4c76b; margin: 0 0 1rem; padding-bottom: .65rem; }
.site-footer h2:after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 2px; border-radius: 999px; background: linear-gradient(90deg, #f4c76b, #93d5f6); transform-origin: left; transition: width .2s ease, box-shadow .2s ease; }
.footer-card:hover h2:after { width: 68px; box-shadow: 0 0 18px rgba(244,199,107,.24); }
.site-footer a, .site-footer span { display: block; color: rgba(235,248,255,.86); text-decoration: none; margin: .45rem 0; transition: color .18s ease, transform .18s ease; }
.footer-card a { position: relative; width: fit-content; max-width: 100%; padding-bottom: .16rem; }
.footer-card a:after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 999px; background: linear-gradient(90deg, #f4c76b, #93d5f6); opacity: 0; transform: scaleX(.28); transform-origin: left; transition: opacity .18s ease, transform .18s ease; }
.footer-card a:hover:after { opacity: 1; transform: scaleX(1); }
.footer-card:hover a, .footer-card:hover span, .footer-card:hover p { color: rgba(245,250,255,.94); }
.site-footer a:hover { color: #ffffff; transform: translateX(3px); }
.site-footer p { color: rgba(235,248,255,.8); }
.design-credit { color: #f4c76b; font-weight: 900; display: inline-block; border-bottom: 1px solid rgba(244,199,107,.55); text-decoration: none; }
.design-credit:hover { color: #ffffff; border-bottom-color: #ffffff; transform: translateY(-1px); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.16); margin: 1.65rem auto 0; padding-top: 1.35rem; display: grid; justify-items: center; gap: .62rem; color: rgba(235,248,255,.84); text-align: center; }
.footer-legal-links { display: flex; gap: .65rem; align-items: center; justify-content: center; flex-wrap: wrap; font-weight: 850; }
.footer-legal-links a, .footer-legal-links span { display: inline-flex; margin: 0; }
.footer-divider { color: rgba(235,248,255,.55); }
.compact-cta { min-height: 440px; margin-top: 0; }
.lightbox { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; background: rgba(8, 28, 42, .84); padding: 1rem; }
.lightbox[hidden] { display: none; }
.lightbox img { max-height: 88vh; max-width: 94vw; object-fit: contain; border-radius: 8px; box-shadow: 0 28px 80px rgba(0,0,0,.35); }
.lightbox-close { position: fixed; top: 1rem; right: 1rem; width: 48px; height: 48px; border-radius: 999px; border: 0; font-size: 2rem; background: white; color: var(--blue-dark); cursor: pointer; }
@media (max-width: 980px) {
  .desktop-nav, .header-cta { display: none; }
  .mobile-menu-toggle { display: block; margin-left: auto; }
  .mobile-menu.is-open { display: block; }
  .nav-shell { max-width: 100%; padding: .65rem 1rem; }
  .brand { width: min(250px, 58vw); height: 60px; }
  .mobile-menu-toggle { flex-basis: 48px; width: 48px; height: 48px; }
  .hero { min-height: 590px; }
  .hero-content, .page-hero > div, .cta-photo > div { width: min(660px, calc(100% - 2.5rem)); margin-left: 1.25rem; margin-right: 1.25rem; }
  .trust-strip, .feature-grid, .cards-three, .service-grid, .gallery-grid, .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .premium-stat-grid, .service-grid-premium { grid-template-columns: repeat(2, 1fr); }
  .split, .form-layout { grid-template-columns: 1fr; gap: 2rem; }
  .photo-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .photo-mosaic img, .photo-mosaic img:first-child { grid-row: auto; aspect-ratio: 4 / 3; }
}
@media (max-width: 640px) {
  .nav-shell { padding: .55rem .85rem; gap: .7rem; }
  .brand { width: min(225px, 62vw); height: 54px; }
  .mobile-menu-toggle { flex-basis: 46px; width: 46px; height: 46px; }
  .mobile-menu { padding: .7rem .85rem 1rem; }
  .mobile-menu-link { min-height: 48px; font-size: 1rem; }
  .hero { min-height: 520px; }
  .hero-content { width: min(92%, 340px); margin: 0 auto 2.75rem; padding: 1.05rem; border-radius: 20px; }
  h1 { font-size: clamp(1.85rem, 8vw, 2.35rem); }
  .hero p { font-size: .98rem; line-height: 1.55; }
  .eyebrow { font-size: .66rem; letter-spacing: .07em; gap: .4rem; }
  .eyebrow:before { width: 18px; }
  .page-hero { min-height: 500px; }
  .page-hero > div { width: min(92%, 340px); margin: 0 auto 2.75rem; padding: 1.05rem; border-radius: 20px; }
  .page-hero h1 { font-size: clamp(1.8rem, 8vw, 2.32rem); }
  .page-hero p { font-size: .98rem; line-height: 1.55; }
  .cta-photo { min-height: 390px; }
  .cta-photo > div { width: min(92%, 340px); margin-left: auto; margin-right: auto; padding: 1.05rem; border-radius: 20px; }
  .cta-photo h2 { font-size: clamp(1.65rem, 7vw, 2.1rem); }
  .cta-photo p { font-size: .97rem; line-height: 1.55; }
  .hero-actions .btn, .cta-photo .btn, .hero .button-row .btn { min-height: 46px; padding: .62rem .9rem; font-size: .9rem; }
  .button-row { gap: .55rem; margin-top: 1.05rem; }
  .trust-strip, .feature-grid, .cards-three, .service-grid, .gallery-grid, .lead-form, .footer-grid { grid-template-columns: 1fr; }
  .premium-stat-grid, .service-grid-premium { grid-template-columns: 1fr; }
  .button-row .btn { width: 100%; }
  .hero .button-row .btn, .page-hero .button-row .btn, .cta-photo .button-row .btn { width: auto; min-width: 132px; flex: 1 1 132px; }
  .gallery-intro-card, .lead-form { padding: 1.25rem; }
  .filter-chips { gap: .5rem; }
  .filter-chips span { min-height: 38px; padding: .48rem .78rem; }
  .section, .warm-band { padding-top: 3.25rem; padding-bottom: 3.25rem; }
  .split > div:not(.image-card), .premium-form-layout > div:first-child { padding: 1.2rem; }
  .footer-logo { width: min(250px, 100%); }
  .photo-mosaic { grid-template-columns: 1fr; }
  .lead-form .full, .lead-form .form-status, .lead-form button { grid-column: auto; }
  .compact-cta { min-height: 420px; }
  .footer-card:hover, .gallery-item:hover, .contact-shortcuts a:hover, .trust-card:hover, .feature-grid article:hover, .cards-three article:hover, .service-grid article:hover { transform: none; }
}
