/* A&B Concept — independent styles, scoped to the 3D hero. */
.ab3d-hero,.ab3d-hero *{box-sizing:border-box}
.ab3d-hero{
    --ab3d-champagne:#d0a46f;--ab3d-champagne-light:#e2bd8b;
    --ab3d-white:#f5f3ef;--ab3d-grey:#99958f;
    --ab3d-top:0px;--ab3d-height:calc(100svh - var(--ab3d-top));
    --ab3d-distance:90svh;--ab3d-progress:0;
    position:relative;isolation:isolate;width:100%;max-width:none;
    margin:0;padding:0;color:var(--ab3d-white);text-align:center;
    background:radial-gradient(ellipse at 50% 27%,rgba(208,164,111,.07),transparent 40%),linear-gradient(180deg,#090909,#080808);
    font-family:Arial,Helvetica,sans-serif;
    /* Do not set overflow here: it would prevent position:sticky from working. */
}
.ab3d-hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.1;z-index:0;background-image:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.008) 1px,transparent 1px);background-size:60px 60px}
.ab3d-sequence{position:relative;z-index:1;min-height:580px}
.ab3d-pin{position:relative;min-height:580px;height:var(--ab3d-height);max-height:1000px;display:flex;flex-direction:column;align-items:center;padding:14px 30px 18px}
.ab3d-hero.is-animated .ab3d-sequence{height:calc(var(--ab3d-height) + var(--ab3d-distance))}
.ab3d-hero.is-animated .ab3d-pin{position:sticky;top:var(--ab3d-top);max-height:none}
.ab3d-glow{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);width:min(750px,90%);height:500px;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse,rgba(208,164,111,.09),rgba(208,164,111,.025) 35%,transparent 65%);filter:blur(15px)}
.ab3d-watermark{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:min(800px,68%);opacity:.028;pointer-events:none;user-select:none}
.ab3d-watermark img{display:block;width:100%;height:auto;filter:grayscale(100%)}
.ab3d-heading{position:relative;z-index:2;flex:0 0 auto}
.ab3d-brand{display:flex;justify-content:center;margin-bottom:8px}
.ab3d-brand img{display:block;width:clamp(140px,15vw,190px);height:clamp(64px,10svh,82px);object-fit:contain;filter:drop-shadow(0 12px 35px rgba(0,0,0,.5))}
.ab3d-hero .ab3d-title{margin:0 auto;max-width:850px;color:var(--ab3d-white);font-family:Georgia,"Times New Roman",serif;font-size:clamp(27px,2.5vw,38px);font-weight:400;line-height:1.08;letter-spacing:-.032em}
.ab3d-title span{display:inline;color:var(--ab3d-champagne-light);font-style:italic}
.ab3d-stage{position:relative;z-index:2;flex:1 1 auto;width:min(1040px,100%);min-height:260px;margin:0 auto;overflow:hidden}
.ab3d-canvas,.ab3d-poster{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;margin:0;padding:0;pointer-events:none}
.ab3d-poster{opacity:1}
.ab3d-poster img{display:block;width:100%;height:100%;object-fit:contain}
.ab3d-canvas{opacity:0;touch-action:pan-y}
.ab3d-hero.is-ready .ab3d-canvas{opacity:1}
.ab3d-hero.is-ready .ab3d-poster{opacity:0}
.ab3d-hero .ab3d-loading{position:absolute;left:0;right:0;bottom:12px;margin:0;color:var(--ab3d-champagne-light);font:11px/1.5 Arial,Helvetica,sans-serif;letter-spacing:.06em}
.ab3d-loading[hidden]{display:none}
.ab3d-hint{position:relative;z-index:2;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:10px;color:#999087;font-size:9px;font-weight:600;letter-spacing:.17em;text-transform:uppercase}
.ab3d-progress{display:block;width:80px;height:1px;overflow:hidden;background:rgba(208,164,111,.2)}
.ab3d-progress>span{display:block;width:100%;height:100%;transform-origin:left;transform:scaleX(var(--ab3d-progress));background:var(--ab3d-champagne-light)}
.ab3d-hero.is-static .ab3d-hint{visibility:hidden}
.ab3d-content{position:relative;z-index:2;width:100%;max-width:1200px;margin:0 auto;padding:28px 30px 75px;background:linear-gradient(180deg,rgba(8,8,8,0),#080808 35%)}
.ab3d-hero .ab3d-text{max-width:670px;margin:0 auto;color:var(--ab3d-grey);font:14px/1.85 Arial,Helvetica,sans-serif}
.ab3d-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:13px;margin-top:32px}
.ab3d-hero .ab3d-button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:15px 29px;font:600 10px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.15em;text-decoration:none;text-transform:uppercase;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}
.ab3d-hero .ab3d-button--primary{min-width:250px;color:#080808;background:var(--ab3d-champagne-light);border:1px solid var(--ab3d-champagne-light)}
.ab3d-hero .ab3d-button--primary:hover{color:#080808;background:#ecc99a;border-color:#ecc99a;transform:translateY(-3px)}
.ab3d-hero .ab3d-button--secondary{min-width:245px;color:#cbc7c0;background:rgba(8,8,8,.18);border:1px solid rgba(208,164,111,.4)}
.ab3d-hero .ab3d-button--secondary:hover{color:var(--ab3d-champagne-light);border-color:rgba(208,164,111,.78);background:rgba(208,164,111,.045);transform:translateY(-3px)}
.ab3d-hero .ab3d-button:focus-visible{outline:2px solid var(--ab3d-champagne-light);outline-offset:4px}
.ab3d-services{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:36px;color:#827a70;font-size:8px;font-weight:600;letter-spacing:.17em;text-transform:uppercase}
.ab3d-dot{width:3px;height:3px;border-radius:50%;background:rgba(208,164,111,.65)}
/* Added only to the Elementor ancestry of this hero; other blocks keep their styles. */
.ab3d-host{overflow:visible!important}
.ab3d-widget{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
.ab3d-fullbleed{width:var(--ab3d-page-width,100%);margin-left:var(--ab3d-left,0px)}
@media(max-width:680px){
    .ab3d-pin{padding:12px 16px 18px;min-height:520px}
    .ab3d-sequence{min-height:520px}
    .ab3d-brand{margin-bottom:6px}
    .ab3d-brand img{width:148px;height:64px}
    .ab3d-hero .ab3d-title{font-size:clamp(25px,6.8vw,29px);max-width:520px;line-height:1.08}
    .ab3d-title span{display:block;margin-top:4px}
    .ab3d-stage{width:100%;min-height:240px;margin-top:0}
    .ab3d-watermark{width:94%;opacity:.022}
    .ab3d-content{padding:20px 20px 58px}
    .ab3d-hero .ab3d-text{font-size:13px;line-height:1.75}
    .ab3d-actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:28px}
    .ab3d-hero .ab3d-button{width:100%;min-width:0}
    .ab3d-services{max-width:300px;margin:30px auto 0;gap:9px;line-height:1.7}
}
@media(max-height:620px) and (min-width:681px){
    .ab3d-pin{min-height:470px;padding-top:10px}
    .ab3d-sequence{min-height:470px}
    .ab3d-brand img{height:54px;width:132px}
    .ab3d-hero .ab3d-title{font-size:28px}
    .ab3d-stage{min-height:250px}
}
@media(prefers-reduced-motion:reduce){
    .ab3d-hero .ab3d-button{transition:none}
    .ab3d-hero .ab3d-button:hover{transform:none}
    .ab3d-hero.is-animated .ab3d-sequence{height:auto}
    .ab3d-hero.is-animated .ab3d-pin{position:relative;top:auto}
}
