@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap');

:root {
  --idx-navy:#082B4C;
  --idx-navy-2:#0C365D;
  --idx-teal:#168C8C;
  --idx-coral:#F26B4A;
  --idx-cream:#FAF7F0;
  --idx-ink:#263238;
  --idx-muted:#66757C;
  --idx-line:#DDE4E7;
  --idx-soft:#F4F7F7;
  --idx-white:#FFFFFF;
  --idx-shadow:0 20px 60px rgba(8,43,76,.15);
}

.idx-home { margin:0; background:#fff; color:var(--idx-ink); font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.6; }
.idx-home h1,.idx-home h2,.idx-home h3 { font-family:"Sora",sans-serif; letter-spacing:-.035em; }
.idx-home .container { width:min(calc(100% - 48px),1280px); }
.idx-home a { text-decoration-thickness:1px; }
.idx-home :focus-visible { outline:3px solid var(--idx-teal); outline-offset:3px; }

.idx-utility { background:#061F37; color:#fff; }
.idx-utility .utility-inner { min-height:34px; }
.idx-header { background:#fff; border-bottom:1px solid rgba(8,43,76,.1); backdrop-filter:none; }
.idx-header .navbar { min-height:82px; }
.idx-header .brand { width:154px; min-height:62px; }
.idx-header .brand img { width:154px; height:66px; }
.idx-header .nav-links { gap:1.45rem; }
.idx-header .nav-links>a:not(.button) { font-family:"DM Sans",sans-serif; font-size:.85rem; font-weight:600; color:#173A58; }
.idx-header .nav-links>a:not(.button)::after { display:none; }
.idx-header .nav-cta { min-height:46px; padding:.75rem 1.15rem; border-radius:6px; background:var(--idx-coral); border-color:var(--idx-coral); color:#fff; }

.idx-hero { position:relative; min-height:670px; padding-bottom:90px; background:#0c2d49; overflow:visible; }
.idx-hero-bg { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,26,45,.88) 0%,rgba(4,26,45,.66) 46%,rgba(4,26,45,.26) 100%),url('assets/south-florida-home.jpg') center 54%/cover no-repeat; }
.idx-hero-copy { position:relative; z-index:1; padding-top:132px; color:#fff; }
.idx-kicker { margin:0 0 16px; font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.idx-hero h1 { max-width:720px; margin:0; color:#fff; font-size:clamp(3.2rem,5.6vw,5.8rem); line-height:.98; font-weight:600; }
.idx-hero-copy>p:last-child { max-width:620px; margin:22px 0 0; color:rgba(255,255,255,.9); font-size:1.15rem; line-height:1.7; }

.idx-search-wrap { position:absolute; z-index:3; right:0; bottom:-80px; left:0; }
.idx-search-card { padding:26px 28px 18px; background:#fff; border:1px solid rgba(8,43,76,.1); box-shadow:var(--idx-shadow); }
.idx-search-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:36px; align-items:end; margin-bottom:18px; }
.idx-search-heading span { color:var(--idx-teal); font-size:.74rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.idx-search-heading h2 { margin:5px 0 0; color:var(--idx-navy); font-size:1.55rem; line-height:1.18; }
.idx-search-heading p { max-width:390px; justify-self:end; margin:0; color:var(--idx-muted); font-size:.9rem; }
.idx-search-form { display:grid; grid-template-columns:minmax(0,1fr) 245px; gap:10px; }
.idx-search-input { position:relative; }
.idx-search-input svg { position:absolute; left:20px; top:50%; width:21px; height:21px; transform:translateY(-50%); fill:none; stroke:var(--idx-teal); stroke-width:1.8; }
.idx-search-input input { width:100%; min-height:64px; padding:0 20px 0 54px; border:1px solid #B9C7CC; border-radius:4px; background:#fff; color:var(--idx-ink); font:500 1rem/1.2 "DM Sans",sans-serif; }
.idx-search-input input:focus { border-color:var(--idx-teal); outline:0; box-shadow:0 0 0 3px rgba(22,140,140,.12); }
.idx-search-input input::placeholder { color:#74848B; }
.idx-search-button { min-height:64px; padding:0 22px; border:0; border-radius:4px; background:var(--idx-coral); color:#fff; font:700 .92rem/1.2 "DM Sans",sans-serif; cursor:pointer; transition:background .18s ease,transform .18s ease; }
.idx-search-button:hover { background:#DD5C3E; transform:translateY(-1px); }
.idx-search-button:active { transform:translateY(1px); }
.idx-search-meta { display:flex; flex-wrap:wrap; gap:24px; margin-top:14px; color:#60727A; font-size:.74rem; font-weight:600; }
.idx-search-meta span { display:inline-flex; align-items:center; gap:6px; }
.idx-search-meta svg { width:14px; height:14px; fill:none; stroke:var(--idx-teal); stroke-width:2; }

.idx-actions { padding:126px 0 42px; background:#fff; border-bottom:1px solid var(--idx-line); }
.idx-action-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.idx-action-item { display:grid; grid-template-columns:48px 1fr auto; gap:14px; align-items:center; min-height:104px; padding:18px 28px; color:var(--idx-navy); border-right:1px solid var(--idx-line); text-decoration:none; transition:background .18s ease; }
.idx-action-item:first-child { padding-left:0; }
.idx-action-item:last-child { border-right:0; }
.idx-action-item:hover { background:#F8FAFA; }
.idx-action-icon { display:grid; width:44px; height:44px; place-items:center; border:1px solid #BFD3D3; color:var(--idx-teal); }
.idx-action-icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; }
.idx-action-item strong,.idx-action-item small { display:block; }
.idx-action-item strong { font-family:"Sora",sans-serif; font-size:.96rem; }
.idx-action-item small { margin-top:3px; color:var(--idx-muted); font-size:.75rem; }
.idx-action-item>b { color:var(--idx-teal); font-size:1.2rem; }

.idx-section { padding:clamp(76px,8vw,118px) 0; }
.idx-label { margin:0 0 12px; color:var(--idx-teal); font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.idx-section h2 { margin:0; color:var(--idx-navy); font-size:clamp(2.25rem,4vw,4.2rem); font-weight:600; line-height:1.06; }
.idx-lead { margin:24px 0; color:var(--idx-muted); font-size:1.05rem; line-height:1.75; }
.idx-text-link { display:inline-flex; gap:8px; margin-top:24px; color:var(--idx-navy); font-weight:700; text-decoration:none; border-bottom:1px solid rgba(8,43,76,.35); }

.idx-markets { background:#F7F9F9; }
.idx-market-layout { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(56px,7vw,96px); align-items:center; }
.idx-market-photo { position:relative; min-height:560px; overflow:hidden; }
.idx-market-photo img { width:100%; height:560px; object-fit:cover; }
.idx-market-photo-label { position:absolute; right:0; bottom:0; min-width:220px; padding:20px 24px; color:#fff; background:var(--idx-navy); }
.idx-market-photo-label span,.idx-market-photo-label strong { display:block; }
.idx-market-photo-label span { opacity:.72; font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; }
.idx-market-photo-label strong { margin-top:2px; font:600 1.25rem/1.2 "Sora",sans-serif; }
.idx-market-copy h2 { max-width:12ch; }
.idx-market-list { margin-top:32px; border-top:1px solid var(--idx-line); }
.idx-market-list a { display:flex; justify-content:space-between; gap:20px; padding:20px 2px; color:var(--idx-navy); border-bottom:1px solid var(--idx-line); font:600 1rem/1.2 "Sora",sans-serif; text-decoration:none; }
.idx-market-list a:hover b { transform:translateX(4px); }
.idx-market-list b { color:var(--idx-teal); transition:transform .18s ease; }

.idx-options { background:#fff; }
.idx-section-head { display:grid; grid-template-columns:1fr .72fr; gap:60px; align-items:end; margin-bottom:46px; }
.idx-section-head h2 { max-width:15ch; }
.idx-section-head>p { max-width:520px; justify-self:end; margin:0; color:var(--idx-muted); }
.idx-compare { border-top:1px solid var(--idx-line); }
.idx-compare-row { display:grid; grid-template-columns:180px 1fr 1fr; border-bottom:1px solid var(--idx-line); }
.idx-compare-row>* { margin:0; padding:21px 24px; }
.idx-compare-row>span { color:var(--idx-navy); font-weight:700; padding-left:0; }
.idx-compare-row>p { color:#5F7078; border-left:1px solid var(--idx-line); }
.idx-compare-row>p:last-child { background:#F2F8F7; color:#36525E; }
.idx-compare-row p strong { color:var(--idx-navy); }
.idx-compare-head { background:var(--idx-navy); color:#fff; }
.idx-compare-head>* { color:#fff!important; border-left:0!important; background:transparent!important; font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; }
.idx-disclosure { max-width:920px; margin:18px 0 0; color:#748188; font-size:.73rem; }

.idx-process { background:var(--idx-navy); color:#fff; }
.idx-process .idx-label { color:#73D1CC; }
.idx-process h2 { color:#fff; max-width:12ch; }
.idx-process-head>p:last-child { margin:18px 0 0; color:#C9D6DE; }
.idx-process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:50px 0 0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.22); }
.idx-process-grid li { display:grid; grid-template-columns:auto 1fr; gap:20px; min-height:230px; padding:30px 30px 30px 0; border-right:1px solid rgba(255,255,255,.2); }
.idx-process-grid li+li { padding-left:30px; }
.idx-process-grid li:last-child { border-right:0; }
.idx-process-grid>li>span { color:#73D1CC; font:600 .8rem/1.2 "Sora",sans-serif; }
.idx-process-grid h3 { margin:0 0 12px; color:#fff; font-size:1.25rem; line-height:1.25; }
.idx-process-grid p { margin:0; color:#C8D6DD; font-size:.9rem; }

.idx-story { background:#fff; }
.idx-story-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(56px,7vw,100px); align-items:center; }
.idx-story-copy h2 { max-width:10ch; }
.idx-story-copy>p:not(.idx-label) { max-width:590px; margin:24px 0; color:var(--idx-muted); font-size:1.03rem; }
.idx-story-copy ul { margin:26px 0 32px; padding:0; list-style:none; border-top:1px solid var(--idx-line); }
.idx-story-copy li { padding:13px 0; border-bottom:1px solid var(--idx-line); color:var(--idx-navy); font-weight:600; }
.idx-story-copy li::before { content:'✓'; margin-right:10px; color:var(--idx-teal); }
.idx-story-copy .button { border-radius:4px; background:var(--idx-coral); border-color:var(--idx-coral); }
.idx-story-photo { margin:0; min-height:520px; overflow:hidden; }
.idx-story-photo img { width:100%; height:520px; object-fit:cover; object-position:center 58%; }

.idx-faq { background:#F7F9F9; }
.idx-faq-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(56px,7vw,100px); align-items:start; }
.idx-faq-grid h2 { max-width:10ch; }
.idx-faq-grid>div:first-child>p:not(.idx-label) { color:var(--idx-muted); }
.idx-faq-list { border-top:1px solid var(--idx-line); }
.idx-faq-list details { margin:0; padding:0; background:transparent; border:0; border-bottom:1px solid var(--idx-line); }
.idx-faq-list summary { min-height:70px; padding:16px 0; color:var(--idx-navy); font-size:1rem; }
.idx-faq-list summary::after { color:var(--idx-teal); }
.idx-faq-list details p { margin:0 0 20px; color:var(--idx-muted); }

.idx-final { position:relative; min-height:340px; display:flex; align-items:center; overflow:hidden; }
.idx-final-bg { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,31,55,.95),rgba(6,31,55,.72)),url('assets/neighborhood-home.jpg') center/cover no-repeat; }
.idx-final-inner { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:50px; color:#fff; }
.idx-final-inner span { font-size:.73rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.idx-final h2 { max-width:650px; margin:6px 0 10px; color:#fff; font-size:clamp(2.3rem,4vw,4.1rem); }
.idx-final p { margin:0; color:#D9E4E9; }
.idx-final-button { display:inline-flex; min-height:60px; min-width:225px; align-items:center; justify-content:center; gap:10px; padding:0 24px; color:#fff; background:var(--idx-coral); border-radius:4px; font-weight:700; text-decoration:none; }
.idx-final-button:hover { background:#DD5C3E; }

.idx-footer { background:#fff; border-top:0; }
.idx-footer .brand-footer { width:150px; }
.idx-footer .brand-footer img { width:150px; }

@media (max-width:980px){
  .idx-search-heading,.idx-market-layout,.idx-section-head,.idx-story-grid,.idx-faq-grid { grid-template-columns:1fr; }
  .idx-search-heading p { justify-self:start; }
  .idx-action-grid { grid-template-columns:1fr; }
  .idx-action-item { border-right:0; border-bottom:1px solid var(--idx-line); padding-left:0; }
  .idx-process-grid { grid-template-columns:1fr; }
  .idx-process-grid li,.idx-process-grid li+li { min-height:0; padding:26px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.2); }
  .idx-market-copy h2,.idx-story-copy h2,.idx-faq-grid h2 { max-width:15ch; }
  .idx-section-head>p { justify-self:start; }
}

@media (max-width:760px){
  .idx-home .container { width:min(calc(100% - 32px),100%); }
  .idx-utility .utility-right { display:none; }
  .idx-header .navbar { min-height:72px; }
  .idx-header .brand,.idx-header .brand img { width:132px; }
  .idx-header .menu-toggle { display:inline-flex; }
  .idx-header .nav-links { position:absolute; top:72px; right:0; left:0; display:none; margin:0; padding:18px 20px 24px; flex-direction:column; align-items:stretch; background:#fff; border-bottom:1px solid var(--idx-line); box-shadow:0 12px 24px rgba(8,43,76,.08); }
  .idx-header .nav-links.open { display:flex; }
  .idx-header .nav-links>a:not(.button) { padding:10px 0; }
  .idx-hero { min-height:auto; padding-bottom:0; }
  .idx-hero-bg { background:linear-gradient(0deg,rgba(4,26,45,.82),rgba(4,26,45,.45)),url('assets/south-florida-home.jpg') 58% center/cover no-repeat; }
  .idx-hero-copy { padding-top:84px; padding-bottom:120px; }
  .idx-hero h1 { font-size:clamp(2.85rem,13vw,4.4rem); max-width:12ch; }
  .idx-hero-copy>p:last-child { font-size:1rem; line-height:1.6; }
  .idx-search-wrap { position:relative; bottom:auto; width:auto; margin-top:-78px; padding-bottom:28px; }
  .idx-search-card { padding:20px 18px 16px; }
  .idx-search-heading { gap:8px; }
  .idx-search-heading h2 { font-size:1.2rem; }
  .idx-search-form { grid-template-columns:1fr; }
  .idx-search-input input,.idx-search-button { min-height:58px; }
  .idx-search-meta { gap:10px 16px; }
  .idx-actions { padding:20px 0 30px; }
  .idx-market-photo,.idx-market-photo img,.idx-story-photo,.idx-story-photo img { min-height:380px; height:380px; }
  .idx-section { padding:64px 0; }
  .idx-section h2 { font-size:clamp(2rem,10vw,3rem); }
  .idx-compare { overflow-x:auto; }
  .idx-compare-row { min-width:730px; grid-template-columns:150px 1fr 1fr; }
  .idx-process-grid { margin-top:34px; }
  .idx-final { min-height:390px; }
  .idx-final-inner { align-items:flex-start; flex-direction:column; gap:28px; }
  .idx-final-button { width:100%; }
}

@media (prefers-reduced-motion:reduce){
  .idx-home * { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
