/* Sattva Group template v1 — layout and type. Colours come from the developer
   theme (inline :root tokens written by base.mjs from
   builders/sattva-group/sattva-group.json: indigo #29358F, cyan #20B5D8,
   yellow #F6C500); these are fallbacks. --brand-deep is the theme's yellow, so
   nothing here uses it for a hover fill.
   Cyan is 2.4:1 on white: it is decoration only, and text accents on light
   surfaces use --accent-text (#0B6B84, 6.1:1). On indigo, text accents use
   the yellow (6.5:1). Headings are Noto Serif, text Manrope, both self-hosted
   (latin subsets, preloaded; Manrope latin-ext carries the rupee sign). */
@font-face{font-family:"Manrope";font-style:normal;font-weight:300 800;font-display:optional;src:url(../assets/fonts/52b571ea7c-xn7gYHE41ni1AdIRggexSvfedN4.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Manrope";font-style:normal;font-weight:300 800;font-display:optional;src:url(../assets/fonts/a4a584830a-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20C0,U+2113,U+A720-A7FF}
@font-face{font-family:"Noto Serif";font-style:normal;font-weight:400 700;font-display:optional;src:url(../assets/fonts/0898f7c50c-ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf6D33WsNFH.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--brand:#29358F;--brand-2:#20B5D8;--brand-deep:#F6C500;--ink:#171717;--ink-2:#4a4a4a;--line:#d8d8d8;--bg:#f8f8f8;--card:#fff;--tint:#eeeeee;
  --indigo-deep:#1E2870;--yellow:#F6C500;--accent-text:#0B6B84;--on-indigo:#d7dbf5;--serif:"Noto Serif",Georgia,"Times New Roman",serif;
  --radius:6px;--wrap:1180px;--gap:clamp(16px,3vw,28px);--shadow:0 1px 2px rgba(20,26,80,.08),0 10px 30px rgba(20,26,80,.10)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:17px;line-height:1.6;color:var(--ink);background:var(--card)}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink)}
a:hover{color:var(--accent-text)}
h1,h2,h3{line-height:1.15;margin:0 0 .5em}
h1,h2{font-family:var(--serif);font-weight:700;letter-spacing:-.015em;color:var(--brand)}
h1{font-size:clamp(2.3rem,5.4vw,3.8rem)}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem)}
h3{font-size:1.2rem;font-weight:700}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gap)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:100;background:var(--card);padding:8px 12px}
:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.85em 1.4em;border-radius:999px;border:2px solid var(--brand);background:var(--brand);color:#fff;font:inherit;font-weight:800;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}
.btn:hover{background:var(--indigo-deep);border-color:var(--indigo-deep);color:#fff}
.btn-ghost{background:transparent;color:var(--brand)}
.btn-ghost:hover{background:var(--brand);color:#fff}
.btn-sm{padding:.55em 1.1em;font-size:.92rem}
.btn-block{width:100%}
.link-btn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-decoration:underline}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;gap:16px;min-height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto;min-width:0}
.brand img{width:40px;height:40px}
.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.brand-prefix{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.brand-name{font-family:var(--serif);font-weight:700;color:var(--brand);font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.site-nav a{display:block;padding:.5em .7em;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--brand);background:none;box-shadow:inset 0 -3px 0 var(--yellow)}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);cursor:pointer}
.menu-bars,.menu-bars::before,.menu-bars::after{display:block;width:20px;height:2px;background:var(--ink);margin:0 auto;position:relative;content:""}
.menu-bars::before{position:absolute;top:-6px}.menu-bars::after{position:absolute;top:6px}
@media (max-width:1024px){
  .menu-btn{display:block}
  .header-cta{display:none}
  .site-nav{position:fixed;inset:68px 0 auto 0;height:calc(100vh - 68px);overflow-y:auto;background:var(--card);padding:16px var(--gap);display:none}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column}
  .site-nav a{padding:.9em .5em;font-size:1.1rem;border-bottom:1px solid var(--tint);border-radius:0}
  .site-nav a:hover,.site-nav a[aria-current="page"]{box-shadow:inset 4px 0 0 var(--yellow)}
}

/* hero: the photograph runs the full width of the page; the copy sits on a
   white card below it, its top edge raised over the photo's lower band on wide
   screens (grid rows, not absolute positioning). The card never covers more
   than that band, because supplied renders often carry their own lettering. */
.hero{background:linear-gradient(180deg,var(--card) 0%,var(--card) 70%,var(--bg) 100%);padding:0 0 clamp(28px,4vw,48px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);max-width:none;padding:0}
.hero-media{order:-1;margin:0;position:relative;overflow:hidden;aspect-ratio:21/9;max-height:min(62vh,620px);width:100%;background:var(--tint)}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-copy{position:relative;z-index:1;min-width:0;width:min(var(--wrap) - 2*var(--gap),860px);margin:clamp(-120px,-8vw,-48px) 0 0 max(var(--gap),calc((100vw - var(--wrap))/2 + var(--gap)));background:var(--card);border-top:6px solid var(--yellow);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow);padding:clamp(24px,3.4vw,40px) clamp(20px,3.4vw,44px) clamp(24px,3vw,36px)}
.hero h1{color:var(--brand)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:800;color:var(--accent-text)}
.hero-lead{font-size:1.06rem;color:var(--ink-2);max-width:68ch}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{display:inline-block;padding:.32em .85em;border-radius:999px;background:#e8f7fb;border:1px solid var(--brand-2);color:var(--accent-text);font-weight:800;font-size:.76rem;letter-spacing:.05em;text-transform:uppercase}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.fact-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:clamp(20px,3vw,32px) 0 0;background:var(--brand);border-radius:var(--radius);overflow:hidden}
.fact-strip div{padding:16px 18px;border-right:1px solid rgba(255,255,255,.14)}
.fact-strip div:last-child{border-right:0}
.fact-strip dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--yellow);font-weight:800}
.fact-strip dd{margin:4px 0 0;font-weight:700;font-size:1rem;color:#fff;overflow-wrap:anywhere}
@media (max-width:900px){.hero-media{aspect-ratio:16/9;max-height:none}.hero-copy{width:auto;margin:-40px var(--gap) 0}}
@media (max-width:700px){
  .hero-copy{margin:0;border-radius:0;box-shadow:none;border-top-width:5px;padding:22px var(--gap) 24px}
  .fact-strip{grid-template-columns:repeat(2,1fr);border-radius:0;margin-left:calc(-1*var(--gap));margin-right:calc(-1*var(--gap))}
  .fact-strip div{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
}

/* sections */
.section{padding:clamp(48px,7vw,88px) 0}
.section-tint{background:var(--bg)}
.section-head{max-width:760px;margin-bottom:28px}
.lead{color:var(--ink-2);font-size:1.05rem}
.more{margin-top:20px}
.more a:not(.btn){font-weight:700;text-decoration:none}
.note{font-size:.88rem;color:var(--ink-2);margin-top:16px}
.highlight-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.highlight-grid li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 20px 52px;position:relative;font-weight:600;overflow-wrap:anywhere}
.highlight-grid li::before{content:"";position:absolute;left:20px;top:24px;width:16px;height:16px;border-radius:50%;background:var(--yellow);box-shadow:inset 0 0 0 4px var(--brand)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
table{border-collapse:collapse;width:100%;font-size:.98rem}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--brand);color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
tbody tr:last-child td{border-bottom:0}
.config-table td:first-child{font-weight:800}
.price-note{margin-top:18px;font-size:1.05rem}
.card-grid,.gallery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.card a{display:block;text-decoration:none;color:var(--ink)}
.card img{width:100%;aspect-ratio:1/1;object-fit:contain;background:var(--card)}
.card img.cover{aspect-ratio:3/2;object-fit:cover}
.card-title{display:block;font-weight:800;padding:14px 16px 0;margin:0}
.card-meta{display:block;padding:0 16px 14px;color:var(--ink-2);font-size:.9rem}
.card>.card-title{padding-bottom:14px}
.split{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(20px,4vw,48px);align-items:center}
.split figure{margin:0}.split img{border-radius:var(--radius);border:1px solid var(--line)}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr)}.highlight-grid{grid-template-columns:minmax(0,1fr)}}
.ticks{list-style:none;margin:0 0 8px;padding:0}
.ticks li{padding:10px 0 10px 30px;border-bottom:1px solid var(--line);position:relative;font-weight:600}
.ticks li::before{content:"✓";position:absolute;left:4px;color:var(--accent-text);font-weight:800}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{padding:.55em 1em;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);font-weight:600;font-size:.95rem}
.gallery-grid figure{margin:0;background:var(--card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.gallery-grid img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery-grid figcaption{padding:12px 14px;font-size:.88rem;color:var(--ink-2)}
.address{font-size:1.15rem;font-weight:700}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:0}
.stat-grid div{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.stat-grid dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-weight:700}
.stat-grid dd{margin:4px 0 0;font-family:var(--serif);font-weight:700;font-size:1.3rem;color:var(--brand)}
.faq{max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:18px 36px 18px 0;font-weight:700;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:14px;font-size:1.5rem;color:var(--accent-text)}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--ink-2);padding-bottom:12px}

/* enquiry */
.section-brand{background:var(--brand);color:#fff;border-top:6px solid var(--yellow)}
.section-brand h2{color:#fff}
.section-brand p{color:var(--on-indigo)}
.enquire-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,4vw,56px);align-items:start}
@media (max-width:900px){.enquire-grid{grid-template-columns:minmax(0,1fr)}}
.enquiry{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:var(--card);color:var(--ink);padding:24px;border-radius:var(--radius);box-shadow:var(--shadow)}
.enquiry .btn{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.enquiry .btn:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.field{display:flex;flex-direction:column;gap:6px}
.field-wide,.enquiry .btn,.form-status{grid-column:1/-1}
.field label{font-weight:700;font-size:.9rem}
.opt{font-weight:500;color:var(--ink-2)}
.field input,.field textarea{font:inherit;padding:.75em .9em;border:1px solid #9a9a9a;border-radius:var(--radius);background:#fff;color:var(--ink);min-width:0}
.field input:focus,.field textarea:focus{border-color:var(--brand);outline:2px solid var(--accent-text);outline-offset:0}
.form-status{margin:0;font-weight:700;min-height:1.4em}
.form-status.ok{color:#16683f}.form-status.err{color:#a62424}
@media (max-width:560px){.enquiry{grid-template-columns:minmax(0,1fr)}}

/* subpages */
.page-hero{background:var(--bg);padding:clamp(28px,5vw,56px) 0;border-bottom:6px solid var(--yellow)}
.crumbs{font-size:.9rem;color:var(--ink-2);margin-bottom:10px}
.crumbs a{color:var(--ink-2)}
.page-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,4vw,56px);padding-top:clamp(28px,5vw,56px);padding-bottom:clamp(40px,6vw,72px)}
.prose{max-width:75ch;min-width:0}
.prose h2{font-size:1.6rem;margin-top:1.6em}
.prose h3{margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin-bottom:.4em}
.prose blockquote{margin:1.4em 0;padding:16px 20px;border-left:4px solid var(--yellow);background:var(--bg);border-radius:0 10px 10px 0}
.prose .table-wrap{margin:1.2em 0}
.page-aside{position:relative}
.aside-card{position:sticky;top:90px;background:var(--card);border:1px solid var(--line);border-top:5px solid var(--brand);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.aside-title{font-family:var(--serif);font-weight:700;font-size:1.2rem;color:var(--brand)}
.aside-facts{margin:0 0 16px}
.aside-facts div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--tint);font-size:.93rem}
.aside-facts dt{color:var(--ink-2)}.aside-facts dd{margin:0;font-weight:700;text-align:right}
@media (max-width:960px){.page-grid{grid-template-columns:minmax(0,1fr)}.aside-card{position:static}}

/* footer */
.site-footer{background:var(--indigo-deep);color:#C9CDEB;padding:48px 0 96px;font-size:.93rem}
.site-footer a{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:32px}
.footer-title{color:#fff;font-family:var(--serif);font-weight:700;font-size:1.25rem}
.footer-heading{color:var(--yellow);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem}
.footer-links{list-style:none;margin:0;padding:0;columns:2}
.footer-links li{margin-bottom:6px}
.footer-legal{border-top:1px solid rgba(255,255,255,.16);margin-top:28px;padding-top:20px;font-size:.84rem;color:#C9CDEB}
.rera{overflow-wrap:anywhere}
@media (max-width:700px){.footer-grid{grid-template-columns:minmax(0,1fr)}}
.sticky-cta{display:none}
@media (max-width:700px){.sticky-cta{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:40;text-align:center;padding:14px;border-radius:var(--radius);background:var(--yellow);color:var(--ink);font-weight:800;text-decoration:none;box-shadow:var(--shadow)}}
.page-updated{font-size:.85rem;color:var(--ink-2);margin:-.2em 0 1em}
.on-dark{color:#fff;font-weight:700}
.on-dark:hover{color:var(--yellow)}
.page-faq{margin-top:2.5em}
.page-faq h2{font-size:1.5rem}
.prose figure{margin:0 0 1.5em}
.prose figure img{border-radius:var(--radius);border:1px solid var(--line)}
.prose .card-grid,.prose .gallery-grid{margin-bottom:1.5em}

/* migrated live copy (tooling/render/migrate.mjs) — text keeps a reading
   measure; grids, tables and figures use the full container width. */
.prose.mig{max-width:none}
.mig > * + *{margin-top:1em}
.mig > p,.mig > ul,.mig > ol,.mig > h2,.mig > h3,.mig > h4,.mig > blockquote,.mig > dl,.mig > .mig-eyebrow,.mig-block > p,.mig-block > ul,.mig-block > ol,.mig-block > h2,.mig-block > h3,.mig-block > blockquote{max-width:780px}
.mig h2{font-size:1.55rem;margin:1.6em 0 .5em}
.mig h3{font-size:1.15rem;margin:1.3em 0 .4em}
.mig-block + .mig-block{margin-top:2.2em;padding-top:1.6em;border-top:1px solid var(--line)}
.mig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:1.4em 0}
.mig-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;min-width:0}
.mig-card > :first-child{margin-top:0}.mig-card > :last-child{margin-bottom:0}
.mig-card h3,.mig-card h4{margin:.2em 0 .4em;font-size:1.05rem}
.mig-card .mig-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:.6em 0 0}
.mig-card .mig-card{padding:12px 14px;box-shadow:none}
.mig-stats{display:flex;flex-wrap:wrap;gap:12px;margin:1.4em 0}
.mig-stats > *{flex:1 1 140px;min-width:0}
.mig-stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.mig-num{display:block;font-family:var(--serif);font-size:1.55rem;font-weight:700;line-height:1.2;color:var(--brand)}
.mig-label{display:block;color:var(--ink-2);font-size:.92rem}
.mig-note{background:#e8f7fb;border-left:4px solid var(--brand-2);border-radius:0 10px 10px 0;padding:14px 18px;max-width:780px}
.mig-details{border-bottom:1px solid var(--line);padding:6px 0;max-width:780px}
.mig figure{margin:1.2em 0}
.mig figure img,.mig > img{border-radius:var(--radius);border:1px solid var(--line)}
.mig figcaption,.mig-caption{font-size:.88rem;color:var(--ink-2);margin-top:6px}
.mig img{height:auto;max-width:100%}
.mig > img,.mig > figure{max-width:720px}
.mig-grid figure{margin:0}
.mig ul,.mig ol{padding-left:1.3em}
.mig .table-wrap{margin:1.2em 0}
.mig-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:var(--accent-text);margin-bottom:.4em}
.section-head .eyebrow{margin:0 0 .5em}
.hero-lead p{margin:0 0 .8em}
.page-hero .hero-lead{max-width:75ch;color:var(--ink-2)}
.section-figure{margin:0 0 24px;max-width:720px}
.section-figure img{border-radius:var(--radius);border:1px solid var(--line);width:100%}
.section-extra{padding-top:0}
/* one quiet row of links per section, instead of buttons */
.section-links{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}
.section-links a{font-weight:700;text-decoration:none;color:var(--brand);border-bottom:2px solid var(--brand-2)}
.section-links a:hover{color:var(--accent-text)}
.section-tint .section-links{border-top-color:var(--line)}
.dev-split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(20px,4vw,48px);align-items:start}
.dev-figure{margin:0;position:sticky;top:90px}
.dev-figure img{border-radius:var(--radius);border:1px solid var(--line);aspect-ratio:4/3;object-fit:cover;width:100%}
@media (max-width:900px){.dev-split{grid-template-columns:minmax(0,1fr)}.dev-figure{position:static;max-width:520px}}
.address{font-weight:700}
/* long tokens (RERA ids, URLs) wrap instead of overflowing cards and cells */
.mig-card,.mig-stat,.mig-note,.mig td,.mig th,.aside-facts dd,.fact-strip dd{overflow-wrap:anywhere}
/* an image anywhere in the copy is capped like a figure; inside cards and grids it fills its cell */
.mig img{max-width:min(100%,720px)}
.mig-grid img,.mig-card img,.mig-stat img{max-width:100%}
/* long unbroken tokens in copy (RERA ids, URLs) wrap instead of widening the page on phones */
main{overflow-wrap:break-word}
.hero-copy{min-width:0}

/* ==== contact-modal (templated sites — tooling/render/templates/shared/contact-modal.css) ==== */
/* A white panel on every template, so text contrast never depends on the theme;
   the submit is the template's own .btn. margin:auto is explicit because a
   universal margin reset strips the <dialog> centring the browser gives it. */
.cm-modal{margin:auto;width:min(100% - 24px,30rem);max-width:none;max-height:min(92vh,760px);overflow-y:auto;padding:0;border:0;border-radius:12px;background:#fff;color:#171717;box-shadow:0 20px 50px rgba(0,0,0,.28);overscroll-behavior:contain}
.cm-modal:not([open]){display:none}
.cm-modal::backdrop{background:rgba(10,12,16,.66)}
.cm-modal__panel{position:relative;padding:1.5rem}
.cm-modal__title{margin:0 2.5rem .4rem 0;font-size:1.3rem;line-height:1.25;color:#171717}
.cm-modal__lede{margin:0 0 1rem;font-size:.92rem;line-height:1.5;color:#4a4a4a}
.cm-modal__close{position:absolute;top:.6rem;right:.6rem;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:8px;background:transparent;color:#171717;font:inherit;font-size:1.6rem;line-height:1;cursor:pointer}
.cm-modal__close:hover{background:#f0f0f0}
.cm-form{display:grid;gap:.8rem}
.cm-form__field{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.cm-form__field label{font-size:.88rem;font-weight:600;color:#171717}
.cm-form input,.cm-form textarea{width:100%;min-width:0;padding:.65rem .8rem;border:1px solid #8a8a8a;border-radius:8px;background:#fff;color:#171717;font:inherit;font-size:16px}
.cm-form textarea{min-height:5rem;resize:vertical}
.cm-form__submit{margin-top:.2rem}
.cm-form__submit:disabled{opacity:.6;cursor:wait}
.cm-form__status{margin:0;padding:.65rem .8rem;border-radius:8px;font-size:.9rem;background:#f3f4f6;color:#171717}
.cm-form__status.ok{background:#dcfce7;color:#14532d}
.cm-form__status.err{background:#fef2f2;color:#991b1b}
.cm-modal :focus-visible{outline:2px solid #171717;outline-offset:2px}
html.cm-modal-open,html.cm-modal-open body{overflow:hidden}
