/* Project information sections: Noble Aurellia (teal / gold theme) */
.nb-sec{padding:90px 0;position:relative}
.nb-sec.nb-alt{background:#f7f5f1}
.nb-disclosure{margin-top:22px;border:1px solid #dce6e3;border-radius:10px;background:#fff;overflow:hidden}
.nb-disclosure summary{padding:20px 24px;color:#0b2f36;font-weight:600;cursor:pointer;line-height:1.5}
.nb-disclosure summary::marker{color:#007a89}
.nb-disclosure summary:focus-visible,.nb-disclosure [tabindex]:focus-visible{outline:3px solid #007a89;outline-offset:-3px}
.nb-disclosure[open] summary{background:#e6f4f6;border-bottom:1px solid #dce6e3}
.nb-disclosure-body{padding:24px;overflow-wrap:anywhere}
.nb-disclosure .nb-table tbody th{background:#f7f5f1;color:#33464a;font-size:14px;letter-spacing:normal}
.nb-source{margin:24px 0 0;font-size:14px;line-height:1.7;color:#4a5a5e}
.nb-source a{text-decoration:underline;text-underline-offset:3px}
.nb-head{max-width:820px;margin:0 auto 46px;text-align:center}
.nb-head h2{margin-bottom:14px}
.nb-head p{margin:0;color:#4a5a5e}
.nb-media{margin:0;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 14px 34px rgba(11,47,54,.12)}
.nb-media img{display:block;width:100%;height:auto}
.nb-media figcaption{padding:12px 18px;font-size:14px;line-height:1.5;color:#4a5a5e;border-top:3px solid #c9a46b;background:#fff}
.nb-facts{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.nb-facts li{padding:16px 18px;background:#fff;border-left:3px solid #c9a46b;box-shadow:0 10px 26px rgba(11,47,54,.07)}
.nb-facts strong{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#007a89;margin-bottom:4px}
.nb-table-wrap{overflow-x:auto;border-radius:10px;box-shadow:0 12px 30px rgba(11,47,54,.1);background:#fff}
.nb-table{width:100%;border-collapse:collapse;min-width:520px}
.nb-table th{background:linear-gradient(100deg,#0b2f36,#007a89);color:#fff;text-align:left;font-weight:600;padding:14px 18px;font-size:14px}
.nb-table td{padding:13px 18px;border-bottom:1px solid #e6ece9;font-size:15px;color:#33464a;vertical-align:top}
.nb-table tr:nth-child(even) td{background:#faf8f4}
.nb-note{margin-top:18px;padding:16px 22px;border-left:3px solid #c9a46b;background:#fff;font-size:14px;line-height:1.65;color:#4a5a5e;box-shadow:0 10px 26px rgba(11,47,54,.07)}
.nb-grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-card{background:#fff;padding:28px 26px;border:1px solid #e3ebe8;border-radius:10px;height:100%;transition:transform .3s,box-shadow .3s}
.nb-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(11,47,54,.12)}
.nb-card .nb-no{display:block;font-size:13px;font-weight:700;letter-spacing:.14em;color:#c9a46b;margin-bottom:10px}
.nb-card h3,.nb-card .na-h3{font-size:20px;margin-bottom:10px;color:#0b2f36}
.nb-card p{margin:0;font-size:15px;line-height:1.65;color:#4a5a5e}
#specifications .nb-spec-image{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:8px;margin-bottom:22px;background:#f0f5f2}
.nb-plan{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 12px 30px rgba(11,47,54,.1);height:100%}
.nb-plan .nb-plan-head{background:linear-gradient(100deg,#0b2f36,#007a89);color:#fff;padding:18px 22px}
.nb-plan .nb-plan-head span{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.nb-plan .nb-plan-head h3{margin:4px 0 0;font-size:22px;color:#fff}
.nb-plan .nb-plan-body{padding:18px 22px}
.nb-steps{list-style:none;margin:0;padding:0}
.nb-steps li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px dashed #d9e2df;font-size:14.5px;color:#33464a}
.nb-steps li b{color:#007a89;white-space:nowrap}
.nb-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.nb-split.nb-top{align-items:start}
.nb-plain-list{margin:18px 0 0;padding:0;list-style:none}
.nb-plain-list li{position:relative;padding:8px 0 8px 26px;color:#33464a;line-height:1.6}
.nb-plain-list li:before{content:"";position:absolute;left:0;top:17px;width:12px;height:2px;background:#c9a46b}
.nb-contact{display:grid;gap:22px;grid-template-columns:repeat(4,minmax(0,1fr))}
.nb-gallery-grid{display:grid;gap:26px;grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-gallery-grid{align-items:start}
.nb-gallery-grid .nb-media{display:flex;flex-direction:column}
.nb-gallery-grid .nb-media a{display:block;overflow:hidden}
.nb-gallery-grid .nb-media img{width:100%;height:auto;transition:transform .5s}
.nb-gallery-grid .nb-media a:hover img{transform:scale(1.05)}
.nb-gallery-grid .nb-media figcaption{flex:1}
@media (max-width:1199px){.nb-contact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:991px){.nb-sec{padding:64px 0}.nb-grid,.nb-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nb-split{grid-template-columns:minmax(0,1fr);gap:32px}}
@media (max-width:575px){.nb-grid,.nb-gallery-grid,.nb-contact,.nb-facts{grid-template-columns:minmax(0,1fr)}.nb-sec{padding:48px 0}}
/* Image left, text right: both columns share the same top and bottom edges */
.nb-split.nb-equal{align-items:stretch}
.nb-split.nb-equal .nb-media{position:relative;min-height:100%;background:#fff;display:flex}
.nb-split.nb-equal .nb-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:10px}
.nb-split.nb-equal>div{display:flex;flex-direction:column;justify-content:center;padding:10px 0}
@media (max-width:991px){.nb-split.nb-equal .nb-media{min-height:0;aspect-ratio:3/2}}

/* Equal-size image boxes in the sample interiors section */
#sample-interiors .nb-gallery-grid{align-items:stretch}
#sample-interiors .nb-gallery-grid .nb-media a{aspect-ratio:4/3}
#sample-interiors .nb-gallery-grid .nb-media img{height:100%;object-fit:cover}

/* Payment plans: tabbed plan picker with a split bar and step timeline */
.nb-pay{max-width:920px;margin:0 auto}
.nb-pay-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}
.nb-pay:not(.is-ready) .nb-pay-tabs{display:none}
.nb-pay-tab{appearance:none;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1.5px solid #d9e2df;border-radius:12px;padding:14px 18px;color:#33464a;transition:border-color .2s,box-shadow .2s,background .2s}
.nb-pay-tab small{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#6b7b7f}
.nb-pay-tab strong{display:block;margin-top:3px;font-size:17px;line-height:1.3;color:#0b2f36}
.nb-pay-tab:hover{border-color:#007a89}
.nb-pay-tab:focus-visible{outline:3px solid #c9a46b;outline-offset:2px}
.nb-pay-tab[aria-selected="true"]{background:linear-gradient(100deg,#0b2f36,#007a89);border-color:transparent;box-shadow:0 12px 28px rgba(11,47,54,.18)}
.nb-pay-tab[aria-selected="true"] small{color:rgba(255,255,255,.8)}
.nb-pay-tab[aria-selected="true"] strong{color:#fff}
.nb-pay-panel{background:#fff;border-radius:14px;padding:28px;box-shadow:0 14px 34px rgba(11,47,54,.1)}
.nb-pay-panel[hidden]{display:none}
.nb-pay-panel + .nb-pay-panel{margin-top:22px}
.nb-pay-intro h3{margin:0 0 4px;font-size:22px;color:#0b2f36}
.nb-pay-intro p{margin:0 0 20px;color:#4a5a5e;font-size:15px}
.nb-pay-bar{display:flex;gap:3px;height:38px;margin-bottom:26px;border-radius:8px;overflow:hidden}
.nb-pay-bar span{display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;font-size:12.5px;font-weight:600;color:#fff;background:#007a89}
.nb-pay-bar span.s1{background:#0b2f36}
.nb-pay-steps{list-style:none;margin:0;padding:0}
.nb-pay-steps li{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:6px 16px;align-items:start;padding:0 0 22px}
.nb-pay-steps li:last-child{padding-bottom:0}
.nb-pay-steps li:not(:last-child)::before{content:"";position:absolute;left:16px;top:34px;bottom:2px;width:2px;background:#d9e2df}
.nb-pay-no{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#e6f2f3;color:#007a89;font-weight:700;font-size:14px}
.nb-pay-what b{display:block;font-size:16px;line-height:1.4;color:#0b2f36;padding-top:5px}
.nb-pay-what em{display:block;margin-top:2px;font-style:normal;font-size:13.5px;color:#6b7b7f}
.nb-pay-amt{text-align:right;min-width:112px}
.nb-pay-amt strong{display:block;font-size:22px;line-height:1.2;color:#007a89}
.nb-pay-amt small{display:block;margin-top:2px;font-size:12.5px;color:#6b7b7f}
.nb-pay-chip{display:inline-block;margin-top:4px;padding:2px 9px;border-radius:20px;background:#f7efe2;color:#8a6a35;font-size:12px;font-weight:600}
@media (max-width:767px){
 .nb-pay-tabs{grid-template-columns:minmax(0,1fr)}
 .nb-pay-panel{padding:20px 16px}
 .nb-pay-bar{height:32px;font-size:11px}
 .nb-pay-bar span{font-size:11px}
 .nb-pay-steps li{grid-template-columns:34px minmax(0,1fr)}
 .nb-pay-amt{grid-column:2;text-align:left;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0}
 .nb-pay-amt strong{display:inline;font-size:19px}
 .nb-pay-amt small{margin:0}
 .nb-pay-chip{margin:0}
}

/* Extra costs: aligned rate tables */
.nb-cost{max-width:980px;margin:0 auto}
.nb-cost-block{background:#fff;border-radius:14px;box-shadow:0 14px 34px rgba(11,47,54,.09);overflow:hidden;margin-bottom:28px}
.nb-cost-title{padding:24px 28px 18px}
.nb-cost-title h3{margin:0 0 4px;font-size:21px;line-height:1.3;color:#0b2f36}
.nb-cost-title p{margin:0;font-size:14.5px;line-height:1.55;color:#5b6b6f}
.nb-rate{width:100%;border-collapse:collapse;font-size:15px;line-height:1.45;color:#33464a}
.nb-rate thead th{padding:14px 28px;background:#0b2f36;color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-align:left}
.nb-rate tbody th,.nb-rate td{padding:15px 28px;border-top:1px solid #e6ecea;text-align:left;vertical-align:top}
.nb-rate tbody th{font-weight:500;color:#0b2f36}
.nb-rate tbody th small{display:block;margin-top:2px;font-size:13px;font-weight:400;color:#6b7b7f}
.nb-rate td:nth-child(2){font-weight:700;color:#007a89;white-space:nowrap;width:24%}
.nb-rate td:nth-child(3){color:#5b6b6f;width:26%}
.nb-rate .nb-rate-group th{padding:16px 28px;background:#f1f6f5;font-weight:400;border-top:1px solid #d9e2df}
.nb-rate tbody:first-of-type .nb-rate-group th{border-top:0}
.nb-rate .nb-rate-group strong{display:block;font-size:16px;font-weight:700;color:#0b2f36}
.nb-rate .nb-rate-group span{display:block;margin-top:1px;font-size:13.5px;color:#6b7b7f}
.nb-rate tbody tr:not(.nb-rate-group):hover{background:#fafcfb}
.nb-rate-matrix thead th,.nb-rate-matrix td{text-align:center}
.nb-rate-matrix thead th:first-child,.nb-rate-matrix tbody th{text-align:left}
.nb-rate-matrix td:nth-child(n){width:auto;font-weight:700;color:#007a89}
.nb-rate-matrix td.is-free:nth-child(n){font-weight:400;color:#8a9a9d}
.nb-cost-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.nb-cost-note{padding:22px 26px;border-radius:12px;border:1px solid #e0e7e4;border-top:3px solid #c9a46b;background:#fff}
.nb-cost-note h4{margin:0 0 8px;font-size:16px;color:#0b2f36}
.nb-cost-note p{margin:0;font-size:14.5px;line-height:1.7;color:#4a5a5e}
@media (max-width:767px){
 .nb-cost-title{padding:20px 18px 14px}
 .nb-rate:not(.nb-rate-matrix) thead{display:none}
 .nb-rate:not(.nb-rate-matrix) .nb-rate-group th{padding:14px 18px}
 .nb-rate:not(.nb-rate-matrix) tr:not(.nb-rate-group){display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:baseline;padding:14px 18px;border-top:1px solid #e6ecea}
 .nb-rate:not(.nb-rate-matrix) tr:not(.nb-rate-group)>th{grid-column:1/-1;padding:0 0 4px;border:0}
 .nb-rate:not(.nb-rate-matrix) tr:not(.nb-rate-group)>td{padding:0;border:0;width:auto;white-space:normal}
 .nb-rate-matrix{font-size:13.5px}
 .nb-rate-matrix thead th{font-size:11px;letter-spacing:.03em;padding:12px 6px}
 .nb-rate-matrix tbody th,.nb-rate-matrix td{padding:14px 6px}
 .nb-rate-matrix thead th:first-child,.nb-rate-matrix tbody th{padding-left:14px}
 .nb-cost-notes{grid-template-columns:minmax(0,1fr)}
}

/* ===== Effects: payment plans (spotlight tabs, growing bar, staggered timeline) ===== */
@property --nb-ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes nbPanelIn{from{opacity:0;transform:translateY(22px) scale(.985);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes nbGrow{from{transform:scaleX(0);opacity:.2}to{transform:scaleX(1);opacity:1}}
@keyframes nbRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes nbLine{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes nbPing{0%{box-shadow:0 0 0 0 rgba(0,122,137,.45)}80%,100%{box-shadow:0 0 0 8px rgba(0,122,137,0)}}
@keyframes nbSpin{to{--nb-ang:360deg}}

.nb-pay-tab{position:relative;overflow:hidden;isolation:isolate;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .3s,background .3s}
.nb-pay-tab::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .3s;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(0,122,137,.18),transparent 70%)}
.nb-pay-tab[aria-selected="true"]::before{background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.28),transparent 70%)}
.nb-pay-tab:hover{transform:translateY(-3px)}
.nb-pay-tab:hover::before{opacity:1}
.nb-pay-tab[aria-selected="true"]{animation:nbPing 2.4s ease-out 1}
.nb-pay-panel:not([hidden]){animation:nbPanelIn .6s cubic-bezier(.2,.8,.2,1) both}
.nb-pay-bar span{transform-origin:left center;animation:nbGrow .8s cubic-bezier(.2,.8,.2,1) both;transition:flex-grow .3s,filter .3s}
.nb-pay-bar:hover span{filter:saturate(.6) brightness(1.1)}
.nb-pay-bar span:hover{filter:none!important;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}
.nb-pay-bar span:nth-child(2){animation-delay:.07s}.nb-pay-bar span:nth-child(3){animation-delay:.14s}.nb-pay-bar span:nth-child(4){animation-delay:.21s}.nb-pay-bar span:nth-child(5){animation-delay:.28s}.nb-pay-bar span:nth-child(6){animation-delay:.35s}.nb-pay-bar span:nth-child(7){animation-delay:.42s}.nb-pay-bar span:nth-child(8){animation-delay:.49s}.nb-pay-bar span:nth-child(9){animation-delay:.56s}
.nb-pay-steps li{animation:nbRise .55s cubic-bezier(.2,.8,.2,1) both;border-radius:10px;transition:background .3s,transform .3s}
.nb-pay-steps li:nth-child(1){animation-delay:.25s}.nb-pay-steps li:nth-child(2){animation-delay:.32s}.nb-pay-steps li:nth-child(3){animation-delay:.39s}.nb-pay-steps li:nth-child(4){animation-delay:.46s}.nb-pay-steps li:nth-child(5){animation-delay:.53s}.nb-pay-steps li:nth-child(6){animation-delay:.6s}.nb-pay-steps li:nth-child(7){animation-delay:.67s}.nb-pay-steps li:nth-child(8){animation-delay:.74s}.nb-pay-steps li:nth-child(9){animation-delay:.81s}
.nb-pay-steps li:not(:last-child)::before{transform-origin:top;animation:nbLine .6s ease both;animation-delay:inherit}
.nb-pay-no{transition:background .3s,color .3s,transform .3s,box-shadow .3s}
.nb-pay-steps li:hover{background:linear-gradient(90deg,rgba(0,122,137,.07),transparent 75%);transform:translateX(4px)}
.nb-pay-steps li:hover .nb-pay-no{background:#007a89;color:#fff;transform:scale(1.12);box-shadow:0 6px 16px rgba(0,122,137,.35)}
.nb-pay-chip{transition:transform .3s,background .3s}
.nb-pay-steps li:hover .nb-pay-chip{transform:scale(1.06);background:#f2e3c6}

/* ===== Effects: extra costs (scroll reveal, row accent, animated borders) ===== */
.nb-cost.is-armed .nb-rate tbody tr,.nb-cost.is-armed .nb-cost-note{opacity:0;transform:translateX(-28px);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.nb-cost.is-armed .nb-cost-note{transform:translateY(32px) scale(.96)}
.nb-cost.is-armed .nb-rate tbody tr.in,.nb-cost.is-armed .nb-cost-note.in{opacity:1;transform:none}
.nb-rate tbody tr:not(.nb-rate-group) th,.nb-rate tbody tr:not(.nb-rate-group) td{transition:background .3s,box-shadow .3s,transform .3s,color .3s}
.nb-rate tbody tr:not(.nb-rate-group):hover th,.nb-rate tbody tr:not(.nb-rate-group):hover td{background:linear-gradient(90deg,rgba(0,122,137,.09),rgba(201,164,107,.07))}
.nb-rate tbody tr:not(.nb-rate-group):hover th{box-shadow:inset 4px 0 0 #007a89}
.nb-rate:not(.nb-rate-matrix) tbody tr:not(.nb-rate-group):hover td:nth-child(2){transform:translateX(6px)}
.nb-rate-matrix td{position:relative}
.nb-rate-matrix td:not(.is-free)::before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#007a89;vertical-align:middle;animation:nbPing 2s ease-out infinite}
.nb-rate-matrix td:hover{background:#e6f2f3!important;transform:scale(1.04)}
.nb-cost-note{position:relative;border:1.5px solid transparent;background:linear-gradient(#fff,#fff) padding-box,conic-gradient(from var(--nb-ang),#e0e7e4 0 62%,#c9a46b 80%,#007a89 100%) border-box;transition:box-shadow .4s,opacity .6s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.nb-cost-note:hover{animation:nbSpin 3.5s linear infinite;box-shadow:0 18px 40px rgba(11,47,54,.14)}
.nb-cost.is-armed .nb-cost-note.in:hover{transform:translateY(-5px)}

@media (prefers-reduced-motion:reduce){
 .nb-pay *,.nb-cost *{animation:none!important;transition:none!important}
 .nb-cost.is-armed .nb-rate tbody tr,.nb-cost.is-armed .nb-cost-note{opacity:1;transform:none}
}

/* ===== Effects: specifications (scroll reveal, 3D tilt with glare, image zoom) ===== */
#specifications .nb-grid{perspective:1100px}
#specifications .nb-card{position:relative;overflow:hidden;isolation:isolate;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out,translate .5s cubic-bezier(.2,.8,.2,1),scale .6s cubic-bezier(.2,.8,.2,1),opacity .6s ease,filter .7s ease,box-shadow .4s,border-color .4s;will-change:transform}
#specifications .nb-card:hover{translate:0 -6px;box-shadow:0 26px 50px rgba(11,47,54,.18);border-color:#c9a46b}
#specifications .nb-card::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.55),transparent 60%);mix-blend-mode:soft-light}
#specifications .nb-card:hover::after{opacity:1}
#specifications .nb-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:3;background:linear-gradient(90deg,#007a89,#c9a46b);transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
#specifications .nb-card:hover::before{transform:scaleX(1)}
#specifications .nb-spec-image{clip-path:inset(0 round 8px);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
#specifications .nb-card:hover .nb-spec-image{transform:scale(1.09) translateY(-3px)}
#specifications .nb-card .nb-no{display:inline-block;transition:color .3s,letter-spacing .4s,transform .4s}
#specifications .nb-card:hover .nb-no{color:#007a89;letter-spacing:.3em;transform:translateX(4px)}
#specifications .nb-card .na-h3{position:relative;padding-bottom:10px}
#specifications .nb-card .na-h3::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:#c9a46b;transition:width .5s cubic-bezier(.2,.8,.2,1)}
#specifications .nb-card:hover .na-h3::after{width:56px}
#specifications.is-armed .nb-card:not(.in){opacity:0;translate:0 44px;scale:.93;filter:blur(8px)}
#specifications.is-armed .nb-card.in{opacity:1;translate:0 0;scale:1;filter:none}
#specifications.is-armed .nb-card.in:hover{translate:0 -6px}
@media (hover:none),(prefers-reduced-motion:reduce){#specifications .nb-card{transform:none!important}#specifications .nb-card::after{display:none}}
@media (prefers-reduced-motion:reduce){#specifications .nb-card,#specifications .nb-card *{transition:none!important}#specifications.is-armed .nb-card:not(.in){opacity:1;translate:none;scale:1;filter:none}}

/* ===== Effects: site layout (curtain reveal, scan line, magnifier lens, word-mask headline, magnetic facts) ===== */
@keyframes nbScan{0%{left:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:100%;opacity:0}}
@keyframes nbSheen{from{background-position:200% 0}to{background-position:-200% 0}}
#project-snapshot .nb-map{cursor:crosshair}
#project-snapshot.is-armed .nb-map{clip-path:inset(0 100% 0 0);transition:clip-path 1.2s cubic-bezier(.77,0,.18,1)}
#project-snapshot.is-armed .nb-map.in{clip-path:inset(-40px)}
#project-snapshot .nb-map.in::after{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;z-index:3;pointer-events:none;background:#007a89;box-shadow:0 0 18px 6px rgba(0,122,137,.45),0 0 60px 20px rgba(0,122,137,.18);animation:nbScan 1.8s cubic-bezier(.45,0,.2,1) .9s 1 both}
#project-snapshot .nb-lens{position:absolute;width:170px;height:170px;border-radius:50%;border:3px solid #fff;box-shadow:0 12px 34px rgba(11,47,54,.38),0 0 0 1.5px #c9a46b;background-color:#fff;background-repeat:no-repeat;pointer-events:none;z-index:4;opacity:0;scale:.55;transition:opacity .25s,scale .3s cubic-bezier(.2,.8,.2,1)}
#project-snapshot .nb-map.lens-on .nb-lens{opacity:1;scale:1}
#project-snapshot .nb-map-hint{position:absolute;left:14px;bottom:14px;z-index:3;padding:6px 12px;border-radius:20px;background:rgba(11,47,54,.86);color:#fff;font-size:12px;letter-spacing:.04em;pointer-events:none;transition:opacity .3s}
#project-snapshot .nb-map.lens-on .nb-map-hint{opacity:0}
#project-snapshot .nb-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
#project-snapshot .nb-w>span{display:inline-block;transform:translateY(112%) rotate(4deg);transform-origin:left bottom;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
#project-snapshot .sec-title.in .nb-w>span{transform:none}
#project-snapshot .nb-facts li{position:relative;transition:transform .25s ease-out,box-shadow .3s}
#project-snapshot .nb-facts li::before{content:"";position:absolute;left:-3px;top:0;bottom:0;width:3px;background:#007a89;transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
#project-snapshot .nb-facts li:hover{box-shadow:0 16px 34px rgba(11,47,54,.15)}
#project-snapshot .nb-facts li:hover::before{transform:scaleY(1)}
#project-snapshot.is-armed .nb-facts li{opacity:0;translate:0 24px;transition:transform .25s ease-out,box-shadow .3s,opacity .6s ease,translate .7s cubic-bezier(.2,.8,.2,1)}
#project-snapshot.is-armed .nb-facts.in li{opacity:1;translate:0 0}
.nb-rera{display:inline-flex;align-items:center;gap:8px;margin:0 2px;padding:2px 12px;border:1.5px dashed #c9a46b;border-radius:20px;font:inherit;font-weight:700;color:#0b2f36;cursor:pointer;background:linear-gradient(100deg,#fbf6ec 30%,#fff 45%,#fbf6ec 60%) 200% 0/300% 100%;animation:nbSheen 4.5s linear infinite;transition:border-color .25s,color .25s}
.nb-rera:hover{border-color:#007a89;color:#007a89}
.nb-rera:focus-visible{outline:3px solid #c9a46b;outline-offset:2px}
.nb-rera small{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b7b7f}
.nb-rera.is-copied small{color:#007a89}
@media (hover:none){#project-snapshot .nb-lens,#project-snapshot .nb-map-hint{display:none}#project-snapshot .nb-map{cursor:default}}
@media (prefers-reduced-motion:reduce){#project-snapshot *,.nb-rera{animation:none!important;transition:none!important}#project-snapshot.is-armed .nb-map{clip-path:none}#project-snapshot .nb-w>span{transform:none}#project-snapshot.is-armed .nb-facts li{opacity:1;translate:none}}

/* Magnifier lens on floor plan images */
.floor-plans .plan-image.has-lens{position:relative;cursor:crosshair}
.floor-plans .nb-lens{position:absolute;z-index:5;border-radius:50%;border:3px solid #fff;box-shadow:0 12px 34px rgba(11,47,54,.38),0 0 0 1.5px #c9a46b;background-color:#fbfaf7;background-repeat:no-repeat;pointer-events:none;opacity:0;scale:.55;transition:opacity .25s,scale .3s cubic-bezier(.2,.8,.2,1)}
.floor-plans .plan-image.lens-on .nb-lens{opacity:1;scale:1}
@media (prefers-reduced-motion:reduce){.floor-plans .nb-lens{transition:none}}

/* Gallery page: "More Project Visuals" boxes match the main gallery cards */
#more-visuals .nb-gallery-grid{align-items:stretch;gap:48px 24px}
#more-visuals .nb-gallery-grid .nb-media{border:1px solid var(--bs-border-color,#d8dde1);border-radius:6px;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)}
#more-visuals .nb-gallery-grid .nb-media a{aspect-ratio:auto}
#more-visuals .nb-gallery-grid .nb-media img{width:100%;height:320px;object-fit:cover}
#more-visuals .nb-gallery-grid .nb-media figcaption{margin:0;padding:12px 16px;border-top:0;font-size:14px;line-height:1.5;color:#4d5765}

/* Home stat cards: smaller figures and labels */
.stat-sec .stat-card .st-num{display:flex;align-items:baseline;gap:6px;margin:0 0 6px;white-space:nowrap;line-height:1}
.stat-sec .stat-card .st-num .display-2{font-size:clamp(1.25rem,1.6vw,1.5rem);font-weight:600;line-height:1;color:#173940}
.stat-sec .stat-card .st-num .suffix{font-size:13px;font-weight:600;color:var(--na-teal)}
.stat-sec .stat-card p{font-size:12px;min-height:0}
@media (max-width:575.98px){.stat-sec .stat-card .st-num .display-2{font-size:1.2rem}.stat-sec .stat-card .st-num .suffix{font-size:12px}.stat-sec .stat-card p{font-size:11.5px}}

/* About page: left and right columns share the same top and bottom edges */
@media (min-width:992px){
body section.legacy-sec .legacy-grid{align-items:stretch}
body section.legacy-sec .legacy-media{align-self:stretch}
body section.legacy-sec .legacy-media figure{flex:1 1 0;min-height:160px;aspect-ratio:auto}
body section.legacy-sec .legacy-media img{object-fit:cover}
body section.legacy-sec .legacy-text{justify-content:flex-start}
#location-map .nb-split.nb-top{align-items:stretch}
#location-map .nb-split.nb-top>.nb-media{display:flex;flex-direction:column}
#location-map .nb-split.nb-top>.nb-media img{flex:1 1 auto;min-height:0;object-fit:cover}
#location-map .nb-split.nb-top>div:not(.nb-media){display:flex;flex-direction:column;justify-content:flex-start}
}

/* Home service cards: contact line */
.services-sec .na-card-cta{display:block;margin-top:10px;font-size:13px;line-height:1.5;color:#4d5765;overflow-wrap:anywhere}
.services-sec .na-card-cta a{color:var(--na-teal,#007a89);font-weight:600}
