/* Angel N Estates dynamic page V2 — isolated, preview-only pilot.
   The live site's shared /assets/style.css remains untouched. */
.dyn-page{--dp-ink:#261933;--dp-dark:#140d1e;--dp-purple:#7044c5;--dp-light:#e7d9ff;--dp-cream:#f9f6fc;--dp-line:#e9e3ef;color:var(--dp-ink);background:#fff;font-family:'DM Sans',Arial,sans-serif}
.dyn-page *{box-sizing:border-box}
.dyn-container{max-width:1250px;margin:0 auto;padding:0 32px}
.dyn-page .skip-link{z-index:10000}
.dyn-page a:focus-visible,.dyn-page summary:focus-visible{outline:3px solid #a97df2;outline-offset:3px}
.dyn-header{background:#110c18;color:white;position:relative;z-index:100;box-shadow:0 6px 28px #1a10241a}
.dyn-header-inner{min-height:90px;display:flex;align-items:center;gap:32px}
.dyn-brand{display:inline-flex;align-items:center;flex-shrink:0}
.dyn-brand img{width:74px;height:66px;object-fit:contain;mix-blend-mode:screen}
.dyn-desktop-nav{margin-left:auto;display:flex;align-items:center;gap:28px}
.dyn-desktop-nav a{color:#eee7f7;text-decoration:none;font-size:12px;font-weight:700;white-space:nowrap}
.dyn-desktop-nav a:hover{color:#cfadff}
.dyn-header-cta{color:white;text-decoration:none;border:1px solid #684f86;background:#6c41b8;display:inline-flex;align-items:center;gap:18px;white-space:nowrap;padding:15px 17px;font-size:12px;font-weight:700}
.dyn-header-cta:hover{background:#8052d3}
.dyn-header-cta span{font-size:18px}
.dyn-menu{display:none;position:relative;margin-left:auto}
.dyn-menu summary{cursor:pointer;list-style:none;border:1px solid #4b3a5f;border-radius:4px;width:47px;height:44px;padding:12px 10px}
.dyn-menu summary::-webkit-details-marker{display:none}
.dyn-menu summary span{display:block;height:2px;background:#e8def1;margin:4px 0}
.dyn-menu nav{position:absolute;right:0;top:53px;width:min(320px,calc(100vw - 36px));padding:8px 24px;background:#20122f;box-shadow:0 22px 36px #07040c55;border:1px solid #4a3467}
.dyn-menu nav a{display:block;text-decoration:none;font-size:14px;font-weight:700;color:#fff;padding:14px 2px;border-bottom:1px solid #ffffff1c}
.dyn-menu nav a:last-child{border-bottom:0;color:#d6b8fa}
.dyn-hero{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr);min-height:645px;background:linear-gradient(120deg,#1b112a 4%,#2b1744 83%);color:#fff}
.dyn-hero-copy{padding:37px 6% 64px max(32px,calc((100vw - 1190px)/2));display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0}
.dyn-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:65px;color:#cec2db;font-size:11px;font-weight:600}
.dyn-breadcrumbs a{text-decoration:none;color:#d6cbdf}
.dyn-breadcrumbs a:hover{color:white;text-decoration:underline}
.dyn-breadcrumbs span[aria-hidden]{color:#997db1}
.dyn-overline{display:flex;align-items:center;flex-wrap:wrap;gap:11px;color:#d5b8f9;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:24px}
.dyn-overline-dot{height:8px;width:8px;display:inline-block;background:#a876f0;border-radius:50%}
.dyn-overline-divider{color:#7d6b92}
.dyn-page .dyn-hero h1{font-family:'Manrope',Arial,sans-serif;font-size:clamp(39px,4.15vw,68px);letter-spacing:-.055em;line-height:1.12;font-weight:800;max-width:760px;margin:0 0 25px;color:#fff}
.dyn-page .dyn-hero-description{font-size:clamp(15px,1.35vw,18px);font-weight:400;line-height:1.75;max-width:610px;color:#e4dbea;margin:0}
.dyn-hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:34px}
.dyn-button{display:inline-flex;justify-content:center;align-items:center;gap:25px;min-height:53px;padding:16px 22px;font-size:13px;font-weight:800;line-height:1.4;text-decoration:none;transition:background .2s,transform .2s;white-space:normal}
.dyn-button span{font-size:18px;font-weight:400}
.dyn-button:hover{transform:translateY(-2px)}
.dyn-button-primary{color:#fff;background:#7447c5}
.dyn-button-primary:hover{background:#8a5ddd}
.dyn-button-link{padding-inline:5px;color:#fff;border-bottom:1px solid #a58cbf}
.dyn-hero-note{margin-top:55px;color:#c2b4d1;font-size:11px;display:flex;gap:15px;align-items:center}
.dyn-note-rule{width:38px;height:1px;background:#a876f0}
.dyn-hero-photo{position:relative;margin:0;min-height:645px;overflow:hidden}
.dyn-hero-photo>img{width:100%;height:100%;min-height:645px;object-fit:cover;object-position:center}
.dyn-hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#110c18b9,transparent 41%);pointer-events:none}
.dyn-hero-photo figcaption{position:absolute;z-index:2;bottom:17px;right:20px;color:#e8e3e8;font-size:10px;background:#170d2480;padding:6px 8px}
.dyn-hero-photo-label{position:absolute;z-index:2;left:0;bottom:58px;max-width:280px;padding:22px 29px;background:#f8f5fb;color:#201327;box-shadow:0 14px 35px #0e0d1430}
.dyn-hero-photo-label span{font-size:10px;letter-spacing:.18em;font-weight:800;color:#7b4cc6;display:block;margin-bottom:10px}
.dyn-hero-photo-label strong{font-family:'Manrope',Arial,sans-serif;font-weight:800;line-height:1.25;letter-spacing:-.04em;font-size:24px}
.dyn-assurance-strip{background:#fff;border-bottom:1px solid #eeeaf2}
.dyn-assurance-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;min-height:89px}
.dyn-assurance-inner>span{display:flex;align-items:center;gap:16px;color:#9b7bb6;font-size:12px;font-weight:800;letter-spacing:.05em;padding:23px 12px;border-right:1px solid #eeeaf2}
.dyn-assurance-inner>span:last-child{border-right:0}
.dyn-assurance-inner strong{color:#3e2b4c;font-size:13px;letter-spacing:0;font-weight:700}
.dyn-section{padding:clamp(70px,7vw,120px) 0}
.dyn-kicker{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#7644c2;margin-bottom:19px}
.dyn-kicker span{margin:0 8px;color:#ab8ece}
.dyn-page h2,.dyn-page h3{font-family:'Manrope',Arial,sans-serif;letter-spacing:-.048em}
.dyn-page .dyn-intro-grid h2,.dyn-feature-heading h2,.dyn-details-heading h2,.dyn-related-heading h2{font-size:clamp(35px,3.8vw,55px);line-height:1.13;font-weight:800;margin-bottom:26px;letter-spacing:-.055em}
.dyn-intro-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(310px,.7fr);gap:10%;align-items:center}
.dyn-story-copy{color:#62586b;font-size:17px;line-height:1.9;max-width:715px}
.dyn-story-bottom{display:flex;flex-wrap:wrap;gap:14px 32px;align-items:center;margin-top:39px;border-top:1px solid var(--dp-line);padding-top:26px}
.dyn-story-index{font-size:10px;letter-spacing:.13em;font-weight:800;color:#95899d}
.dyn-text-link{display:inline-flex;gap:18px;align-items:center;text-decoration:none;font-size:13px;font-weight:800;color:#5d359b;padding-bottom:6px;border-bottom:1px solid #c6b6dd}
.dyn-text-link:hover{color:#43266c}
.dyn-review-card{background:#21142e;color:#fff;padding:44px 37px;position:relative;overflow:hidden}
.dyn-review-card:before{content:"";position:absolute;border:1px solid #ffffff15;width:260px;height:260px;border-radius:50%;top:-90px;right:-130px}
.dyn-review-card-kicker{display:block;color:#c5a5f5;font-size:10px;font-weight:800;letter-spacing:.16em;margin-bottom:27px}
.dyn-review-card h3{color:#fff;font-size:clamp(26px,2.4vw,34px);line-height:1.23;font-weight:800;margin-bottom:21px}
.dyn-review-card p{font-size:14px;color:#d2c5de;line-height:1.8;margin-bottom:30px}
.dyn-review-card .dyn-button{width:100%}
.dyn-call-link{font-size:12px;color:#e6d9f5;display:block;margin-top:19px;text-align:center;text-decoration:underline;text-underline-offset:3px}
.dyn-feature-section{background:#f7f3fb}
.dyn-feature-heading{display:grid;grid-template-columns:1.2fr .7fr;gap:12%;align-items:end;margin-bottom:38px}
.dyn-feature-heading h2{max-width:700px;margin:0}
.dyn-feature-heading p{color:#6b6075;font-size:15px;line-height:1.75;margin:0}
.dyn-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.dyn-feature-card{position:relative;background:#fff;min-height:320px;display:flex;align-items:flex-start;flex-direction:column;padding:37px 38px 32px;border:1px solid #e9e2ef}
.dyn-card-number{font-family:'Manrope',Arial,sans-serif;color:#9e83c5;font-size:12px;font-weight:800;margin-bottom:33px}
.dyn-feature-card h3{font-size:clamp(22px,2vw,30px);line-height:1.3;color:#24192f;font-weight:800;max-width:490px;margin-bottom:21px}
.dyn-feature-card p{font-size:15px;line-height:1.85;color:#6c6174;margin:0 0 35px}
.dyn-card-rule{width:42px;height:3px;background:#7044c5;margin-top:auto}
.dyn-details-grid{display:grid;grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);gap:10%;align-items:start}
.dyn-details-heading{position:sticky;top:36px}
.dyn-details-heading p{color:#6f6676;font-size:15px;line-height:1.8;max-width:370px}
.dyn-details-heading .dyn-text-link{margin-top:20px}
.dyn-details-list{border-top:1px solid #e7e0ed}
.dyn-detail-row{display:grid;grid-template-columns:35px minmax(0,1fr);gap:20px;padding:28px 0 36px;border-bottom:1px solid #e7e0ed}
.dyn-detail-number{font-size:12px;font-weight:800;color:#7b52b9;padding-top:6px}
.dyn-detail-row h3{font-size:clamp(21px,2.15vw,27px);line-height:1.25;font-weight:800;margin-bottom:14px}
.dyn-detail-row p{font-size:15px;line-height:1.9;color:#686071;max-width:690px;margin:0}
.dyn-cta-section{background:#231331;color:#fff;padding:75px 0}
.dyn-cta-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:center}
.dyn-cta-section .dyn-kicker{color:#c6a6f0}
.dyn-cta-section h2{font-size:clamp(33px,3.8vw,53px);line-height:1.16;font-weight:800;max-width:750px;margin-bottom:19px;color:#fff}
.dyn-cta-section p{color:#dfd0e8;max-width:760px;font-size:16px;margin:0}
.dyn-button-light{background:#fff;color:#2e1940;white-space:nowrap}
.dyn-button-light:hover{background:#eee1ff}
.dyn-related-section{background:#fff}
.dyn-related-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap;margin-bottom:37px}
.dyn-related-heading h2{margin:0}
.dyn-related-group{margin-top:35px}
.dyn-related-group h3{font-size:19px;font-weight:800;margin:0 0 16px}
.dyn-related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dyn-related-link{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 20px;background:#faf8fc;border:1px solid #eee8f3;text-decoration:none;font-size:14px;font-weight:700;line-height:1.5;color:#3a2949;min-width:0}
.dyn-related-link:hover{border-color:#b8a0da;background:#f6f0fc}
.dyn-related-link span:last-child{color:#7447c5}
.dyn-location-pills{display:flex;gap:9px;flex-wrap:wrap}
.dyn-location-pills a{background:#fff;border:1px solid #e1d7ec;color:#4a315e;text-decoration:none;display:inline-flex;gap:15px;align-items:center;padding:12px 16px;font-weight:700;font-size:13px}
.dyn-location-pills a:hover{background:#f8f3fe;border-color:#9972cf}
.dyn-location-pills span{color:#8e62c8}
.dyn-footer{background:#100b17;color:#fff;padding:70px 0 22px}
.dyn-footer-grid{display:grid;grid-template-columns:1.6fr .9fr 1fr;gap:8%;padding-bottom:60px}
.dyn-footer img{object-fit:contain;mix-blend-mode:screen}
.dyn-footer-grid>div:first-child p{max-width:345px;color:#bbaec8;font-size:13px;line-height:1.8;margin-top:13px}
.dyn-footer-label{color:#ab83da;font-size:10px;letter-spacing:.17em;font-weight:800;display:block;margin-bottom:26px}
.dyn-footer-grid>div:not(:first-child) a{display:block;color:#e1d7e9;font-size:13px;text-decoration:none;margin-bottom:17px;overflow-wrap:anywhere}
.dyn-footer-grid a:hover{text-decoration:underline;text-underline-offset:4px}
.dyn-footer-bottom{border-top:1px solid #ffffff25;padding-top:25px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#9d90a8;font-size:11px}
@media(max-width:1110px){.dyn-desktop-nav{gap:15px}.dyn-header-cta{padding:13px 11px}.dyn-hero{grid-template-columns:1.1fr .9fr}.dyn-hero-copy{padding-left:32px}.dyn-intro-grid{gap:6%}.dyn-container{padding-inline:25px}}
@media(max-width:900px){.dyn-desktop-nav,.dyn-header-cta{display:none}.dyn-menu{display:block}.dyn-header-inner{min-height:75px}.dyn-brand img{width:63px;height:56px}.dyn-hero{grid-template-columns:1fr}.dyn-hero-copy{padding:28px 32px 52px}.dyn-breadcrumbs{margin-bottom:45px}.dyn-hero-photo,.dyn-hero-photo>img{min-height:0;height:440px}.dyn-hero-photo-label{bottom:38px}.dyn-intro-grid,.dyn-details-grid{grid-template-columns:1fr;gap:44px}.dyn-feature-heading{gap:4%}.dyn-details-heading{position:static}.dyn-cta-inner{grid-template-columns:1fr;gap:28px}}
@media(max-width:640px){.dyn-container{padding-inline:20px}.dyn-hero-copy{padding:23px 20px 46px}.dyn-hero h1{font-size:clamp(35px,9.4vw,53px)!important}.dyn-hero-description{font-size:15px!important}.dyn-breadcrumbs{font-size:10px;margin-bottom:38px;gap:8px}.dyn-overline{font-size:9px;letter-spacing:.14em}.dyn-hero-actions{width:100%;align-items:stretch;gap:16px}.dyn-hero-actions .dyn-button-primary{width:100%}.dyn-hero-note{margin-top:37px}.dyn-hero-photo,.dyn-hero-photo>img{height:320px}.dyn-hero-photo-label{bottom:24px;padding:17px 21px;max-width:230px}.dyn-hero-photo-label strong{font-size:19px}.dyn-assurance-inner{grid-template-columns:1fr;gap:0;padding-block:7px}.dyn-assurance-inner>span{padding:12px 0;border-right:0;border-bottom:1px solid #eeeaf2}.dyn-assurance-inner>span:last-child{border:0}.dyn-section{padding:65px 0}.dyn-intro-grid h2,.dyn-feature-heading h2,.dyn-details-heading h2,.dyn-related-heading h2{font-size:clamp(30px,8vw,43px)}.dyn-story-copy{font-size:15px}.dyn-story-bottom{gap:20px}.dyn-review-card{padding:34px 25px}.dyn-feature-heading{display:block}.dyn-feature-heading p{margin-top:20px}.dyn-feature-grid,.dyn-related-grid{grid-template-columns:1fr}.dyn-feature-card{min-height:0;padding:28px 25px}.dyn-card-number{margin-bottom:22px}.dyn-detail-row{grid-template-columns:24px minmax(0,1fr);gap:12px}.dyn-detail-row p{font-size:14px}.dyn-cta-section{padding:62px 0}.dyn-cta-section h2{font-size:clamp(30px,8vw,41px)}.dyn-button-light{width:100%;white-space:normal}.dyn-related-heading{display:block}.dyn-related-heading .dyn-text-link{margin-top:24px}.dyn-footer{padding-top:54px}.dyn-footer-grid{grid-template-columns:1fr;gap:30px;padding-bottom:30px}.dyn-footer-label{margin-bottom:15px}.dyn-footer-bottom{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.dyn-page *{scroll-behavior:auto!important;transition:none!important}}


/* V2.1: three additional high-resolution interior photographs. The approved
   editorial page layout is otherwise unchanged. All media is explicitly
   labelled as illustrative; lazy loading avoids competing with the hero. */
.dyn-photo-gallery{background:#f7f3fb;padding:4px 0 clamp(72px,7vw,108px)}
.dyn-photo-gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:14px 25px;margin-bottom:22px}
.dyn-photo-gallery-heading .dyn-kicker{margin:0}
.dyn-photo-disclaimer{font-size:11px;color:#82758f;line-height:1.5;text-align:right}
.dyn-photo-gallery-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:18px}
.dyn-gallery-figure{position:relative;margin:0;min-width:0;overflow:hidden;background:#e9e2ee;isolation:isolate}
.dyn-gallery-figure img{display:block;width:100%;height:clamp(320px,38vw,510px);object-fit:cover}
.dyn-gallery-figure:after{content:"";position:absolute;z-index:1;inset:50% 0 0;background:linear-gradient(0deg,#120a1ca9,transparent);pointer-events:none}
.dyn-gallery-figure figcaption{position:absolute;z-index:2;left:26px;bottom:23px;right:20px;display:flex;align-items:flex-end;justify-content:space-between;gap:13px;color:#fff;font-family:'Manrope',Arial,sans-serif;font-size:clamp(16px,2vw,24px);line-height:1.25;font-weight:800;letter-spacing:-.045em}
.dyn-gallery-figure figcaption span{font-family:'DM Sans',Arial,sans-serif;letter-spacing:.13em;font-size:9px;line-height:1.4;flex-shrink:0;font-weight:700;color:#e6d3fa}
.dyn-photo-panorama{background:#fff;padding:0 0 clamp(65px,6vw,95px)}
.dyn-photo-panorama figure{position:relative;margin:0;min-width:0;overflow:hidden;background:#e9e2ee}
.dyn-photo-panorama img{width:100%;height:clamp(290px,34vw,465px);object-fit:cover;display:block}
.dyn-photo-panorama figcaption{position:absolute;right:17px;bottom:17px;color:#433251;font-weight:700;font-size:10px;background:#ffffffeb;padding:10px 14px;max-width:calc(100% - 34px);line-height:1.4}
@media(max-width:900px){.dyn-photo-gallery-grid{gap:12px}.dyn-gallery-figure img{height:365px}.dyn-gallery-figure figcaption{left:16px;bottom:16px;display:block}.dyn-gallery-figure figcaption span{margin-top:9px}}
@media(max-width:640px){.dyn-photo-gallery{padding-bottom:68px}.dyn-photo-gallery-heading{display:block;margin-bottom:17px}.dyn-photo-disclaimer{display:block;text-align:left;margin-top:11px}.dyn-photo-gallery-grid{grid-template-columns:1fr;gap:13px}.dyn-gallery-figure-primary img{height:285px}.dyn-gallery-figure-secondary img{height:255px}.dyn-gallery-figure figcaption{font-size:20px}.dyn-photo-panorama{padding-bottom:65px}.dyn-photo-panorama img{height:290px}.dyn-photo-panorama figcaption{right:10px;bottom:10px;font-size:9px;padding:9px 11px}}
