:root {
  --red: #126b98;
  --red-dark: #083b5d;
  --accent: #d52d3f;
  --ink: #091d2b;
  --ink-soft: #12354d;
  --cream: #edf5f7;
  --paper: #f9fbfc;
  --sea: #3184a4;
  --sea-dark: #0b4b69;
  --line: rgba(8, 59, 93, .15);
  --shadow: 0 24px 70px rgba(8, 45, 68, .17);
  --radius: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 1000; padding: 12px 18px; background: #fff; border-radius: 8px; }
.skip-link:focus { top: 12px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(24px, 5vw, 84px);
  background: rgba(239, 247, 249, .92);
  border-bottom: 1px solid rgba(8, 59, 93, .1);
  backdrop-filter: blur(18px);
}
.brand { width: 235px; height: 66px; display: flex; align-items: center; overflow: hidden; }
.brand img { width: 215px; height: 62px; object-fit: contain; object-position: left center; }
.brand-name { display: none; }
.main-nav { display: flex; align-items: center; gap: 4px; }
.main-nav a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  text-decoration: none;
  border-radius: 999px;
  color: #45484c;
  font-size: 13px;
  font-weight: 700;
  transition: .25s ease;
}
.main-nav a:hover, .main-nav a.active { color: #fff; background: var(--red-dark); }
.nav-icon { width: 18px; height: 18px; display: grid; place-items: center; color: var(--red); }
.nav-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.main-nav a:hover .nav-icon, .main-nav a.active .nav-icon { color: #fff; }

.hero {
  position: relative;
  min-height: calc(100vh - 88px);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, .55fr);
  align-items: center;
  gap: clamp(34px, 7vw, 120px);
  overflow: hidden;
  padding: clamp(76px, 10vw, 144px) clamp(24px, 6vw, 110px) 58px;
  background:
    radial-gradient(circle at 69% 19%, rgba(18, 107, 152, .16), transparent 25%),
    linear-gradient(135deg, #f5fafb 0%, #e5f0f4 100%);
}
.hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(23,25,29,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(23,25,29,.035) 1px, transparent 1px); background-size: 58px 58px; mask-image: linear-gradient(to right, transparent, #000 38%, #000); }
.hero-content, .hero-card { position: relative; z-index: 2; }
.eyebrow { margin: 0 0 22px; display: flex; align-items: center; gap: 10px; color: var(--red-dark); font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow > span { width: 34px; height: 2px; background: currentColor; }
.eyebrow.light { color: #acd6e8; }
.hero h1, .section-heading h2, .area-copy h2, .group h2, .contact h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -.052em;
}
.hero h1 { max-width: 900px; font-size: clamp(58px, 7.6vw, 126px); line-height: .88; }
.hero h1 em { color: var(--red); font-weight: 400; }
.hero-lead { max-width: 760px; margin: 34px 0 0; color: #51545a; font-size: clamp(17px, 1.5vw, 22px); line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 0 25px; border: 0; border-radius: 999px; text-decoration: none; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button:hover { transform: translateY(-3px); }
.button-primary { color: #fff; background: var(--red); box-shadow: 0 14px 32px rgba(18, 107, 152, .28); }
.button-ghost { border: 1px solid var(--line); background: rgba(255,255,255,.42); }
.button-ghost:hover { background: #fff; }
.hero-facts { display: grid; grid-template-columns: repeat(2, 1fr); max-width: 560px; margin-top: 72px; border-top: 1px solid var(--line); }
.hero-facts div { padding: 22px 20px 0 0; }
.hero-facts div + div { padding-left: 22px; border-left: 1px solid var(--line); }
.hero-facts strong { display: block; margin-bottom: 7px; font-family: Georgia, serif; font-size: 28px; font-weight: 400; }
.hero-facts span { display: block; color: #6c6e73; font-size: 12px; line-height: 1.45; }

.hero-card {
  align-self: center;
  padding: clamp(30px, 3vw, 48px);
  color: #fff;
  background: linear-gradient(145deg, #0b3a57, #061d2d);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  transform: rotate(1.5deg);
}
.hero-card::before { content: ""; position: absolute; top: 0; left: 0; width: 46%; height: 5px; background: linear-gradient(90deg, var(--red), var(--accent)); border-radius: 5px; }
.card-kicker { color: #a7d8ec; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.hero-card h2 { margin: 44px 0 16px; font-family: Georgia, serif; font-size: clamp(30px, 3vw, 46px); font-weight: 400; line-height: 1.02; letter-spacing: -.04em; }
.hero-card p { margin: 0; color: #c5c7ca; font-size: 14px; line-height: 1.75; }
.hero-card a { display: flex; justify-content: space-between; margin-top: 30px; padding-top: 19px; border-top: 1px solid rgba(255,255,255,.14); color: #fff; text-decoration: none; font-weight: 800; font-size: 13px; }
.hero-glow { position: absolute; border-radius: 50%; filter: blur(1px); opacity: .5; }
.hero-glow-one { width: 520px; height: 520px; right: -250px; bottom: -260px; border: 1px solid rgba(43,111,121,.45); box-shadow: 0 0 0 70px rgba(43,111,121,.05), 0 0 0 140px rgba(43,111,121,.04); }
.hero-glow-two { width: 10px; height: 10px; top: 21%; right: 27%; background: var(--accent); box-shadow: 0 0 0 12px rgba(213,45,63,.13); }
.building-outline { position: absolute; z-index: 1; right: -2%; bottom: -2%; width: min(52vw, 790px); height: 84%; color: var(--sea-dark); opacity: .15; }
.building-outline path, .building-outline rect { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }
.building-shell path { stroke-width: 2; }
.building-windows rect { stroke-width: 1.5; }
.building-balconies path { stroke-width: 2.2; }

.section { padding: clamp(92px, 10vw, 160px) clamp(24px, 6vw, 110px); scroll-margin-top: 88px; }
.intro { display: grid; grid-template-columns: .9fr 1fr; gap: clamp(42px, 8vw, 130px); align-items: start; background: var(--paper); }
.section-heading h2, .area-copy h2 { font-size: clamp(46px, 5.4vw, 82px); line-height: .96; }
.intro-copy { max-width: 700px; padding-top: 40px; }
.large-copy { margin: 0 0 26px; font-family: Georgia, serif; font-size: clamp(25px, 2.5vw, 38px); line-height: 1.25; letter-spacing: -.025em; }
.intro-copy > p:not(.large-copy), .area-copy > p { color: #67696e; font-size: 16px; line-height: 1.8; }

.services { color: #fff; background: var(--ink); }
.section-heading.compact { max-width: 760px; }
.section-heading.compact h2 { font-size: clamp(46px, 6vw, 88px); }
.section-heading.compact > p:last-child { max-width: 560px; color: #aeb0b4; font-size: 16px; line-height: 1.7; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 68px; border-top: 1px solid rgba(255,255,255,.12); border-left: 1px solid rgba(255,255,255,.12); }
.service-card { position: relative; min-height: 380px; padding: 30px; border-right: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); transition: .3s ease; overflow: hidden; }
.service-card::after { content: ""; position: absolute; inset: auto 0 0; height: 0; background: linear-gradient(90deg, var(--red), var(--accent)); transition: height .35s ease; z-index: 0; }
.service-card:hover::after, .service-card.featured::after { height: 7px; }
.service-card > * { position: relative; z-index: 1; }
.service-number { color: #7b7d81; font-size: 11px; letter-spacing: .15em; }
.service-icon { width: 58px; height: 58px; display: grid; place-items: center; margin-top: 55px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #7fc9e6; font-family: Georgia, serif; font-size: 26px; }
.service-card h3 { margin: 34px 0 13px; font-family: Georgia, serif; font-size: 27px; font-weight: 400; line-height: 1.08; }
.service-card p { margin: 0; color: #aeb0b4; font-size: 14px; line-height: 1.65; }

.area { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(44px, 8vw, 120px); align-items: center; background: #e4f0f3; }
.area-visual { position: relative; min-height: 630px; border-radius: var(--radius); overflow: hidden; background: linear-gradient(150deg, #1b5660, #0f3038); box-shadow: var(--shadow); }
.area-visual::before { content: ""; position: absolute; inset: 0; opacity: .25; background-image: radial-gradient(circle at center, transparent 0 31%, rgba(255,255,255,.15) 31.3% 31.6%, transparent 32%), linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size: 430px 430px, 46px 46px, 46px 46px; background-position: center, center, center; }
.island-map { position: absolute; inset: 5% 50% 5% auto; width: 58%; height: 90%; transform: translateX(50%); overflow: visible; }
.map-land { fill: #d9d2c3; stroke: rgba(255,255,255,.75); stroke-width: 1.2; stroke-linejoin: round; }
.map-marker circle { fill: var(--accent); stroke: #fff; stroke-width: 2; }
.map-marker path { stroke: rgba(255,255,255,.65); stroke-width: 1; stroke-dasharray: 3 3; }
.map-marker text { fill: #fff; font-size: 11px; font-weight: 800; letter-spacing: .04em; paint-order: stroke; stroke: #10343d; stroke-width: 3px; }
.map-attribution { position: absolute; left: 28px; bottom: 24px; color: rgba(255,255,255,.45); font-size: 9px; letter-spacing: .04em; }
.sea-label { position: absolute; color: rgba(255,255,255,.35); font-size: 10px; letter-spacing: .18em; }
.sea-label-one { top: 27px; left: 28px; }
.sea-label-two { right: 28px; bottom: 28px; }
.area-copy { max-width: 650px; }
.area-list { margin-top: 40px; border-top: 1px solid var(--line); }
.area-list > div { display: grid; grid-template-columns: 16px 1fr; gap: 4px 12px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.area-list i { grid-row: 1 / span 2; width: 9px; height: 9px; margin-top: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(213,45,63,.1); }

.island-gallery { display: grid; grid-template-columns: 1fr .72fr 1fr; min-height: 590px; background: var(--ink); }
.gallery-photo { position: relative; min-width: 0; margin: 0; overflow: hidden; }
.gallery-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(3,24,38,.82), transparent 56%); pointer-events: none; }
.gallery-photo img { width: 100%; height: 100%; min-height: 590px; object-fit: cover; filter: saturate(.9) contrast(1.04); transition: transform .8s ease; }
.gallery-photo:hover img { transform: scale(1.035); }
.gallery-photo figcaption { position: absolute; z-index: 2; inset: auto 32px 28px; display: flex; align-items: center; gap: 16px; color: #fff; }
.gallery-photo figcaption > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: #bde2f0; font-size: 10px; }
.gallery-photo figcaption strong, .gallery-photo figcaption small { display: block; }
.gallery-photo figcaption strong { font-family: Georgia, serif; font-size: 27px; font-weight: 400; }
.gallery-photo figcaption small { margin-top: 3px; color: #cddde4; }
.gallery-message { display: flex; flex-direction: column; justify-content: center; padding: clamp(36px, 4vw, 66px); color: #fff; background: linear-gradient(160deg, var(--red-dark), #061d2d); }
.gallery-message h2 { margin: 0 0 26px; font-family: Georgia, serif; font-size: clamp(40px, 4vw, 66px); font-weight: 400; line-height: .94; letter-spacing: -.045em; }
.gallery-message > p:last-child { margin: 0; color: #bdd0da; font-size: 14px; line-height: 1.75; }
.area-list strong { font-family: Georgia, serif; font-size: 22px; font-weight: 400; }
.area-list span { color: #6a6d70; font-size: 13px; }

.group { color: #fff; background: linear-gradient(145deg, #0b4b72, #062b46 72%); }
.group-topline { display: flex; justify-content: space-between; align-items: center; padding-bottom: 25px; border-bottom: 1px solid rgba(255,255,255,.18); color: #b8d6e3; font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.group-content { display: grid; grid-template-columns: .8fr 1.1fr; gap: clamp(50px, 10vw, 160px); padding-top: 72px; }
.group h2 { max-width: 570px; font-size: clamp(50px, 7vw, 104px); line-height: .87; }
.group-copy { max-width: 760px; }
.group-copy > p:not(.large-copy) { color: #c5deea; font-size: 16px; line-height: 1.8; }
.ownership-path { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 35px; padding: 20px; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; background: rgba(1,24,39,.25); scroll-margin-top: 145px; }
.ownership-path div, .ownership-path a { min-width: 0; }
.ownership-path small, .ownership-path strong { display: block; }
.ownership-path small { margin-bottom: 6px; color: #8fc3da; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ownership-path strong { font-family: Georgia, serif; font-size: 17px; font-weight: 400; line-height: 1.15; }
.ownership-path > span { color: #7db9d2; }
.ownership-company { position: relative; padding: 12px 34px 12px 12px; border-radius: 12px; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.ownership-company b { position: absolute; top: 50%; right: 12px; color: #8fc3da; font-size: 13px; transform: translateY(-50%); }
.ownership-company:hover, .ownership-company:focus-visible { background: rgba(255,255,255,.1); transform: translateY(-2px); outline: none; }
.ownership-company:hover b, .ownership-company:focus-visible b { color: #fff; }
.group-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 85px; border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.group-stats > div { padding: 34px 28px 34px 0; }
.group-stats > div + div { padding-left: 34px; border-left: 1px solid rgba(255,255,255,.2); }
.group-stats strong { display: block; font-family: Georgia, serif; font-size: clamp(36px, 4.4vw, 64px); font-weight: 400; letter-spacing: -.035em; }
.group-stats span { display: block; margin-top: 7px; color: #b8d6e3; font-size: 12px; }
.group-footprint { display: grid; grid-template-columns: 180px 1fr; gap: 30px; padding-top: 28px; }
.group-footprint span { color: #8fc3da; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.group-footprint p { margin: 0; color: #d2e4eb; font-size: 13px; line-height: 1.6; }

.digital { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px, 8vw, 120px); align-items: center; background: var(--paper); }
.owner-portal-visual { position: relative; min-height: 570px; display: grid; place-items: center; border-radius: var(--radius); overflow: hidden; background: linear-gradient(145deg, #0b6593, #052e4b); box-shadow: var(--shadow); }
.owner-portal-visual::before, .owner-portal-visual::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; }
.owner-portal-visual::before { width: 410px; height: 410px; top: -190px; left: -120px; box-shadow: 0 0 0 48px rgba(255,255,255,.03); }
.owner-portal-visual::after { width: 360px; height: 360px; right: -190px; bottom: -150px; box-shadow: 0 0 0 55px rgba(255,255,255,.03); }
.portal-screen { position: relative; z-index: 2; width: min(78%, 470px); padding: 18px; border: 1px solid rgba(255,255,255,.35); border-radius: 22px; background: rgba(250,253,254,.96); box-shadow: 0 28px 65px rgba(0,18,31,.35); transform: rotate(-2deg); }
.portal-screen-top { display: flex; align-items: center; gap: 6px; padding-bottom: 14px; border-bottom: 1px solid #d9e6eb; }
.portal-screen-top span { width: 7px; height: 7px; border-radius: 50%; background: #9bb8c5; }
.portal-screen-top b { margin-left: auto; color: var(--red-dark); font-size: 10px; letter-spacing: .12em; }
.portal-balance { position: relative; margin-top: 18px; padding: 26px; border-radius: 16px; color: #fff; background: linear-gradient(125deg, #0d628e, #073c5d); overflow: hidden; }
.portal-balance small, .portal-balance strong { display: block; }
.portal-balance small { color: #c3dfeb; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.portal-balance strong { margin-top: 8px; font-family: Georgia, serif; font-size: 29px; font-weight: 400; }
.portal-balance i { position: absolute; right: -20px; top: -25px; width: 110px; height: 110px; border: 22px solid rgba(255,255,255,.09); border-radius: 50%; }
.portal-rows { display: grid; gap: 12px; padding: 22px 8px 7px; }
.portal-rows span { height: 11px; border-radius: 8px; background: linear-gradient(90deg, #dce8ed 0 34%, #eff4f6 34%); }
.portal-rows span:nth-child(2) { width: 91%; }.portal-rows span:nth-child(3) { width: 78%; }.portal-rows span:nth-child(4) { width: 86%; }
.digital-content h2 { margin: 0 0 24px; font-family: Georgia, serif; font-size: clamp(48px, 6vw, 86px); font-weight: 400; line-height: .94; letter-spacing: -.05em; }
.digital-content .large-copy { font-size: clamp(22px, 2.2vw, 33px); }
.portal-features { display: grid; gap: 13px; margin: 30px 0 35px; padding: 0; list-style: none; }
.portal-features li { display: flex; gap: 12px; color: #52636e; font-size: 14px; }
.portal-features span { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--red); font-size: 11px; }
.digital-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: stretch; }
.registry-link { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; min-height: 54px; padding: 0 17px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.registry-link > span { color: var(--red); font-size: 18px; }.registry-link small, .registry-link strong { display: block; }.registry-link small { color: #7e8d95; font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }.registry-link strong { font-size: 12px; }.registry-link b { color: var(--red); }
.digital-card { display: grid; grid-template-columns: 68px 1fr auto; align-items: center; gap: 20px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: #fff; text-decoration: none; box-shadow: 0 12px 32px rgba(28,25,22,.06); transition: .25s ease; }
.digital-card:hover { transform: translateX(8px); border-color: rgba(18,107,152,.4); }
.digital-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; color: #fff; background: var(--sea-dark); font-size: 24px; }
.digital-card small { color: var(--red-dark); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.digital-card h3 { margin: 4px 0 5px; font-family: Georgia, serif; font-size: 25px; font-weight: 400; }
.digital-card p { margin: 0; color: #737579; font-size: 13px; }
.digital-card b { color: var(--red); font-size: 23px; }

.contact { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(50px, 8vw, 130px); color: #fff; background: #071c2b; }
.contact h2 { max-width: 700px; font-size: clamp(53px, 7vw, 98px); line-height: .9; }
.contact-title > p:last-child { max-width: 480px; color: #aeb0b4; line-height: 1.7; }
.contact-cards { align-self: center; }
.contact-cards > * { display: grid; grid-template-columns: 1fr auto; gap: 7px 16px; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.15); text-decoration: none; }
.contact-cards > *:first-child { border-top: 1px solid rgba(255,255,255,.15); }
.contact-cards small { grid-column: 1; color: #8d9095; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.contact-cards strong { grid-column: 1; font-family: Georgia, serif; font-size: clamp(21px, 2.2vw, 32px); font-weight: 400; }
.contact-cards span { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #7ec7e5; }
.contact-cards a:hover span { color: #fff; background: var(--red); border-color: var(--red); }

body.modal-open { overflow: hidden; }
.coming-modal[hidden] { display: none; }
.coming-modal { position: fixed; inset: 0; z-index: 500; display: grid; place-items: center; padding: 24px; }
.coming-backdrop { position: absolute; inset: 0; background: rgba(2,18,29,.76); backdrop-filter: blur(8px); animation: modal-fade .2s ease both; }
.coming-dialog { position: relative; z-index: 1; width: min(100%, 560px); padding: clamp(36px, 6vw, 64px); border: 1px solid rgba(255,255,255,.16); border-radius: 28px; color: #fff; background: linear-gradient(145deg, #0b4b72, #061d2d); box-shadow: 0 36px 100px rgba(0,0,0,.42); animation: modal-rise .28s ease both; }
.coming-dialog::after { content: ""; position: absolute; inset: auto 0 0; height: 5px; border-radius: 0 0 28px 28px; background: linear-gradient(90deg, var(--red), var(--accent)); }
.coming-dialog .eyebrow { margin: 24px 0 16px; color: #acd6e8; }
.coming-dialog h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(58px, 10vw, 92px); font-weight: 400; line-height: .9; letter-spacing: -.05em; }
.coming-dialog > p:last-child { max-width: 390px; margin: 24px 0 0; color: #c5dce6; font-size: 16px; line-height: 1.7; }
.coming-icon { width: 56px; height: 56px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: #8fd0eb; font-size: 22px; }
.coming-close { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #fff; background: rgba(255,255,255,.05); font-size: 27px; line-height: 1; cursor: pointer; }
.coming-close:hover { background: rgba(255,255,255,.14); }
@keyframes modal-fade { from { opacity: 0; } }
@keyframes modal-rise { from { opacity: 0; transform: translateY(18px) scale(.98); } }

.site-footer { display: grid; grid-template-columns: 1fr auto auto; align-items: end; gap: 50px; padding: 46px clamp(24px, 6vw, 110px); border-top: 1px solid rgba(255,255,255,.12); color: #9fb4c0; background: #061823; }
.footer-brand img { width: 185px; height: 65px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.footer-brand p, .footer-data p { margin: 5px 0; font-size: 12px; }
.footer-data { text-align: right; }
.footer-data strong { color: #fff; }
.photo-credit { color: #6f8b99; font-size: 9px !important; }
.back-top { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #fff; text-decoration: none; }

@media (max-width: 1100px) {
  .site-header { height: auto; min-height: 82px; padding: 10px 24px; }
  .main-nav a { padding: 10px; }
  .main-nav a span:last-child { display: none; }
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-card { max-width: 580px; transform: none; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .digital { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  body { padding-top: 116px; }
  .site-header { position: fixed; inset: 0 0 auto; min-height: 116px; display: grid; grid-template-columns: 108px 1fr; gap: 8px; padding: 8px 8px 9px; background: rgba(239,247,249,.98); }
  .brand { width: 108px; height: 92px; grid-row: 1; align-self: stretch; border-right: 1px solid var(--line); }
  .brand img { width: 102px; height: 88px; max-width: none; object-fit: contain; object-position: center; }
  .main-nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; }
  .main-nav a { min-width: 0; min-height: 45px; flex-direction: column; justify-content: center; gap: 3px; padding: 3px 2px; border-radius: 10px; font-size: 9px; line-height: 1.05; text-align: center; }
  .main-nav a span:last-child { display: block; white-space: normal; }
  .nav-icon { width: 25px; height: 25px; }
  .nav-icon svg { stroke-width: 1.9; }
  .hero { min-height: auto; padding: 76px 20px 45px; }
  .building-outline { right: -58%; bottom: 7%; width: 145%; height: 62%; opacity: .08; }
  .hero h1 { font-size: clamp(49px, 15vw, 72px); }
  .hero-lead { font-size: 16px; }
  .hero-actions { display: grid; }
  .button { width: 100%; }
  .hero-facts { grid-template-columns: 1fr; margin-top: 48px; }
  .hero-facts div { padding: 17px 0; border-bottom: 1px solid var(--line); }
  .hero-facts div + div { padding-left: 0; border-left: 0; }
  .hero-card { padding: 28px; }
  .section { padding: 82px 20px; scroll-margin-top: 116px; }
  .intro, .area, .group-content, .contact { grid-template-columns: 1fr; }
  .intro-copy { padding-top: 0; }
  .service-grid { grid-template-columns: 1fr; margin-top: 45px; }
  .service-card { min-height: 300px; }
  .service-icon { margin-top: 28px; }
  .area { gap: 60px; }
  .area-visual { min-height: 490px; order: 2; }
  .island-map { width: 78%; height: 88%; }
  .map-attribution { left: 18px; bottom: 16px; font-size: 8px; }
  .island-gallery { grid-template-columns: 1fr; }
  .gallery-photo, .gallery-photo img { min-height: 390px; }
  .gallery-message { min-height: 390px; order: -1; }
  .group-content { gap: 45px; }
  .ownership-path { grid-template-columns: 1fr; gap: 10px; }
  .ownership-path > span { transform: rotate(90deg); justify-self: center; }
  .group-stats { grid-template-columns: 1fr; margin-top: 58px; }
  .group-stats > div, .group-stats > div + div { padding: 24px 0; border-left: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .group-stats > div:last-child { border-bottom: 0; }
  .group-footprint { grid-template-columns: 1fr; gap: 11px; }
  .group-topline { align-items: flex-start; gap: 20px; }
  .digital { grid-template-columns: 1fr; }
  .owner-portal-visual { min-height: 430px; }
  .digital-actions { display: grid; }
  .registry-link { border-radius: 17px; }
  .contact { gap: 55px; }
  .contact-cards strong { font-size: 21px; overflow-wrap: anywhere; }
  .site-footer { grid-template-columns: 1fr auto; align-items: center; gap: 24px; }
  .footer-data { grid-column: 1 / -1; grid-row: 2; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
