/* Oraxis collection. One visual contract across every interchangeable composition.
   Sources and composition mapping: planning/oraxis/BUILD-BRIEF.md. */
:root,body[data-theme=modern],body.modern-library{--bg:#fff;--paper:#fff;--ink:#171714;--accent:#656149;--soft:#f3f3ef;--muted:#56574f;--line:#deded5;--display:'Montserrat',sans-serif;--body:'Montserrat',sans-serif;--radius:4px;--image-radius:16px;--max:1200px;--ox-olive:#a6a182}
body{font-family:var(--body)}
h1,h2,h3,.lib-heading h2,.pl-heading h2,.hf-section h2,.pl-hero h1{font-family:var(--display);font-weight:700;letter-spacing:-.045em}
h2,.lib-heading h2,.pl-heading h2{font-size:clamp(30px,3.3vw,46px);line-height:1.15}
.section-label,.hero-kicker{font-size:14px;font-weight:600;text-transform:none;letter-spacing:0}
.button{min-height:52px;padding:15px 23px;border-radius:4px;font-size:13px;font-weight:650;background:var(--ox-olive);color:#171714;border:1px solid var(--ox-olive);letter-spacing:0;transition:background .2s,color .2s}
.button:hover{background:#171714;color:white;border-color:#171714}
.button.secondary{color:var(--ink);border:1px solid #deded5;background:transparent}
.button.secondary:hover{border-color:var(--ink);background:#f3f3ef;color:#171714}
.text-link{font-size:13px;font-weight:650;color:inherit}
.lib-section{padding-block:88px}.lib-heading{margin-bottom:38px}.lib-heading>p{font-size:15px;line-height:1.8}
.lib-component img,.pl-section img,.pl-hero img,.hf-section img{border-radius:16px}
.lib-header{background:#f8f8f6;border-bottom:1px solid #eeeee8}.lib-header-inner{min-height:104px}.lib-header .brand{font:750 27px/1.15 Montserrat,sans-serif;letter-spacing:-1px}.lib-header .brand span{font:500 10px/1.5 Montserrat,sans-serif;letter-spacing:.04em;margin-top:6px}.lib-site-nav{font-size:13px;font-weight:600}.lib-header-action{min-height:48px}.header-v3{background:white;border:0}.header-v3 .lib-header-inner{box-shadow:none;border:1px solid var(--line);border-radius:8px}.header-v4 .header-contact-strip{background:#171714;color:#fff}.header-v5 .lib-header-inner{border-bottom:0}.header-v2 .brand{letter-spacing:-1.2px}
/* Five homepage heroes, adapted from the five Oraxis source compositions. */
body[data-theme=modern] .ox-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;position:relative;padding:65px 0 75px;margin:0 auto;isolation:isolate;border-radius:0;min-height:650px;background:white;color:var(--ink);overflow:visible}
.ox-hero .hero-copy{width:auto;max-width:none;padding:0;margin:0;background:transparent;z-index:2}
.ox-hero .hero-kicker{margin:0 0 18px;color:inherit}
.ox-hero .hero-heading{font:750 clamp(38px,4.5vw,60px)/1.1 Montserrat,sans-serif;letter-spacing:-2.2px;margin:0;max-width:650px}
.ox-hero .hero-summary{font-size:16px;line-height:1.7;max-width:45ch;margin:24px 0;color:var(--muted)}
.ox-hero .hero-points{display:grid;gap:10px;margin:0 0 30px;padding:0;font-size:13px;color:inherit;list-style:none}.ox-hero .hero-points li{display:flex;gap:11px;align-items:flex-start}.ox-hero .hero-points svg{color:var(--accent);width:19px;height:19px}
.ox-hero .hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin:0}
.ox-hero-media{min-width:0;position:relative;height:480px;align-self:center}.ox-hero-media figure{overflow:hidden;border-radius:16px;margin:0}.ox-hero-media img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.ox-diamonds{position:relative;height:100%;overflow:hidden;border-radius:16px;background:#f8f8f6}
.ox-diamonds .ox-diamond{position:absolute;width:340px;height:340px;transform:rotate(-45deg);border:10px solid white;border-radius:20px;overflow:hidden}
.ox-diamond img{transform:rotate(45deg) scale(1.46);border-radius:0}
.ox-diamonds .ox-diamond-main{right:-44px;top:-6px}.ox-diamonds .ox-diamond-detail{left:0;bottom:-85px;width:320px;height:320px}
.ox-framed{position:relative;height:100%;padding:18px 50px 35px 18px}.ox-framed::before{content:'';position:absolute;inset:0 32px 53px 0;border:1px solid var(--ox-olive);border-radius:16px;z-index:-1}.ox-framed>figure:first-child{height:100%}.ox-framed .ox-inset{position:absolute;bottom:0;right:0;width:44%;height:44%;border:8px solid white;box-shadow:0 8px 20px #0001}
body[data-theme=modern] .ox-hero-3{grid-template-columns:1.05fr 1fr;min-height:635px;padding:50px 0;margin-block:35px}.ox-hero-3 .ox-hero-media{height:550px;position:absolute;right:0;width:73%;z-index:-1}.ox-hero-3 .ox-full-photo{height:100%}.ox-hero-3 .hero-copy{background:#fff;padding:40px;border-left:5px solid var(--ox-olive);box-shadow:0 10px 35px #00000008}.ox-hero-3 .hero-heading{font-size:clamp(38px,4vw,54px)}
.ox-photo-pair{display:grid;grid-template-columns:1fr .8fr;gap:16px;height:100%;align-items:start}.ox-photo-pair figure{height:88%}.ox-photo-pair figure+figure{height:75%;align-self:end}
body[data-theme=modern] .ox-hero-5{background:#171714;color:#fff;padding:48px;margin-block:32px;gap:40px;border-radius:16px;min-height:600px}.ox-hero-5 .hero-summary{color:#ddddd3}.ox-hero-5 .hero-points svg{color:#c0bda2}.ox-hero-5 .button.secondary{border-color:#76766b;color:white}.ox-dark-photo{height:100%}.ox-hero-5 .ox-hero-media{height:475px}.ox-hero-5 .hero-heading{font-size:clamp(36px,4vw,54px)}
/* Section families use the same surfaces, typography and editorial rhythm. */
.lib-trust{border-block:1px solid var(--line);padding-block:28px}.trust-v1 .lib-trust-item{justify-content:center}.lib-trust h2{font-size:14px;font-weight:650;letter-spacing:0}.lib-trust p{font-size:12px}.trust-v3{background:#171714;color:white}.trust-v3 p{color:#deded5}.trust-v2 .lib-trust-item{background:#f5f5f2;border-radius:4px}.trust-v4 .trust-symbol,.trust-v5 .trust-symbol{background:#efeee6;color:#656149}
.gallery-v1 .carousel-card{flex-basis:calc(50% - 13px)}.gallery-v1 .carousel-image{height:420px}.gallery-v2 .carousel-image{height:540px}.gallery-v3 .carousel-card{border-radius:0;background:#f5f5f2;padding:24px;gap:35px}.gallery-v3 .carousel-image{height:420px}.gallery-v4{background:#171714;color:white}.gallery-v4 .lib-heading p,.gallery-v4 .carousel-controls{color:#deded5}.gallery-v5 .lib-carousel{border:1px solid var(--line);background:white;border-radius:4px;padding:28px}.carousel-card h3{font-size:23px;font-weight:650}.carousel-controls{margin-top:30px}.carousel-image{border-radius:16px}.carousel-image img:hover{transform:none}
.package-v1 .package-layout{gap:65px;grid-template-columns:1fr 1fr}.package-v1 .package-room{position:relative;margin:14px 14px 14px 0;overflow:visible}.package-v1 .package-room::before{content:'';position:absolute;inset:-14px -14px 14px 14px;border:1px solid var(--ox-olive);border-radius:16px;z-index:-1}.lib-package-item h3{font-size:16px;font-weight:650}.lib-package-item p{font-size:13px}.package-v2 .package-room{height:450px}.package-v3 .package-room{border-radius:16px}.package-v4 .package-chapter summary{font-size:17px}.package-v5{background:#171714;color:white}.package-v5 p{color:#deded5}.package-v5 .text-link{color:white}
.styles-v1 .style-image{height:350px}.styles-v1 .style-content{padding-top:25px}.style-content h3{font-size:28px;font-weight:700}.style-content p{font-size:14px;line-height:1.8}.styles-v2 .lib-style-items{gap:38px}.styles-v3 .lib-style-item{padding:26px;background:#f5f5f2;border:0;border-radius:4px}.styles-v3 .lib-style-item:nth-child(even) .style-image{order:2}.styles-v4 .lib-style-item{border-top:1px solid var(--line);padding-block:28px}.styles-v5 .style-content{border-radius:4px;background:white;color:#171714}
.reasons-v1 .reasons-image{min-height:500px}.reasons-v2 .reason-check{border:1px solid var(--ox-olive);background:white;color:#656149;border-radius:50%}.reasons-v3 .reasons-intro{background:#f3f3ef;border-radius:4px}.reasons-v4 .lib-reasons-list li{background:#f5f5f2;border-radius:4px}.reasons-v5{background:#171714;color:white}.reasons-v5 p{color:#deded5}.lib-reasons-list h3{font-size:17px;font-weight:650}.lib-reasons-list p{font-size:14px}
.lib-process-steps h3{font-size:21px;font-weight:650}.lib-process-steps p{font-size:14px}.lib-step-number{font-size:44px;font-weight:700;color:#77745c}.process-v1 .lib-process-steps li{border-top:2px solid #a6a182;padding-top:25px}.process-v2 .lib-process-steps li{border-left:1px solid var(--line);padding-left:25px}.process-v3 .lib-process-steps li{border:1px solid var(--line);border-radius:4px;background:white}.process-v5 .process-layout{background:#f5f5f2;border-radius:4px;padding:45px}
.reviews-v2 .lib-review-card{border:1px solid var(--line);background:#fff;border-radius:4px}.reviews-v4{background:#171714;color:white}.reviews-v4 p{color:#deded5}.reviews-v5 .lib-review-card{background:#f5f5f2;border-radius:4px}.review-slot-title{font-weight:600}
.lib-faq-item summary{font-size:16px;font-weight:600;padding-block:24px}.lib-faq-item>p{font-size:14px;line-height:1.8}.faq-v3 .lib-faq-item{background:#f5f5f2;border-radius:4px}.faq-v5 .faq-group{border-radius:4px;border:1px solid var(--line);background:white}
.enquiry-v1{background:#171714;color:white}.enquiry-v1 .lib-enquiry-intro p{color:#deded5}.lib-enquiry-form{border-radius:8px;box-shadow:none;border:1px solid var(--line);color:#171714}.lib-enquiry-form input,.lib-enquiry-form textarea{border-radius:4px;border-color:#cccbbf}.enquiry-v2 .enquiry-layout{border:1px solid var(--line);background:#f5f5f2;border-radius:4px}.enquiry-v3 .enquiry-image{height:470px}.enquiry-v4 .lib-enquiry-form{background:#f5f5f2}.enquiry-v5{background:#f5f5f2}.enquiry-v5 .lib-enquiry-form{background:white}
.lib-footer{padding-block:55px;background:#f8f8f6;border-top:1px solid var(--line)}.footer-v2{background:#171714;color:#fff}.footer-v2 p{color:#deded5}.footer-v3 .footer-invitation{background:#e9e7da;border-radius:4px}.footer-v5{background:#efeee7}.footer-layout .brand{font:700 28px/1.2 Montserrat,sans-serif}.footer-layout .brand span{font-size:11px;font-weight:500}.footer-base{font-size:11px}
.pl-hero-3,.pl-section-2,.hf-section-2 .hf-section-grid{background:#f5f5f2;border-radius:4px}.pl-hero-5,.hf-section-5 .hf-section-grid{background:#171714;border-radius:16px}.pl-section-3{border-block:1px solid var(--line)}.pl-section-4 .pl-layout{background:#f5f5f2;border-radius:4px}.pl-hero-2 .pl-hero-images{border-color:var(--ox-olive)}.pl-hero h1{font-weight:750}.pl-hero .hero-points{font-size:14px}.hf-section p,.pl-section p{font-size:15px}
/* Master tools stay recognisable; the sample iframe is the actual Oraxis renderer. */
.library-logo,.vb-brand{font-family:Montserrat,sans-serif}.library-toolbar{background:#171714;color:#fff;border:0}.library-logo span{color:#cfcebf}.library-toolbar nav a[aria-current]{background:#393a31}.library-toolbar nav button{background:#a6a182;color:#171714}.library-toolbar .copy-composition{border-color:#656149}.kit-dashboard-heading h1{font-weight:750;letter-spacing:-2px}.kit-kicker{color:#656149}.kit-dashboard{padding-top:55px}.kit-page-card,.kit-settings-panel,.family-card,.hf-card{box-shadow:none;border-radius:8px}.kit-ready-panel{background:#f5f5f2}.vb-top{background:#171714;color:white}.vb-top button{background:#30312a;color:white;border-color:#56574a}.vb-top .vb-primary{background:#a6a182;color:#171714}.vb-shelf-head h1{font-weight:700}.vb-shelf{background:#f8f8f6}.vb-workspace{background:#eaeae4}.vb-design-card{border-radius:6px}.vb-block{border-radius:6px}.vb-dialog{border-radius:8px}
@media(max-width:1000px) and (min-width:801px){body[data-theme=modern] .ox-hero{gap:30px}.ox-diamonds .ox-diamond{width:270px;height:270px}.ox-diamonds .ox-diamond-detail{width:250px;height:250px;bottom:0}.ox-hero .hero-heading{font-size:44px}.lib-site-nav{gap:16px}.lib-header-action{padding-inline:12px;font-size:11px}}
@media(max-width:800px){
 .lib-section{padding-block:48px}.lib-heading{margin-bottom:26px}.lib-heading>p{font-size:14px}.lib-header-inner{min-height:84px}.lib-header .brand{font-size:23px}.lib-header-action{min-height:42px;font-size:10px;padding:10px}.lib-site-nav{font-size:14px}.lib-heading h2{font-size:32px}
 body[data-theme=modern] .ox-hero{display:flex;flex-direction:column;gap:25px;min-height:0;margin:0 auto;padding:24px 0 38px;width:calc(100% - 36px);border-radius:0}
 .ox-hero .ox-hero-media{width:100%;height:235px;order:-1;position:relative;z-index:0}.ox-hero .hero-copy{width:100%;padding:0}.ox-hero .hero-kicker{font-size:12px;margin-bottom:12px}.ox-hero .hero-heading{font-size:36px;line-height:1.12;letter-spacing:-1.4px}.ox-hero .hero-summary{font-size:14px;line-height:1.55;margin:18px 0}.ox-hero .hero-points{font-size:12px;gap:8px;margin-bottom:22px}.ox-hero .hero-actions{gap:9px}.ox-hero .hero-actions .button{font-size:11px;padding:13px 14px;min-height:46px}
 .ox-diamonds{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;background:white}.ox-diamonds .ox-diamond{position:static;transform:none;border:0;width:auto;height:235px;border-radius:16px}.ox-diamonds .ox-diamond-detail{height:200px;align-self:end;width:auto}.ox-diamond img{transform:none;border-radius:16px}.ox-framed{padding:10px 35px 15px 10px}.ox-framed::before{inset:0 25px 25px 0}.ox-framed .ox-inset{border-width:5px}.ox-photo-pair{gap:10px}
 body[data-theme=modern] .ox-hero-3{padding:24px 0 38px;gap:0;margin-block:0}.ox-hero-3 .hero-copy{background:white;padding:23px 18px 0;margin-top:-18px;width:calc(100% - 24px);border-left:3px solid var(--ox-olive)}.ox-hero-3 .hero-heading{font-size:34px}.ox-hero-3 .ox-hero-media{height:255px}
 body[data-theme=modern] .ox-hero-5{padding:18px 18px 30px;border-radius:16px;margin-block:20px;gap:25px}.ox-hero-5 .hero-heading{font-size:34px}.ox-hero-5 .ox-hero-media{height:235px}
 .gallery-v1 .carousel-card{flex-basis:92%}.gallery-v1 .carousel-image,.gallery-v3 .carousel-image{height:290px}.gallery-v2 .carousel-image{height:325px}.gallery-v3 .carousel-card{padding:15px}.gallery-v5 .lib-carousel{padding:17px}.carousel-card h3{font-size:21px}.package-v1 .package-layout{gap:30px}.package-v1 .package-room{margin:12px 12px 0 0;width:calc(100% - 12px)}.package-v2 .package-room{height:300px}.lib-package-item h3{font-size:14px}.lib-package-item p{font-size:12px}.style-content h3{font-size:25px}.style-content p{font-size:14px}.styles-v1 .style-image{height:310px}.styles-v3 .lib-style-item:nth-child(even) .style-image{order:0}.reasons-v1 .reasons-image{min-height:300px}.lib-reasons-list h3{font-size:16px}.lib-reasons-list p{font-size:13px}.lib-process-steps h3{font-size:18px}.lib-process-steps p{font-size:13px}.lib-step-number{font-size:30px}.process-v5 .process-layout{padding:25px}.lib-faq-item summary{font-size:14px}.lib-faq-item>p{font-size:13px}.enquiry-v3 .enquiry-image{height:280px}.lib-enquiry-form label{font-size:12px}.lib-enquiry-form .demo-notice{font-size:11px}.lib-footer{padding-top:40px}.footer-base{font-size:10px}
}
@media(max-width:370px){.ox-hero .hero-heading{font-size:31px}.ox-hero .hero-actions{display:grid;grid-template-columns:1fr}.ox-hero .hero-actions .button{justify-content:center}.lib-header-action{display:none}}
/* Override the legacy hero's more-specific mobile rules. */
body[data-theme=modern] .modern-hero.ox-hero .hero-copy{padding:0}
body[data-theme=modern] .modern-hero.ox-hero .hero-heading{font:750 clamp(38px,4.5vw,60px)/1.1 Montserrat,sans-serif;letter-spacing:-2.2px}
body[data-theme=modern] .modern-hero.ox-hero-3 .hero-copy{padding:40px}
@media(max-width:800px){
 body[data-theme=modern] .modern-hero.ox-hero .hero-heading{font-size:34px;letter-spacing:-1.4px}
 body[data-theme=modern] .modern-hero.ox-hero .hero-copy{padding:0}
 body[data-theme=modern] .modern-hero.ox-hero-3 .hero-copy{padding:23px 18px 0}
 body[data-theme=modern] .modern-hero.ox-hero-3 .hero-heading,body[data-theme=modern] .modern-hero.ox-hero-5 .hero-heading{font-size:30px;letter-spacing:-1.4px}
 .lib-header .brand{font-size:20px}.lib-header .brand span{font-size:9px}
}
@media(max-width:370px){body[data-theme=modern] .modern-hero.ox-hero .hero-heading{font-size:29px}}
.vb-top .vb-brand{color:white}.vb-top .vb-brand span{color:#deded5}.vb-top .vb-primary{font-weight:650}
@media(min-width:801px){body[data-theme=modern] .modern-hero.ox-hero-3 .hero-heading{font-size:48px;letter-spacing:-1.8px}}
