:root{--maroon:#8B111B;--maroon-dark:#5D0910;--gold:#D4AF37;--gold-dark:#8A6308;--ivory:#FFF9ED;--white:#fff;--charcoal:#202124;--muted:#66666b;--soft:#F4F1EB;--border:#ded9d0;--success:#176b3a;--danger:#a31922;--shadow-sm:0 8px 24px rgba(32,33,36,.08);--shadow-lg:0 24px 60px rgba(32,33,36,.14);--radius:1rem;--radius-lg:1.5rem;--shell:min(1180px,calc(100% - 2rem));--serif:"Lora",Georgia,serif;--sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--header-h:4.5rem;--bottom-h:4.35rem}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6rem}
body{margin:0;min-width:320px;overflow-x:hidden;background:#fff;color:var(--charcoal);font-family:var(--sans);line-height:1.65;padding-bottom:calc(var(--bottom-h) + env(safe-area-inset-bottom))}
body:has(dialog[open]){overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
address{font-style:normal}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);line-height:1.16;text-wrap:balance}
h1{font-size:clamp(2.35rem,8vw,5.4rem);letter-spacing:-.045em}
h2{font-size:clamp(1.75rem,5vw,3.2rem);letter-spacing:-.035em}
h3{font-size:1.2rem}
p{color:var(--muted)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
::selection{background:var(--gold);color:var(--charcoal)}
.shell{width:var(--shell);margin-inline:auto}
.section{padding:4.75rem 0}
.section--tint{background:var(--soft)}
.section--charcoal{background:var(--charcoal);color:#fff}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:999;top:.75rem;left:.75rem;padding:.75rem 1rem;background:var(--charcoal);color:#fff;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1rem;color:var(--maroon);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.eyebrow::before{content:"";width:1.8rem;height:2px;background:var(--gold)}
.button-row{display:flex;flex-wrap:wrap;gap:.75rem}
.button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:.65rem;padding:.7rem 1.05rem;font-weight:800;line-height:1.2;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}
.button:hover{transform:translateY(-2px)}
.button--primary{background:var(--maroon);color:#fff;box-shadow:0 8px 20px rgba(139,17,27,.2)}
.button--primary:hover{background:var(--maroon-dark)}
.button--ghost{border-color:var(--border);background:#fff}
.button--gold{background:var(--gold);color:var(--charcoal)}
.button--light{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
.button--small{min-height:38px;padding:.5rem .8rem;font-size:.82rem}
.button--large{padding:.9rem 1.25rem}
.button--full{width:100%}
.button--text{background:none;color:var(--maroon);padding-inline:.5rem}
.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:#fff;font-size:1.2rem}
.text-link{display:inline-flex;align-items:center;gap:.45rem;color:var(--maroon);font-weight:800}
.text-link span,.text-link:hover{color:var(--gold-dark)}
.topbar{display:none;background:var(--maroon-dark);color:#fff;font-size:.76rem}
.topbar__inner,.topbar__links{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}
.topbar__inner{min-height:2.15rem}
.site-header{position:sticky;z-index:100;top:0;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(222,217,208,.8);backdrop-filter:blur(15px)}
.site-header__inner{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:inline-flex;align-items:center;gap:.65rem;min-height:44px}
.brand__mark{width:3rem;height:3rem;display:grid;place-items:center;background:var(--maroon);color:var(--gold);border:1px solid var(--gold);border-radius:.3rem;font-family:var(--serif);font-size:.84rem;font-weight:800}
.brand__text{display:flex;flex-direction:column;line-height:1.2}
.brand__text strong{font-family:var(--serif);font-size:.95rem}
.brand__text small{margin-top:.15rem;color:var(--muted);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}
.desktop-nav,.header-actions{display:none}
.mobile-menu{position:absolute;inset:100% 0 auto;background:#fff;box-shadow:var(--shadow-lg);border-top:1px solid var(--border);max-height:calc(100dvh - var(--header-h) - var(--bottom-h));overflow:auto}
.mobile-menu nav{width:var(--shell);margin:auto;padding:1rem 0 2rem;display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.mobile-menu a{min-height:48px;display:flex;align-items:center;padding:.75rem;border-radius:.5rem;font-weight:700}
.mobile-menu a:hover{background:var(--soft);color:var(--maroon)}
.hero{position:relative;overflow:hidden;background-image:linear-gradient(100deg,rgba(255,249,237,.74) 0%,rgba(255,255,255,.62) 46%,rgba(245,233,212,.42) 100%),url("../images/hero-konstruksi-teknologi-commerce.png");background-position:center;background-size:cover;background-repeat:no-repeat;min-height:calc(100vh - var(--header-h));min-height:calc(100dvh - var(--header-h));display:flex;align-items:center}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(139,17,27,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(139,17,27,.035) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(90deg,#000,transparent)}
.hero__grid{position:relative;display:grid;gap:2.5rem;padding-block:3.5rem}
.hero__copy{max-width:730px}
.hero__copy h1{margin-bottom:1.35rem}
.hero__copy h1>span{display:inline}
.hero__copy h1 em{color:var(--maroon);font-style:normal}
.hero__copy>p{max-width:640px;font-size:1.05rem}
.hero__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:2.2rem 0 0}
.hero__facts div{padding-top:.9rem;border-top:2px solid var(--gold)}
.hero__facts dt{color:var(--muted);font-size:.63rem;text-transform:uppercase;letter-spacing:.1em}
.hero__facts dd{margin:.25rem 0 0;font-family:var(--serif);font-size:.84rem;font-weight:700}
.hero__visual{position:relative;min-height:23rem;border-radius:var(--radius-lg);background:linear-gradient(145deg,rgba(93,9,16,.78),rgba(139,17,27,.7));overflow:hidden;box-shadow:var(--shadow-lg);backdrop-filter:blur(1px)}
.hero__visual::after{content:"";position:absolute;width:18rem;height:18rem;right:-6rem;bottom:-7rem;border:1px solid rgba(212,175,55,.5);transform:rotate(45deg)}
.blueprint{position:absolute;border:1px solid rgba(255,255,255,.18)}
.blueprint--one{width:12rem;height:18rem;left:2rem;top:5rem}
.blueprint--two{width:16rem;height:10rem;right:1rem;top:2rem;transform:skewY(-12deg)}
.hero-card{position:absolute;z-index:2;left:1.4rem;right:1.4rem;top:1.5rem;padding:1.5rem;color:#fff;border:1px solid rgba(212,175,55,.7);background:rgba(93,9,16,.6);backdrop-filter:blur(8px)}
.hero-card>span{color:var(--gold);font-family:var(--serif);font-weight:800}
.hero-card h2{margin:2rem 0 1rem;font-size:1.7rem}
.hero-card p{color:rgba(255,255,255,.72);margin:0}
.hero-badge{position:absolute;z-index:3;right:1.4rem;bottom:1.4rem;width:8.5rem;padding:1rem;background:var(--gold);box-shadow:var(--shadow-lg)}
.hero-registry{position:absolute;z-index:3;left:1.4rem;bottom:1.4rem;max-width:calc(100% - 11.3rem);padding:.8rem 1rem;color:#fff;background:rgba(34,33,35,.7);border-left:3px solid var(--gold);backdrop-filter:blur(6px)}
.hero-registry span,.hero-registry small{display:block;color:rgba(255,255,255,.75);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em}
.hero-registry strong{display:block;margin:.25rem 0;font-size:.78rem;overflow-wrap:anywhere}
.hero-director{z-index:5;pointer-events:none;filter:drop-shadow(-10px 12px 18px rgba(34,33,35,.2))}
.hero-director picture,.hero-director img{display:block;width:100%;height:auto}
.hero-director--mobile{position:absolute;right:-.1rem;top:4.25rem;width:5.2rem}
.hero-director--desktop{display:none;position:absolute}
.hero-director__cta{position:absolute;right:.05rem;bottom:1.4rem;min-height:24px;display:flex;align-items:center;padding:.25rem .4rem;background:linear-gradient(135deg,#e3be3a,#bd8d12);color:#fff;border:1px solid rgba(255,255,255,.75);font-family:var(--serif);font-size:.55rem;font-weight:800;white-space:nowrap;box-shadow:0 5px 16px rgba(34,33,35,.28);pointer-events:auto}
.hero-badge b{display:block;font-family:var(--serif);font-size:2.2rem}
.hero-badge span{font-size:.7rem;font-weight:800;text-transform:uppercase}
.legal-strip{background:var(--charcoal);color:#fff}
.legal-strip__grid{display:grid}
.legal-strip__grid>div{display:flex;gap:1rem;padding:1.25rem 0;border-bottom:1px solid rgba(255,255,255,.13)}
.section-number{color:var(--gold);font-family:var(--serif)}
.legal-strip small{display:block;color:#b8b8ba;font-size:.65rem;text-transform:uppercase}
.legal-strip strong{font-size:.85rem;overflow-wrap:anywhere}
.split-intro,.values-grid,.cta-section__inner,.content-layout,.detail-hero__grid,.contact-grid,.quote-layout,.faq-layout{display:grid;gap:2rem}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}
.section-heading h2{margin:0}
.section-heading--light .eyebrow{color:var(--gold)}
.section-heading--light h2{color:#fff}
.section-heading--light .text-link{color:#fff}
.service-grid,.project-grid,.testimonial-grid,.article-grid,.people-grid{display:grid;gap:1rem}
.service-card{position:relative;min-height:18rem;padding:1.5rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:.2s}
.service-card:hover{transform:translateY(-5px);border-color:var(--gold)}
.service-card__number{position:absolute;right:1rem;top:.6rem;color:#ece7de;font-family:var(--serif);font-size:3rem;font-weight:700}
.service-card__icon{width:3rem;height:3rem;display:grid;place-items:center;margin-bottom:2.25rem;background:var(--ivory);border:1px solid var(--gold);border-radius:50%;color:var(--maroon);font-size:1.5rem}
.service-card h2,.service-card h3{font-size:1.35rem}
.service-card p{font-size:.9rem}
.service-card a{position:absolute;left:1.5rem;bottom:1.5rem;color:var(--maroon);font-weight:800;font-size:.85rem}
.sector-list{display:grid;border-top:1px solid var(--border)}
.sector-list a{min-height:6rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.25rem 1rem;padding:1.15rem 0;border-bottom:1px solid var(--border);transition:.2s}
.sector-list a:hover{padding-left:.75rem;color:var(--maroon)}
.sector-list span,.project-card__body small{color:var(--gold-dark);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.sector-list strong{font-family:var(--serif)}
.sector-list b{grid-row:1/3;grid-column:2}
.project-grid{gap:1.25rem}
.project-card{overflow:hidden;background:#2b2c2e;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius)}
.project-grid--light .project-card{background:#fff;border-color:var(--border);box-shadow:var(--shadow-sm)}
.project-card a{display:block}
.project-card img,.project-card__placeholder{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .35s}
.project-card:hover img,.project-card:hover .project-card__placeholder{transform:scale(1.035)}
.project-card__placeholder{display:grid;place-items:center;background:linear-gradient(145deg,var(--maroon-dark),var(--maroon));color:var(--gold);font-family:var(--serif);font-size:2rem}
.project-card__body{padding:1.2rem}
.project-card__body h2,.project-card__body h3{margin:.45rem 0;font-size:1.25rem;color:#fff}
.project-grid--light .project-card__body h2,.project-grid--light .project-card__body h3{color:var(--charcoal)}
.project-card__body p{margin:0;font-size:.8rem}
.process{list-style:none;display:grid;padding:0;margin:0;border-top:1px solid var(--border)}
.process li{padding:1.5rem 0;border-bottom:1px solid var(--border)}
.process li>span,.values-list>article>span{color:var(--gold-dark);font-family:var(--serif)}
.process h3{margin:.7rem 0 .35rem}
.process p{margin:0;font-size:.88rem}
.values-section{background:var(--ivory)}
.values-list article{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--border)}
.values-list h3{margin:0}
.values-list p{margin:0;font-size:.88rem}
.logo-cloud{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.logo-cloud>div{min-height:7rem;display:grid;place-items:center;padding:1rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius)}
.logo-cloud img{max-height:3rem}
.testimonial-grid blockquote,.article-card{margin:0;padding:1.5rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.testimonial-grid blockquote>p{color:var(--charcoal);font-family:var(--serif);font-size:1.1rem}
.testimonial-grid footer{display:flex;flex-direction:column}
.testimonial-grid footer span{color:var(--muted);font-size:.75rem}
.article-card>img,.article-card>a>img{width:calc(100% + 3rem);max-width:none;margin:-1.5rem -1.5rem 1.2rem;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius) var(--radius) 0 0}
.article-card small{color:var(--gold-dark);font-weight:800;text-transform:uppercase}
.article-card h2,.article-card h3{font-size:1.3rem;margin:.65rem 0}
.article-card p{font-size:.88rem}
.cta-section{padding:4.5rem 0;background:linear-gradient(135deg,var(--maroon-dark),var(--maroon));color:#fff}
.cta-section .eyebrow{color:var(--gold)}
.cta-section p{color:rgba(255,255,255,.76)}
.page-hero{position:relative;overflow:hidden;padding:4rem 0;background:linear-gradient(135deg,var(--ivory),var(--soft))}
.page-hero::after{content:"";position:absolute;width:16rem;height:16rem;right:-8rem;bottom:-9rem;border:1px solid rgba(139,17,27,.16);transform:rotate(45deg)}
.page-hero__inner{position:relative;z-index:1;display:grid;gap:2rem}
.page-hero h1{margin:0 0 1rem;font-size:clamp(2.4rem,9vw,4.5rem)}
.page-hero p{max-width:700px;margin:0;font-size:1.05rem}
.page-hero__mark{align-self:end;color:rgba(139,17,27,.12);font-family:var(--serif);font-size:4rem;font-weight:800}
.prose{max-width:760px}
.prose>*:first-child{margin-top:0}
.prose h2{margin-top:2.2rem;font-size:1.7rem}
.prose h3{margin-top:1.75rem}
.prose p,.prose li{color:#4f5054}
.prose a{color:var(--maroon);text-decoration:underline}
.prose blockquote{margin:1.5rem 0;padding:1.25rem;border-left:4px solid var(--gold);background:var(--ivory)}
.prose table{width:100%;border-collapse:collapse;display:block;overflow:auto}
.prose th,.prose td{padding:.75rem;border:1px solid var(--border)}
.aside-card{position:sticky;top:6rem;padding:1.35rem;background:var(--ivory);border:1px solid var(--gold);border-radius:var(--radius)}
.aside-card>strong{display:block;font-family:var(--serif);font-size:1.2rem}
.aside-card .button+.button{margin-top:.75rem}
.empty-state{max-width:650px;margin:2rem auto;padding:3rem 1.25rem;text-align:center;border:1px dashed var(--border);border-radius:var(--radius);background:var(--soft)}
.empty-state>span{display:grid;place-items:center;width:3.5rem;height:3.5rem;margin:0 auto 1rem;border-radius:50%;background:var(--ivory);color:var(--maroon);font-size:1.5rem}
.empty-state h2{font-size:1.5rem}
.sector-table article{position:relative;display:grid;gap:1.25rem;padding:1.5rem 0;border-top:1px solid var(--border)}
.sector-table__code{display:flex;flex-direction:column}
.sector-table__code small,.sector-table article>div:nth-child(2)>span{color:var(--gold-dark);font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.sector-table__code strong{font-family:var(--serif);font-size:1.6rem}
.sector-table h2{font-size:1.3rem}
.sector-table__index{position:absolute;right:0;top:1rem;color:#eee9e1;font-family:var(--serif);font-size:3rem}
.sector-table__intro{max-width:72ch;margin-bottom:.75rem}
.sector-detail{max-width:76ch;border-top:1px solid var(--border);padding-top:.65rem}
.sector-detail summary{min-height:44px;display:flex;align-items:center;gap:.55rem;width:max-content;max-width:100%;color:var(--maroon);font-size:.78rem;font-weight:800;cursor:pointer}
.sector-detail summary::after{content:"+";color:var(--gold-dark);font-size:1.1rem}
.sector-detail[open] summary::after{content:"−"}.sector-detail p{margin:.65rem 0 0;padding:1rem;background:var(--soft);border-left:3px solid var(--gold);border-radius:0 .55rem .55rem 0;color:#444;line-height:1.75}
.sector-source-note{max-width:76ch;margin:2rem 0 0;font-size:.75rem}
.filter-panel{display:grid;gap:.8rem;margin-bottom:2rem;padding:1rem;background:var(--soft);border:1px solid var(--border);border-radius:var(--radius)}
.form-field{display:flex;flex-direction:column;gap:.4rem}
.form-field label,fieldset legend{font-size:.78rem;font-weight:800;color:#444}
.form-field input,.form-field select,.form-field textarea,.site-search input,.hero-search input{width:100%;min-height:46px;border:1px solid #c9c5bd;border-radius:.55rem;background:#fff;padding:.72rem .85rem;color:var(--charcoal)}
.form-field textarea{resize:vertical}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.site-search input:focus{border-color:var(--maroon);box-shadow:0 0 0 3px rgba(139,17,27,.1);outline:none}
.form-field small{color:var(--muted)}
.check-field{display:flex;align-items:flex-start;gap:.65rem;font-size:.82rem}
.check-field input{width:1.25rem;height:1.25rem;flex:0 0 auto}
.check-field a{color:var(--maroon);text-decoration:underline}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:2rem}
.pagination a{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--border);border-radius:.5rem}
.pagination a.is-active{background:var(--maroon);color:#fff;border-color:var(--maroon)}
.detail-hero{padding:3rem 0;background:var(--charcoal);color:#fff}
.detail-hero--compact{padding-bottom:4rem}
.detail-hero h1{font-size:clamp(2.3rem,8vw,4.2rem)}
.detail-hero p{color:#c8c8ca}
.detail-hero__image,.detail-hero__placeholder{width:100%;aspect-ratio:4/3;border-radius:var(--radius);object-fit:cover}
.detail-hero__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:linear-gradient(145deg,var(--maroon-dark),var(--maroon));color:var(--gold);font-family:var(--serif);font-size:2.5rem}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:2rem;color:#bdbdbf;font-size:.75rem}
.project-meta{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
.project-meta div{padding-top:.75rem;border-top:1px solid rgba(255,255,255,.22)}
.project-meta small{display:block;color:#aaa;font-size:.65rem;text-transform:uppercase}
.project-meta strong{font-size:.85rem}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.gallery-grid button{position:relative;border:0;padding:0;background:none;overflow:hidden;border-radius:.6rem}
.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover}
.gallery-grid span{position:absolute;inset:auto .5rem .5rem;padding:.3rem;background:rgba(0,0,0,.65);color:#fff;font-size:.65rem}
.lightbox{width:min(1000px,calc(100% - 1rem));max-width:none;border:0;padding:2.5rem 1rem 1rem;background:#111;color:#fff;border-radius:var(--radius)}
.lightbox::backdrop{background:rgba(0,0,0,.88)}
.lightbox>button{position:absolute;right:.5rem;top:.3rem;width:44px;height:44px;border:0;background:none;color:#fff;font-size:2rem}
.lightbox img{max-height:75vh;margin:auto}
.lightbox p{text-align:center;color:#ddd}
.previous-next{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-bottom:4rem}
.previous-next a{padding:1rem;border:1px solid var(--border);border-radius:.6rem}
.previous-next a:last-child{text-align:right}
.previous-next small{display:block;color:var(--muted)}
.article-hero{padding:4rem 0;background:var(--ivory)}
.article-hero__inner{max-width:900px}
.article-hero h1{font-size:clamp(2.4rem,8vw,4.5rem)}
.article-cover{margin-top:-2rem;position:relative}
.article-cover img{width:100%;max-height:620px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.hero-search,.site-search{display:flex;max-width:620px;gap:.5rem}
.hero-search button{min-width:70px;border:0;border-radius:.55rem;background:var(--maroon);color:#fff;font-weight:800}
.people-grid article{padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);text-align:center}
.people-grid img,.person-placeholder{width:100%;aspect-ratio:1;object-fit:cover;border-radius:.7rem}
.person-placeholder{display:grid;place-items:center;background:var(--ivory);color:var(--maroon);font-family:var(--serif);font-size:4rem}
.people-grid h2{font-size:1.25rem;margin:1rem 0 .25rem}
.people-grid p{margin:0}
.people-grid article>span{display:block;margin-top:.6rem;color:var(--muted);font-size:.8rem}
.job-list{display:grid;gap:1rem}
.job-list article{display:grid;gap:1.25rem;padding:1.5rem;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.job-list h2{margin:.4rem 0;font-size:1.45rem}
.job-list dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0}
.job-list dt{color:var(--muted);font-size:.62rem;text-transform:uppercase}
.job-list dd{margin:0;font-size:.75rem;font-weight:700}
.job-badges{display:flex;flex-wrap:wrap;gap:.5rem}
.job-badges span{padding:.45rem .65rem;border:1px solid rgba(255,255,255,.25);border-radius:99px;font-size:.75rem}
.contact-info h2{font-size:2rem}
.contact-item{padding:1rem 0;border-top:1px solid var(--border)}
.contact-item small{display:block;color:var(--gold-dark);font-size:.65rem;font-weight:800;text-transform:uppercase}
.privacy-note{padding:1rem;background:var(--soft);border-radius:.5rem;font-size:.75rem}
.form-card{padding:1.25rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.form-card h2{font-size:1.7rem}
.form-card .form-field,.form-card .check-field{margin-bottom:1rem}
.form-grid{display:grid;gap:0 1rem}
.form-card fieldset{margin:0 0 1.5rem;padding:1rem;border:1px solid var(--border);border-radius:.6rem}
.form-card legend{padding:0 .4rem;color:var(--maroon)}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.quote-steps{align-self:start;padding:1.5rem;background:var(--charcoal);color:#fff;border-radius:var(--radius)}
.quote-steps ol{list-style:none;padding:0}
.quote-steps li{display:flex;gap:.8rem;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.15)}
.quote-steps li>b{width:2rem;height:2rem;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--gold);color:var(--charcoal)}
.quote-steps li div{display:flex;flex-direction:column}
.quote-steps li span,.quote-steps>p{color:#bdbdbf;font-size:.75rem}
.faq-intro{align-self:start;padding:1.25rem;background:var(--ivory);border-radius:var(--radius)}
.faq-list details{border-top:1px solid var(--border)}
.faq-list summary{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;font-family:var(--serif);font-weight:700;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font-family:var(--sans);font-size:1.4rem;color:var(--maroon);transition:.2s}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details .prose{padding-bottom:1.2rem}
.search-results>article{padding:1.25rem 0;border-bottom:1px solid var(--border)}
.search-results>article small{color:var(--gold-dark);font-size:.65rem;text-transform:uppercase}
.search-results>article h2{font-size:1.35rem;margin:.35rem 0}
.alert{padding:1rem;border-radius:.6rem;margin-bottom:1rem}
.alert--error{background:#fff0f0;border:1px solid #e4a5aa;color:#7b1119}
.alert--success{background:#effaf3;border:1px solid #9bd0ae;color:#115a30}
.form-success,.error-page{min-height:70vh;display:grid;place-items:center;text-align:center}
.form-success__card,.error-page__inner{max-width:680px}
.form-success__icon{width:4rem;height:4rem;display:grid;place-items:center;margin:0 auto 1.5rem;background:var(--success);color:#fff;border-radius:50%;font-size:1.7rem}
.reference-box{max-width:360px;margin:1.5rem auto;padding:1rem;background:var(--ivory);border:1px dashed var(--gold)}
.form-success .button-row,.error-page .button-row{justify-content:center}
.site-footer{padding:4rem 0 calc(2rem + env(safe-area-inset-bottom));background:#171719;color:#fff}
.site-footer__grid{display:grid;gap:2rem}
.brand--footer{margin-bottom:1rem}
.site-footer p,.site-footer address{color:#a9a9ad;font-size:.82rem}
.site-footer h2{font-family:var(--sans);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.site-footer__grid>div>a:not(.brand){display:block;min-height:38px;color:#c8c8cb;font-size:.82rem}
.site-footer__bottom{display:flex;flex-direction:column;gap:1rem;margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.12);font-size:.72rem;color:#999}
.site-footer__bottom div{display:flex;gap:1rem}
.bottom-nav{position:fixed;z-index:150;inset:auto 0 0;height:calc(var(--bottom-h) + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);padding:0 .25rem env(safe-area-inset-bottom);background:rgba(255,255,255,.97);border-top:1px solid var(--border);box-shadow:0 -8px 24px rgba(0,0,0,.08);backdrop-filter:blur(15px)}
.bottom-nav a,.bottom-nav button{min-width:0;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;border:0;background:none;color:#69696d}
.bottom-nav span{font-size:1.15rem;line-height:1}
.bottom-nav small{font-size:.58rem;font-weight:800}
.bottom-nav .is-active{color:var(--maroon)}
.sheet-backdrop{position:fixed;z-index:180;inset:0;background:rgba(0,0,0,.45)}
.bottom-sheet{position:fixed;z-index:190;inset:auto 0 0;padding:0 1rem calc(1.5rem + env(safe-area-inset-bottom));background:#fff;border-radius:1.25rem 1.25rem 0 0;box-shadow:var(--shadow-lg)}
.sheet-handle{width:3rem;height:.25rem;margin:.65rem auto 1rem;background:#ccc;border-radius:99px}
.sheet-heading{display:flex;align-items:center;justify-content:space-between}
.sheet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.sheet-grid a,.sheet-grid button{min-height:52px;display:flex;align-items:center;padding:.75rem;border:1px solid var(--border);border-radius:.6rem;background:#fff;font-weight:700}
.whatsapp-fab{position:fixed;z-index:140;right:1rem;bottom:calc(var(--bottom-h) + 1rem + env(safe-area-inset-bottom));width:58px;height:58px;display:none;place-items:center;border:2px solid rgba(255,255,255,.95);border-radius:50%;background:linear-gradient(145deg,#2fe477,#12a954);color:#fff;box-shadow:0 12px 30px rgba(18,169,84,.38),0 3px 10px rgba(34,33,35,.22);transition:transform .2s ease,box-shadow .2s ease}
.whatsapp-fab::before{content:"";position:absolute;inset:-6px;border:1px solid rgba(37,211,102,.34);border-radius:inherit;animation:whatsapp-pulse 2.4s ease-out infinite}
.whatsapp-fab svg{position:relative;width:32px;height:32px;fill:currentColor}
.whatsapp-fab:hover,.whatsapp-fab:focus-visible{transform:translateY(-3px) scale(1.04);box-shadow:0 16px 36px rgba(18,169,84,.46),0 4px 12px rgba(34,33,35,.24)}
@keyframes whatsapp-pulse{0%,45%{transform:scale(.92);opacity:0}70%{opacity:1}100%{transform:scale(1.2);opacity:0}}
.cookie-banner{position:fixed;z-index:170;left:.75rem;right:.75rem;bottom:calc(var(--bottom-h) + .75rem + env(safe-area-inset-bottom));padding:1rem;background:var(--charcoal);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.cookie-banner p{color:#ddd;font-size:.75rem}
.toast-region{position:fixed;z-index:250;top:calc(var(--header-h) + 1rem);right:1rem;left:1rem;display:grid;gap:.5rem;pointer-events:none}
.toast{padding:1rem;border-radius:.6rem;color:#fff;box-shadow:var(--shadow-lg);animation:toast-in .25s ease both}
.toast--success{background:var(--success)}
.toast--error{background:var(--danger)}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}}
@media (max-width:639px){.hero__grid{gap:2.1rem;padding-block:3rem}.hero__copy h1{font-size:clamp(1.68rem,7.5vw,2rem);margin-bottom:1rem}.hero__copy h1>span{display:block;white-space:nowrap}.hero__copy>p{font-size:.94rem;line-height:1.62}.hero__copy .button--large{min-height:44px;padding:.65rem .9rem;font-size:.88rem}.hero__facts{margin-top:1.65rem}.hero__facts div{padding-top:.65rem}}
@media (min-width:640px){:root{--shell:min(1180px,calc(100% - 3rem))}.hero-director--mobile{display:none}.service-grid,.article-grid,.testimonial-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:repeat(2,1fr)}.people-grid{grid-template-columns:repeat(3,1fr)}.legal-strip__grid{grid-template-columns:repeat(4,1fr)}.legal-strip__grid>div{border-bottom:0}.process{grid-template-columns:repeat(2,1fr)}.logo-cloud{grid-template-columns:repeat(4,1fr)}.page-hero__inner{grid-template-columns:1fr auto}.page-hero__mark{font-size:6rem}.sector-table article{grid-template-columns:8rem 1fr;padding:2rem}.filter-panel{grid-template-columns:repeat(2,1fr);align-items:end}.gallery-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.site-footer__grid{grid-template-columns:1.6fr 1fr 1fr}.site-footer__grid>div:last-child{grid-column:1/-1}.site-footer__bottom{flex-direction:row;justify-content:space-between}.cookie-banner{left:auto;max-width:420px}.toast-region{left:auto;width:360px}}
@media (min-width:900px){:root{--header-h:5.25rem}.topbar{display:block}body{padding-bottom:0}.bottom-nav,.mobile-menu-button,.bottom-sheet,.sheet-backdrop{display:none!important}.desktop-nav{display:flex;align-items:center;gap:.1rem;margin-left:auto}.desktop-nav>a,.nav-dropdown summary{min-height:44px;display:flex;align-items:center;padding:.65rem .75rem;border-radius:.45rem;font-size:.78rem;font-weight:800;cursor:pointer;list-style:none}.desktop-nav>a:hover,.desktop-nav>a.is-active,.nav-dropdown[open] summary{background:var(--soft);color:var(--maroon)}.nav-dropdown{position:relative}.nav-dropdown__menu{position:absolute;top:100%;left:0;width:13rem;padding:.45rem;background:#fff;border:1px solid var(--border);border-radius:.65rem;box-shadow:var(--shadow-lg)}.nav-dropdown__menu a{display:block;padding:.7rem}.header-actions{display:flex;align-items:center;gap:.5rem}.hero__grid{grid-template-columns:1.15fr .85fr;align-items:center;padding-block:5rem}.hero__visual{min-height:34rem}.split-intro{grid-template-columns:1fr 1fr;gap:6rem}.service-grid{grid-template-columns:repeat(4,1fr)}.service-grid--listing{grid-template-columns:repeat(3,1fr)}.sector-list{grid-template-columns:1fr 1fr}.sector-list a:nth-child(even){padding-left:2rem;border-left:1px solid var(--border)}.project-grid{grid-template-columns:repeat(3,1fr)}.process{grid-template-columns:repeat(4,1fr)}.process li{padding:1.5rem;border-left:1px solid var(--border);border-bottom:0}.values-grid{grid-template-columns:.8fr 1.2fr;gap:7rem}.testimonial-grid,.article-grid{grid-template-columns:repeat(3,1fr)}.cta-section__inner{grid-template-columns:1fr auto;align-items:center}.content-layout{grid-template-columns:minmax(0,1fr) 320px;gap:5rem}.filter-panel{grid-template-columns:2fr repeat(3,1fr) auto}.detail-hero__grid{grid-template-columns:1fr 1fr;align-items:center;gap:5rem}.project-meta{grid-template-columns:repeat(4,1fr)}.gallery-grid{grid-template-columns:repeat(4,1fr)}.people-grid{grid-template-columns:repeat(4,1fr)}.job-list article{grid-template-columns:1fr 360px auto;align-items:center}.contact-grid{grid-template-columns:.75fr 1.25fr;gap:5rem}.quote-layout{grid-template-columns:320px 1fr;gap:3rem}.quote-steps{position:sticky;top:7rem}.faq-layout{grid-template-columns:300px 1fr;gap:5rem}.form-card{padding:2rem}.site-footer{padding-bottom:2rem}.site-footer__grid{grid-template-columns:1.8fr repeat(3,1fr)}.site-footer__grid>div:last-child{grid-column:auto}.whatsapp-fab{bottom:1.5rem}.cookie-banner{bottom:1rem}}
@media (min-width:1200px){.hero__visual{margin-right:6rem}.hero-director--desktop{display:block;right:calc((100vw - 100%)/-2);bottom:5rem;width:clamp(17rem,22vw,27rem);filter:drop-shadow(-18px 20px 28px rgba(34,33,35,.22))}}
@media (min-width:1400px){:root{--shell:min(1320px,calc(100% - 5rem))}.service-grid--listing{grid-template-columns:repeat(4,1fr)}}
@media (min-width:640px){.whatsapp-fab{display:grid}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.brand__logo{width:5.4rem;height:1.62rem;max-width:none;flex:0 0 auto;object-fit:cover;object-position:50% 49.65%}
.brand--footer .brand__logo,.auth-brand .brand__logo{width:7.2rem;height:2.15rem}
.admin-brand .brand__logo{width:6.4rem;height:1.9rem}
@media (min-width:640px){.site-header .brand__logo{width:6.2rem;height:1.85rem}}
