/* Stage 3 — one architectural language for public pages. Hero and motion remain owned by their existing modules. */
:root{--lux-paper:#f1ece2;--lux-silver:#bcc6d3;--lux-gold:#d9ba85;--lux-night:#070d18;--lux-rule:#b4bfce2b;--lux-surface:#101b2a;--lux-radius:3px;--lux-space:clamp(24px,4vw,64px)}
body:not(.luxoria-home){background:radial-gradient(ellipse at 95% 0,#17263960,transparent 40%),#050a14;color:var(--lux-paper)}
body:not(.luxoria-home) .wrap{width:min(1320px,calc(100% - 112px))}
body:not(.luxoria-home) .section{padding-block:70px}
body:not(.luxoria-home) .header{height:92px;box-shadow:none;border-color:var(--lux-rule)}
body:not(.luxoria-home) .header.scrolled{height:78px}
body:not(.luxoria-home) .brand{font-size:29px;letter-spacing:.22em;color:var(--lux-gold)}
body:not(.luxoria-home) .header nav a{font-size:12px;font-weight:500;letter-spacing:.025em}
body:not(.luxoria-home) .header-contact{min-height:46px;padding:12px 23px;font-size:12px}
body:not(.luxoria-home) .page-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:0 8vw;padding:58px 0 36px;border-bottom:1px solid var(--lux-rule)}
body:not(.luxoria-home) .page-intro .place{grid-column:1/-1;margin:0 0 22px;font-size:10px;letter-spacing:.18em;color:var(--lux-gold)}
body:not(.luxoria-home) .page-intro h1{font-size:clamp(56px,5.8vw,84px);line-height:.98;letter-spacing:-.035em;margin:0;color:var(--lux-paper)}
body:not(.luxoria-home) .page-intro>p:last-child:not(.place){align-self:end;font-size:14px;line-height:1.9;max-width:38ch;margin:0 0 4px;color:var(--lux-silver)}
body:not(.luxoria-home) .page-intro:after{display:none}
body:not(.luxoria-home) .button{border-radius:var(--lux-radius);min-height:48px;padding:14px 24px;box-shadow:none;font:600 12px/1.5 var(--sans);letter-spacing:.03em;background:linear-gradient(110deg,#c09b61,#e1c691);border-color:#d7b77d;color:#09101a}
body:not(.luxoria-home) .button.subtle{background:transparent;color:var(--lux-paper);border-color:#b4bfce50}
body:not(.luxoria-home) .button.light{background:#0b1525;color:var(--lux-gold);border-color:#d9ba8560}
body:not(.luxoria-home) .button:disabled{opacity:.45;box-shadow:none;transform:none}
body:not(.luxoria-home) .text-link{font-size:12px;color:var(--lux-gold);min-height:44px;display:inline-flex;align-items:center;padding:9px 0;border-color:#d9ba8555}
body:not(.luxoria-home) .place{font-size:10px;letter-spacing:.16em;color:var(--lux-gold)}
body:not(.luxoria-home) p{color:var(--lux-silver)}
/* Catalogue: a quiet editorial toolbar, never an administrative box. */
body:not(.luxoria-home) .catalog.section{padding-top:28px;padding-bottom:72px}
.catalog-tools{background:transparent;border:0;border-bottom:1px solid var(--lux-rule);padding:0 0 28px;gap:24px;margin-bottom:36px}
.catalog-tools>label{font-size:11px;color:var(--lux-silver)}
.catalog-tools>label:first-child{min-width:200px}
.catalog-tools .check{padding:0;align-self:end;min-height:48px;white-space:nowrap}
.catalog-tools .button{min-height:48px;align-self:end}
:is(.catalog-tools,.configuration,#contact-form,.inquiry-dialog) :is(input:not([type=checkbox]),textarea,select){background:#0b1422;border:1px solid #b4bfce38;border-radius:var(--lux-radius);box-shadow:none;padding:13px 15px;min-height:48px;color:var(--lux-paper);font:400 16px/1.5 var(--sans)}
body:not(.luxoria-home) input::placeholder,body:not(.luxoria-home) textarea::placeholder{color:#94a1b4}
body:not(.luxoria-home) label{color:#d3d9e2;font-size:12px;line-height:1.7}
input[type=checkbox]{accent-color:var(--lux-gold)}
.check input{width:18px;height:18px;flex-shrink:0}
/* Offer cards share the image, title and metadata hierarchy across every route. */
.offer-list{gap:44px}
.offer-card{border-radius:0;border-bottom:1px solid var(--lux-rule);padding-bottom:28px;overflow:visible}
.offer-card .offer-image{border-radius:var(--lux-radius);aspect-ratio:1.55}
body .offer-card h3{font-size:clamp(37px,3.35vw,52px);line-height:1.05;letter-spacing:-.025em;margin:23px 0 13px}
.offer-card .card-heading{align-items:center}
.offer-card p{line-height:1.8;color:var(--lux-silver);font-size:13px;margin:16px 0 20px}
.offer-meta{gap:10px;align-items:center;font-size:11px;color:var(--lux-silver)}
.tag{background:#b4bfce0a;border:1px solid #b4bfce30;border-radius:2px;color:#cad2df;padding:5px 9px;font:400 10px/1.6 var(--sans);letter-spacing:.02em}
.offer-meta .tag:first-of-type{color:#debf8d;border-color:#d9ba8540;background:#d9ba8508}
.favorite{border:1px solid transparent;border-radius:50%;font-size:22px;color:var(--lux-gold)}
.favorite:hover,.favorite[aria-pressed=true]{background:#d9ba8510;border-color:#d9ba852b}
.card-actions{border-top:1px solid #b4bfce14;padding-top:12px;margin-top:22px}
.card-actions .check{min-height:44px;font-size:11px}
.offer-visual-note{background:#050a14dd;border:1px solid #eee3d82e;padding:5px 9px;color:#e7e2d8;border-radius:2px;letter-spacing:.04em}
[data-offers]>[role=status]{grid-column:1/-1;min-height:120px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
[data-offers]>[role=status] button{background:transparent;color:var(--lux-gold);border:1px solid #d9ba8555;min-height:44px;padding:8px 16px}
/* Property: lead with the view, keep facts and actions close. */
body:not(.luxoria-home) .offer-page{padding-top:38px;padding-bottom:68px}
body:not(.luxoria-home) .detail{margin-top:0;padding-top:0;border-top:0;scroll-margin-top:105px}
.detail-heading{align-items:end;margin-bottom:30px;gap:24px}
.detail-heading .place{margin-bottom:14px}
body .detail-heading h1{font-size:clamp(58px,6.5vw,98px);margin:0;letter-spacing:-.035em;line-height:.95}
.detail-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(30px,5vw,72px);align-items:start}
.detail-visual>[data-main-image]{border-radius:var(--lux-radius);aspect-ratio:1.4;object-fit:cover}
.gallery-thumbs{gap:12px;margin-top:16px;padding:4px 0 7px;counter-reset:gallery}
.gallery-thumbs button{position:relative;flex:0 0 108px;border-radius:2px;border:1px solid #b4bfce45;background:#080f1d;padding:3px;counter-increment:gallery}
.gallery-thumbs img{width:100%;height:68px;aspect-ratio:1.5;border-radius:1px}
.gallery-thumbs button:after{content:'0' counter(gallery);position:absolute;right:6px;bottom:5px;background:#050a14ca;color:#eee6d8;font:10px var(--sans);padding:2px 4px}
.detail-visual .fine{font-size:11px;margin:8px 0 0;color:#aab6c6}
.detail-visual .actions{margin-top:22px}
.detail-layout>div:nth-child(2)>p{font-size:14px;line-height:1.85}
.facts{grid-template-columns:repeat(2,minmax(0,1fr));margin:24px 0 18px;gap:0 26px}
.facts>div{padding:17px 0;border-color:var(--lux-rule)}
.facts dt{font-size:10px;letter-spacing:.035em;color:#a5b2c4}
.facts dd{font-family:var(--display);font-size:28px;line-height:1.15;color:var(--lux-paper);margin-top:8px}
.features{gap:8px;margin:18px 0}
.detail-layout .offer-advisor{margin-top:12px}
.configuration{display:grid;grid-template-columns:.85fr 1.15fr;gap:0 6vw;background:transparent;border:0;border-top:1px solid var(--lux-rule);padding:40px 0 0;margin-top:48px}
.configuration h3{font-size:42px;line-height:1.03;letter-spacing:-.025em;margin:0 0 18px}
.configuration>p{grid-column:1;font-size:13px;max-width:42ch;margin:0}
.configuration form{grid-column:2;grid-row:1/3}
.configuration form>label:first-child{margin-top:0}
.configuration .selection-summary{color:var(--lux-gold);font-size:12px}
/* Contact: clear sequence and one consistent field system. No API or submission changes. */
.contact-grid{grid-template-columns:.75fr 1.25fr;gap:7vw;align-items:start;padding-top:40px!important}
.contact-grid aside h2{font-size:34px;letter-spacing:.12em;margin:0 0 24px}
.contact-concierge{background:transparent;border:0;border-top:1px solid var(--lux-rule);padding:24px 0 0;margin:0 0 30px}
.contact-concierge h3{font-size:36px;line-height:1.05;max-width:15ch;margin-bottom:16px}
.contact-concierge p,.contact-grid aside p{font-size:13px;line-height:1.85}
#contact-form{background:#0c152150;border:1px solid #b4bfce22;padding:32px;border-radius:var(--lux-radius);box-shadow:none}
.form-heading{display:flex;align-items:center;gap:16px;margin-bottom:28px}
.form-heading span{font:11px var(--sans);letter-spacing:.08em;color:var(--lux-gold);border:1px solid #d9ba8540;padding:10px}
.form-heading h2{font-size:32px;line-height:1.1;margin:0}
#contact-form>label{margin-top:24px}
#contact-form .fine{font-size:11px;color:#acb7c6;margin:24px 0}
#contact-form>button{width:100%}
#contact-status:empty{display:none}
#contact-status{font-size:13px;margin:20px 0 0}
/* Dialogs retain native focus trapping and explicit owner review. */
.compare-dialog,.inquiry-dialog{background:#0b1422;border:1px solid #c5ae8050;border-radius:4px;box-shadow:0 35px 120px #0009;color:var(--lux-paper);padding:36px;max-height:calc(100dvh - 48px)}
.compare-dialog h2,.inquiry-heading h2{font-size:44px;line-height:1;letter-spacing:-.025em;margin:0 54px 28px 0}
.inquiry-heading h2{margin:0}
.dialog-close,.inquiry-heading button{border:1px solid #b4bfce35;border-radius:50%;background:transparent;color:var(--lux-paper);width:44px;height:44px;min-width:44px;padding:0}
.compare-table{min-width:530px;font-size:13px}
.compare-table th,.compare-table td{padding:18px 16px;border-color:var(--lux-rule);max-width:280px}
.compare-table thead{background:#d9ba8509}
.compare-table thead a{font:30px/1.05 var(--display);color:var(--lux-paper);text-decoration:none}
.compare-table tbody th{color:#aab6c6;font-size:11px;width:24%}
.inquiry-dialog{width:min(740px,calc(100% - 32px))}
.inquiry-heading{padding-bottom:20px;border-bottom:1px solid var(--lux-rule);margin-bottom:20px}
.inquiry-dialog form>p{font-size:13px;line-height:1.8}
.inquiry-dialog .inquiry-approval{font-size:12px;line-height:1.7;padding-top:16px;border-top:1px solid var(--lux-rule)}
.inquiry-dialog input[type=checkbox]{min-height:20px;margin-top:0}
.inquiry-dialog [data-status]:empty{display:none}
/* About and legal pages: architectural typography, no placeholder illustration. */
.about-layout{gap:7vw;padding-top:48px!important;align-items:center}
.brand-promise{border:0;min-height:360px;position:relative;background:radial-gradient(ellipse at 50% 50%,#d9ba850a,transparent 70%);border-top:1px solid var(--lux-rule);border-bottom:1px solid var(--lux-rule)}
.brand-promise span{font-size:260px;line-height:1;color:var(--lux-gold);font-style:italic}
.brand-promise p{font-size:10px;letter-spacing:.22em;text-transform:uppercase;margin:0 0 28px;color:#c6cfdb}
.about-layout h2{font-size:clamp(46px,4.8vw,72px);line-height:.97;letter-spacing:-.025em;margin-bottom:24px}
.about-layout p{font-size:14px}
.faq{padding-top:10px!important;padding-bottom:72px!important;max-width:1320px}
.faq h2{font-size:48px;margin-bottom:30px}
.faq details{padding:22px 0;border-color:var(--lux-rule)}
.faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--display);font-size:29px;line-height:1.1;color:var(--lux-paper);min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:'+';font:22px var(--sans);color:var(--lux-gold)}
.faq details[open] summary:after{content:'−'}
.faq details p{max-width:65ch;color:var(--lux-silver);margin-bottom:0}
body:not(.luxoria-home) .legal{max-width:900px;padding-top:12px;padding-bottom:64px}
.legal h2{color:var(--lux-paper);font-size:34px;margin-top:34px}
.legal p{font-size:14px;line-height:1.95}
/* Shared footer: a sign-off, navigation and legal line. */
body .footer{display:grid;grid-template-columns:1.25fr .75fr;gap:32px 8vw;margin-top:0;padding-top:40px;padding-bottom:28px;border-color:var(--lux-rule)}
.footer .footer-intro>p{font-size:12px;max-width:32ch;color:#aebaca;line-height:1.8;margin:18px 0 22px}
.footer .footer-intro .text-link{color:var(--lux-gold);width:fit-content;display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid #d9ba8555;padding:8px 0;font-size:12px}
.footer .footer-links{display:grid;grid-template-columns:1fr 1fr;gap:4px 28px;align-content:start}
body .footer .footer-links a{display:flex;align-items:center;min-height:44px;color:#c2cbd8;font-size:12px}
.footer .footer-links a:hover{color:var(--lux-gold)}
body .footer .footer-fine{grid-column:1/-1;width:100%;max-width:none;margin:0;padding-top:20px;color:#a4afbf;font-size:10px;line-height:1.8;border-color:var(--lux-rule)}
@media(max-width:1050px){
 body:not(.luxoria-home) .wrap{width:calc(100% - 64px)}
 body:not(.luxoria-home) .header{padding-inline:32px}
 body:not(.luxoria-home) .page-intro{gap:0 5vw}
 .catalog-tools{gap:18px}.catalog-tools .check{white-space:normal}
 .detail-layout{gap:32px}.contact-grid{gap:5vw}
 #contact-form{padding:24px}.configuration{gap:0 4vw}
}
@media(max-width:700px){
 body:not(.luxoria-home) .wrap{width:calc(100% - 40px)}
 body:not(.luxoria-home) .header{height:76px;padding:0 20px}
 body:not(.luxoria-home) .header.scrolled{height:70px}
 body:not(.luxoria-home) .brand{font-size:25px}
 body:not(.luxoria-home) .header nav{top:76px}
 body:not(.luxoria-home) .header.scrolled nav{top:70px}
 .header nav.open{padding:28px 24px 30px;gap:0;background:#091321;box-shadow:0 24px 50px #0007}
 body .header nav.open a{font:400 35px/1.1 var(--display);padding:17px 0;min-height:56px;border-bottom:1px solid var(--lux-rule)}
 .header nav.open a:after{display:none}
 .header nav.open a[aria-current=page]{border-bottom:1px solid #d9ba8555}
 .menu-toggle{border:0;border-bottom:1px solid #d9ba8555;border-radius:0;background:transparent;padding:10px 4px;color:var(--lux-gold);font-size:11px;min-width:52px}
 body:not(.luxoria-home) .section{padding-block:44px}
 body:not(.luxoria-home) .page-intro{display:block;padding:36px 0 28px}
 body:not(.luxoria-home) .page-intro .place{font-size:9px;line-height:1.6;margin-bottom:18px}
 body:not(.luxoria-home) .page-intro h1{font-size:clamp(47px,13vw,64px);line-height:.98;margin-bottom:20px}
 body:not(.luxoria-home) .page-intro>p:last-child:not(.place){font-size:13px;max-width:36ch;line-height:1.8;margin:0}
 .catalog-tools{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-bottom:24px;margin-bottom:28px}
 .catalog-tools>label:first-child{grid-column:1/-1;min-width:0}
 .catalog-tools>label{width:auto;min-width:0}
 .catalog-tools select{min-width:0;width:100%;font-size:14px!important;padding:13px 10px!important}
 .catalog-tools .check{align-self:center;padding-top:24px;min-height:48px;font-size:11px;gap:7px}
 .catalog-tools>.button{grid-column:1/-1;width:100%}
 body:not(.luxoria-home) .catalog.section{padding-top:22px;padding-bottom:44px}
 .offer-list{gap:36px}.offer-card{padding-bottom:18px}
 body .offer-card h3{font-size:39px;margin:20px 0 10px}
 .offer-card .offer-image{aspect-ratio:1.32}
 .offer-card p{font-size:13px;margin:15px 0 18px}
 .offer-meta{gap:8px}.card-actions{margin-top:18px}
 body:not(.luxoria-home) .offer-page{padding-top:32px;padding-bottom:42px}
 .detail-heading{display:flex;align-items:start;flex-direction:column;gap:12px;margin-bottom:24px}
 body .detail-heading h1{font-size:58px;line-height:1;overflow-wrap:anywhere}
 .detail-heading .place{margin-bottom:10px}
 .detail-heading .text-link{min-height:36px;padding:4px 0}
 .detail-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 .detail-visual>[data-main-image]{aspect-ratio:1.2}
 .gallery-thumbs{margin-top:12px;gap:10px}
 .gallery-thumbs button{flex-basis:94px}.gallery-thumbs img{height:58px}
 .detail-visual .actions .button{width:100%;font-size:11px}
 .facts dd{font-size:clamp(22px,6.6vw,26px);overflow-wrap:anywhere}.facts{gap:0 20px}
 .detail-layout>div:nth-child(2)>.button{width:100%}
 .configuration{display:block;padding:28px 0 0;margin-top:32px}
 .configuration h3{font-size:36px;margin-bottom:14px}
 .configuration>p{margin-bottom:24px;font-size:13px}
 .configuration form>.button{width:100%}
 .contact-grid{grid-template-columns:1fr;gap:28px;padding-top:28px!important}
 .contact-grid aside{grid-row:2;padding-bottom:24px;border-color:var(--lux-rule)}
 .contact-grid #contact-form{grid-row:1}
 body:has(#contact-form) .page-intro h1 br{display:none}
 .contact-grid aside h2{font-size:25px;margin-bottom:18px}
 .contact-concierge{padding-top:20px;margin-bottom:20px}
 .contact-concierge h3{font-size:34px;max-width:19ch}
 .contact-grid aside>p{font-size:12px;margin-bottom:12px}
 #contact-form{padding:22px 18px;border-radius:3px}
 .form-heading{margin-bottom:24px;gap:12px}.form-heading h2{font-size:29px}
 .form-row{gap:20px}
 .compare-dialog,.inquiry-dialog{padding:24px 18px;width:calc(100% - 24px);max-height:calc(100dvh - 28px)}
 .compare-dialog h2,.inquiry-heading h2{font-size:35px}
 .compare-table th,.compare-table td{padding:16px 12px}
 .inquiry-heading{gap:12px}.inquiry-actions{display:grid;grid-template-columns:1fr 1.4fr}
 .inquiry-actions .button{padding:12px 8px;font-size:11px}
 .about-layout{gap:28px;padding-top:32px!important}
 .brand-promise{min-height:230px}.brand-promise span{font-size:180px}
 .brand-promise p{font-size:9px;letter-spacing:.14em;margin-bottom:24px}
 .about-layout h2{font-size:48px}.about-layout p{font-size:13px}
 .faq{padding-bottom:44px!important}.faq h2{font-size:42px;margin-bottom:18px}
 .faq summary{font-size:27px}.faq details{padding:18px 0}
 body .footer{grid-template-columns:1fr;gap:24px;padding-top:32px;padding-bottom:86px}
 .footer .brand{font-size:28px}.footer .footer-intro>p{margin:14px 0 8px}
 .footer .footer-links{border-top:1px solid var(--lux-rule);padding-top:20px;gap:0 16px}
 body .footer .footer-fine{font-size:10px;line-height:1.9;padding-top:18px}
}
