/*
Theme Name: Divi Child theme of Divi
Theme URI: 
Description: Child theme of Divi theme for the Divi theme
Template: Divi
Version: 5.11.1
*/


/* ---------- 1. Tokens ---------- */
.qbs{
  /* surfaces */
  --charcoal:#2E3133; --deep:#1A1D1E; --cream:#F2EFE8; --paper:#FAF8F3; --sand:#E7E0D4;
  /* brand */
  --olive:#7A8B5A; --olive-deep:#5F6E45; --olive-dark:#4B5836;
  --terra:#D47A51; --terra-deep:#A8522F; --terra-fill:#B45A32; --terra-dark:#8F4525;
  --stone:#C8B7A1; --stone-deep:#8F7757;
  /* text */
  --ink:#1E2122; --body:#4E5453; --muted:#767B7A;
  /* lines */
  --line:rgba(30,33,34,.14); --line-strong:rgba(30,33,34,.26); --line-light:rgba(255,255,255,.15);
  /* type */
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --text:"DM Sans",system-ui,-apple-system,sans-serif;
  /* system */
  --container:1320px; --gutter:clamp(20px,4vw,48px);
  --ease:cubic-bezier(.22,.68,0,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");

  font:400 18px/1.72 var(--text);
  color:var(--body); background:var(--paper);
  overflow-x:clip; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  font-variant-numeric:tabular-nums;
}

/* ---------- 2. Reset ---------- */
.qbs,.qbs *,.qbs *::before,.qbs *::after{box-sizing:border-box!important}
.qbs h1,.qbs h2,.qbs h3,.qbs h4,.qbs p,.qbs ul,.qbs ol,.qbs li,.qbs blockquote,.qbs figure{margin:0;padding:0!important}
.qbs ul,.qbs ol{list-style:none!important}
.qbs img,.qbs svg{display:block;max-width:100%}
.qbs img{height:auto}
.qbs a{text-decoration:none!important;color:inherit}
.qbs button,.qbs input,.qbs select,.qbs textarea{font:inherit;color:inherit}
.qbs a:focus-visible,.qbs button:focus-visible,.qbs input:focus-visible,.qbs select:focus-visible,.qbs textarea:focus-visible,.qbs summary:focus-visible{outline:2px solid var(--terra);outline-offset:4px}

/* ---------- 3. Armadura Divi 5 ---------- */
.et_pb_section:has(.qbs){padding:0!important}
.et_pb_section:has(.qbs) .et_pb_row{width:100%!important;max-width:100%!important;padding:0!important;margin:0!important}
.et_pb_section:has(.qbs) .et_pb_column{width:100%!important;padding:0!important;margin:0!important;float:none!important}
.et_pb_section:has(.qbs) .et_pb_module,.et_pb_section:has(.qbs) .et_pb_code_inner{margin:0!important;padding:0!important}
.qbs-canvas.et_pb_section{padding:0!important}
.qbs-canvas .et_pb_row{width:100%!important;max-width:100%!important;padding:0!important;margin:0!important}
.qbs-canvas .et_pb_module,.qbs-canvas .et_pb_code_inner{margin:0!important;padding:0!important}

/* ---------- 4. Layout ---------- */
.qbs-wrap{width:min(calc(100% - (var(--gutter) * 2)),var(--container));margin-inline:auto}
.qbs-sec{padding-block:clamp(88px,10vw,156px);position:relative}
.qbs-sec--tight{padding-block:clamp(64px,7vw,104px)}
.qbs-cream{background:var(--cream)}
.qbs-dark{color:rgba(255,255,255,.76);background:var(--charcoal)}
.qbs-olive{color:rgba(255,255,255,.88);background:var(--olive-deep)}
.qbs-dark,.qbs-olive{position:relative;isolation:isolate}
.qbs-dark::before,.qbs-olive::before,.qbs-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:var(--grain);background-size:160px 160px;opacity:.055;mix-blend-mode:overlay
}

/* ---------- 5. Typography ---------- */
.qbs h1,.qbs h2,.qbs h3{
  font-family:var(--display);font-optical-sizing:auto;
  color:var(--ink);text-wrap:balance;font-weight:500
}
.qbs-dark h1,.qbs-dark h2,.qbs-dark h3,.qbs-olive h1,.qbs-olive h2,.qbs-olive h3{color:#fff}
.qbs h1{font-size:clamp(44px,6.4vw,94px);line-height:1.03;letter-spacing:-.028em}
.qbs h2{font-size:clamp(34px,4.5vw,62px);line-height:1.07;letter-spacing:-.024em}
.qbs h3{font-size:clamp(22px,2.1vw,30px);line-height:1.22;letter-spacing:-.014em;font-weight:600}
.qbs p{font-size:max(18px,1em)}
.qbs p+p{margin-top:22px}
.qbs strong{color:var(--ink);font-weight:700}
.qbs-dark strong,.qbs-olive strong{color:#fff}
.qbs-lead{font-size:clamp(19px,1.55vw,23px);line-height:1.6;max-width:64ch;color:var(--body)}
.qbs-dark .qbs-lead,.qbs-olive .qbs-lead{color:rgba(255,255,255,.82)}

/* eyebrow */
.qbs-kicker{
  display:block;margin-bottom:26px;
  color:var(--terra-deep);font-family:var(--text);
  font-size:20px;font-weight:700;line-height:1.3;letter-spacing:.1em;text-transform:uppercase
}
.qbs-kicker::before,.qbs-kicker::after{content:none!important;display:none!important}
.qbs-dark .qbs-kicker,.qbs-olive .qbs-kicker{color:var(--stone)}
.qbs-olive .qbs-kicker{color:#fff}

.qbs-head{max-width:940px;margin-bottom:clamp(46px,5.5vw,76px)}
.qbs-head p{margin-top:24px}

/* ---------- 6. Buttons & links ---------- */
.qbs-btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}
.qbs-btn{
  --btn-bg:var(--olive-deep); --btn-hover:var(--olive-dark); --btn-ink:#fff;
  position:relative;overflow:hidden;isolation:isolate;
  min-height:58px;padding:15px 28px;display:inline-flex;align-items:center;justify-content:center;gap:14px;
  color:#fff!important;background:var(--btn-bg);border:1px solid transparent;border-radius:0;
  font-family:var(--text);font-size:15px;font-weight:700;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:color .3s var(--ease),border-color .3s var(--ease)
}
.qbs-btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--btn-hover);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.qbs-btn:hover::before,.qbs-btn:focus-visible::before{transform:scaleX(1);transform-origin:left}
.qbs-btn::after{
  content:"";width:19px;height:19px;flex:none;background:currentColor;
  -webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;
  transition:transform .4s var(--ease)
}
.qbs-btn:hover::after{transform:translateX(5px)}
.qbs{--arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M3 12h16M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.qbs-btn--outline{--btn-bg:transparent;--btn-hover:#fff;--btn-ink:inherit;color:inherit!important;border-color:currentColor}
.qbs-btn--outline:hover,.qbs-btn--outline:focus-visible{--btn-ink:var(--ink);color:var(--ink)!important;border-color:#fff}
.qbs-btn--terra{--btn-bg:var(--terra-fill);--btn-hover:var(--terra-dark)}
.qbs-btn--ghost{--btn-bg:transparent;--btn-hover:var(--ink);--btn-ink:var(--ink);color:var(--ink)!important;border-color:var(--line-strong)}
.qbs-btn--ghost:hover{--btn-ink:#fff;color:#fff!important;border-color:var(--ink)}

.qbs-link{
  position:relative;display:inline-flex;align-items:center;gap:11px;
  --link-ink:var(--olive-deep);color:var(--olive-deep)!important;font-family:var(--text);
  font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding-bottom:5px
}
.qbs-link::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(1);transform-origin:right;transition:transform .45s var(--ease)}
.qbs-link:hover::before{transform:scaleX(0)}
.qbs-link::after{content:"";width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:transform .4s var(--ease)}
.qbs-link:hover::after{transform:translateX(5px)}
.qbs-dark .qbs-link,.qbs-olive .qbs-link{--link-ink:#DCE4CC;color:#DCE4CC!important}
.qbs-prose a:not(.qbs-link),.qbs-service-copy a:not(.qbs-link){color:var(--olive-deep)!important;border-bottom:1px solid currentColor;font-weight:500}
.qbs-dark .qbs-prose a:not(.qbs-link){color:#DCE4CC!important}

/* ---------- 7. Motion system ---------- */
.qbs-fi{opacity:0;transform:translateY(24px);transition:opacity .62s var(--ease-out),transform .62s var(--ease-out);transition-delay:calc(var(--i,0) * 65ms)}
.qbs-fi.qbs-on{opacity:1;transform:none}

.qbs-hero .qbs-fi,.qbs-pagehero .qbs-fi{opacity:1!important;transform:none!important;clip-path:none!important}

/* ---------- 8. Hero ---------- */
.qbs-hero{
  position:relative;isolation:isolate;min-height:min(92vh,880px);
  display:flex;align-items:flex-end;color:#fff;background:var(--deep);overflow:hidden
}
.qbs-hero-media{position:absolute;inset:0;z-index:-3;overflow:hidden}
.qbs-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.06);animation:qbs-kb 26s var(--ease-out) forwards}
@keyframes qbs-kb{to{transform:scale(1)}}
.qbs-hero-scrim{position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:
    linear-gradient(100deg,rgba(20,23,24,.94) 0%,rgba(20,23,24,.8) 38%,rgba(20,23,24,.34) 68%,rgba(20,23,24,.18) 100%),
    linear-gradient(to top,rgba(20,23,24,.9) 0%,rgba(20,23,24,0) 42%)}
.qbs-hero .qbs-wrap{position:relative;padding-block:clamp(96px,14vh,168px) clamp(64px,8vh,96px)}
.qbs-hero h1{max-width:16ch;color:#fff}
.qbs-hero .qbs-kicker{color:var(--stone)}
.qbs-hero .qbs-lead{margin-top:26px;max-width:56ch;color:rgba(255,255,255,.85);font-size:22px;line-height:1.6}
.qbs-hero .qbs-btns{margin-top:38px}
.qbs .qbs-license{
  max-width:100%;margin-top:30px!important;padding:13px 18px!important;
  display:inline-flex;align-items:center;gap:12px;
  color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-family:var(--text);font-size:15px!important;font-weight:700;line-height:1.45;letter-spacing:.08em;text-transform:uppercase
}
.qbs .qbs-license::before{content:"";width:15px;height:17px;flex:none;background:var(--stone);-webkit-mask:var(--shield) center/contain no-repeat;mask:var(--shield) center/contain no-repeat}
.qbs{--shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 26' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M12 1.5 2.5 5.5v7c0 6 4 10 9.5 12 5.5-2 9.5-6 9.5-12v-7Z'/%3E%3Cpath d='m8 12.5 3 3 5.5-6'/%3E%3C/svg%3E")}

/* ---------- 9. Page hero ---------- */
.qbs-pagehero{
  position:relative;isolation:isolate;overflow:hidden;
  padding-block:clamp(132px,15vw,204px) clamp(72px,8vw,116px);
  color:rgba(255,255,255,.8);background:var(--charcoal)
}
.qbs-pagehero .qbs-wrap{position:relative}

.qbs-pagehero .qbs-hero-scrim{background:
    linear-gradient(96deg,rgba(20,23,24,.94) 0%,rgba(20,23,24,.86) 38%,rgba(20,23,24,.54) 72%,rgba(20,23,24,.26) 100%),
    linear-gradient(to top,rgba(20,23,24,.72) 0%,rgba(20,23,24,.1) 46%,rgba(20,23,24,.26) 100%)}
.qbs-pagehero h1{max-width:17ch;color:#fff}
.qbs-pagehero .qbs-kicker{color:var(--stone)}
.qbs-pagehero .qbs-lead{margin-top:28px;color:rgba(255,255,255,.72);font-size:22px;line-height:1.6}
.qbs-pagehero .qbs-lead+.qbs-lead{margin-top:18px}

/* ---------- 10. Trust strip ---------- */
.qbs-trust{display:grid;grid-template-columns:repeat(4,1fr);background:var(--sand);border-bottom:1px solid var(--line)}
.qbs-trust div{
  min-height:118px;padding:26px clamp(18px,2.6vw,40px);
  display:flex;align-items:center;gap:14px;
  border-right:1px solid var(--line);
  font-family:var(--text);font-size:12px;font-weight:700;line-height:1.4;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);
  transition:background .35s var(--ease)
}
.qbs-trust div:hover{background:rgba(255,255,255,.5)}
.qbs-trust div:last-child{border-right:0}
.qbs-trust div::before{content:"";width:22px;height:22px;flex:none;background:var(--terra-deep);-webkit-mask:var(--check) center/contain no-repeat;mask:var(--check) center/contain no-repeat}
.qbs{--check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='m8 12.2 2.8 2.8L16.4 9.4'/%3E%3C/svg%3E")}

/* ---------- 11. Split / prose ---------- */
.qbs-split{display:grid;grid-template-columns:minmax(0,.86fr) minmax(360px,.78fr);gap:clamp(48px,8vw,132px)}
.qbs-split>*:first-child{position:sticky;top:124px;align-self:stretch;height:max-content}
.qbs-prose{max-width:760px}
.qbs-prose p,.qbs-prose li{font-size:18px;line-height:1.78}
.qbs-dark .qbs-prose{color:rgba(255,255,255,.74)}

/* ---------- 12. Services grid ---------- */
.qbs-service-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}
.qbs-service-card{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:330px;padding:clamp(30px,3.4vw,50px);
  display:flex;flex-direction:column;align-items:flex-start;
  background:var(--charcoal);border-radius:0;
  transition:background .4s var(--ease)
}
.qbs-service-card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.qbs-service-card:hover::before{transform:scaleX(1)}
.qbs-service-card:hover{background:#363A3C}
.qbs-service-card h3{color:#fff;max-width:19ch}
.qbs-service-card p{margin:20px 0 28px;color:rgba(255,255,255,.68);font-size:18px;line-height:1.7}
.qbs-service-card a{margin-top:auto}
.qbs-service-card:nth-child(1){grid-column:span 7}
.qbs-service-card:nth-child(2){grid-column:span 5}
.qbs-service-card:nth-child(n+3){grid-column:span 4}

/* ---------- 13. Process steps ---------- */
.qbs-steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);position:relative}
.qbs-steps::after{content:"";position:absolute;left:0;top:-1px;height:2px;width:var(--progress,0%);background:var(--terra);transition:width .3s linear}
.qbs-step{position:relative;padding:44px clamp(20px,2.6vw,42px) 48px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.qbs-step:last-child{border-right:0}
.qbs-step b{
  display:block;margin-bottom:30px;
  font:500 62px/1 var(--display);color:var(--stone-deep);letter-spacing:-.04em;
  transition:color .4s var(--ease)
}
.qbs-step:hover b{color:var(--terra)}
.qbs-step h3{margin-bottom:14px;font-size:23px}
.qbs-step p{font-size:18px;line-height:1.72}

/* ---------- 14. Why / checks ---------- */
.qbs-why .qbs-head{max-width:820px;margin-inline:auto;text-align:center}
.qbs-why .qbs-head .qbs-kicker{text-align:center}
.qbs-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);max-width:1140px;margin-inline:auto}
.qbs-check{position:relative;padding:clamp(32px,3.6vw,52px);background:var(--paper);border-radius:0;transition:background .4s var(--ease)}
.qbs-check:hover{background:#fff}
.qbs-check h3{margin-bottom:14px;font-size:23px;max-width:26ch}
.qbs-check p{font-size:18px;line-height:1.72}

/* ---------- 15. Area / FAQ ---------- */
.qbs-area{max-width:960px}
.qbs-area p{margin-top:30px}

.qbs-cities{
  margin-top:clamp(34px,4vw,46px)!important;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border-bottom:1px solid var(--line)
}
.qbs-cities li{
  min-height:64px;padding:14px 26px 14px 0;
  display:flex;align-items:center;gap:13px;
  border-top:1px solid var(--line);
  font-size:18px;font-weight:500;color:var(--ink);line-height:1.35
}
.qbs-cities li::before{
  content:"";width:20px;height:20px;flex:none;background:var(--terra-deep);
  -webkit-mask:var(--check) center/contain no-repeat;mask:var(--check) center/contain no-repeat
}
.qbs-area-note{margin-top:30px;font-size:18px;line-height:1.7;max-width:62ch}
.qbs-faq{max-width:1000px}
.qbs-faq details{border-top:1px solid var(--line)}
.qbs-faq details:last-of-type{border-bottom:1px solid var(--line)}
.qbs-faq summary{
  min-height:84px;padding:24px 60px 24px 0;display:flex;align-items:center;position:relative;
  color:var(--ink);font-family:var(--display);font-weight:500;font-size:clamp(19px,1.8vw,25px);line-height:1.3;letter-spacing:-.018em;
  cursor:pointer;list-style:none;transition:color .3s var(--ease)
}
.qbs-faq summary:hover{color:var(--terra-deep)}
.qbs-faq summary::-webkit-details-marker{display:none}
.qbs-faq summary::before,.qbs-faq summary::after{content:"";position:absolute;right:6px;top:50%;background:var(--terra-deep);transition:transform .4s var(--ease),opacity .3s var(--ease)}
.qbs-faq summary::before{width:17px;height:1.5px;margin-top:-.75px}
.qbs-faq summary::after{width:1.5px;height:17px;margin-top:-8.5px;margin-right:7.75px}
.qbs-faq details[open] summary::after{transform:rotate(90deg);opacity:0}
.qbs-faq details p{padding:0 76px 32px 0!important;max-width:80ch;font-size:18px;line-height:1.75}

/* ---------- 16. Services page ---------- */
.qbs-service-section{scroll-margin-top:130px}
.qbs-service-section+.qbs-service-section{border-top:1px solid var(--line)}
.qbs-service-layout{display:grid;grid-template-columns:minmax(250px,.48fr) minmax(0,1fr);gap:clamp(42px,7vw,110px)}
.qbs-service-layout>*:first-child{position:sticky;top:124px;align-self:stretch;height:max-content}
.qbs-service-copy{max-width:820px}
.qbs-service-copy h3{margin:40px 0 14px}
.qbs-service-copy p+div,.qbs-service-copy p+.qbs-btns{margin-top:30px}
.qbs-question{position:relative;margin-top:32px;padding:30px 32px;background:var(--cream)}
.qbs-cream .qbs-question{background:var(--paper)}
.qbs-question strong{display:block;margin-bottom:10px;color:var(--ink);
  font:500 clamp(19px,1.7vw,22px)/1.32 var(--display);letter-spacing:-.018em}
.qbs-question p{font-size:18px;line-height:1.72}

/* ---------- 17. About ---------- */
.qbs-credentials{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:52px;background:var(--line-light);border:1px solid var(--line-light)}
.qbs-credential{padding:32px 28px;background:var(--charcoal);
  font-family:var(--text);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);
  transition:background .4s var(--ease)}
.qbs-credential:hover{background:#363A3C}
.qbs-credential strong{display:block;margin-bottom:9px;color:#fff;
  font:500 clamp(28px,2.6vw,38px)/1 var(--display);letter-spacing:-.03em;text-transform:none}

/* ---------- 18. Contact ---------- */
.qbs-contact{display:grid;grid-template-columns:.88fr 1.12fr}
.qbs-contact-info,.qbs-form{padding:clamp(64px,7.5vw,112px) max(var(--gutter),calc((100vw - var(--container))/2))}
.qbs-contact-info{padding-right:clamp(38px,5vw,84px);color:rgba(255,255,255,.78);background:var(--charcoal);position:relative;isolation:isolate}
.qbs-contact-info::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);background-size:160px;opacity:.055;mix-blend-mode:overlay;pointer-events:none}
.qbs-contact-info h2{color:#fff}
.qbs-contact-list{margin-top:46px!important;border-top:1px solid var(--line-light)}
.qbs-contact-list li{padding-block:22px;border-bottom:1px solid var(--line-light)}
.qbs-contact-list span{display:block;margin-bottom:7px;color:var(--stone);font-family:var(--text);font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.qbs-contact-list a,.qbs-contact-list p{color:#fff!important;font-size:19px;line-height:1.55}
.qbs-contact-list a{position:relative;display:inline-block;padding-bottom:3px}
.qbs-contact-list a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--stone);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.qbs-contact-list a:hover::after{transform:scaleX(1)}

.qbs-form{padding-left:clamp(38px,5vw,84px);background:var(--olive-deep);position:relative;isolation:isolate}
.qbs-form::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);background-size:160px;opacity:.06;mix-blend-mode:overlay;pointer-events:none}
.qbs-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 24px}
.qbs-field--wide{grid-column:1/-1}
.qbs-field label{display:block;margin-bottom:8px;color:rgba(255,255,255,.9);font-family:var(--text);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.qbs-field{position:relative}
.qbs-field input,.qbs-field select,.qbs-field textarea{
  width:100%;min-height:54px;padding:12px 2px;color:#fff;background:transparent;
  border:0;border-bottom:1px solid rgba(255,255,255,.62);border-radius:0;
  font-size:18px;transition:border-color .3s var(--ease)
}
.qbs-field input::placeholder,.qbs-field textarea::placeholder{color:rgba(255,255,255,.5)}
.qbs-field input:focus,.qbs-field select:focus,.qbs-field textarea:focus{outline:none;border-bottom-color:#fff}
.qbs-field::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);pointer-events:none}
.qbs-field:focus-within::after{transform:scaleX(1)}
.qbs-field select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:var(--caret);background-repeat:no-repeat;background-position:right 4px center;background-size:15px}
.qbs{--caret:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E")}
.qbs-field select option{color:var(--ink);background:#fff}
.qbs-field textarea{min-height:132px;resize:vertical}
.qbs-field.qbs-invalid input,.qbs-field.qbs-invalid select,.qbs-field.qbs-invalid textarea{border-bottom-color:#FFD2C0}
.qbs-field-error{display:block;margin-top:7px;min-height:0;color:#FFD9CA;font-size:16px;font-weight:500;letter-spacing:.02em}
.qbs-form .qbs-btn{--btn-bg:var(--terra-fill);--btn-hover:var(--ink)}
.qbs-form-note{margin-top:24px;color:rgba(255,255,255,.82);font-size:18px;line-height:1.65;max-width:52ch}
.qbs-form-status{margin-top:16px;color:#fff;font-size:18px;font-weight:500}

/* ---------- 19. CTA ---------- */
.qbs-cta{text-align:center;position:relative;isolation:isolate;overflow:hidden}
.qbs-cta .qbs-kicker{text-align:center}
.qbs-cta h2{max-width:18ch;margin-inline:auto}
.qbs-cta p{max-width:60ch;margin:26px auto 0}
.qbs-cta .qbs-btns{justify-content:center}
.qbs-olive.qbs-cta .qbs-btn--terra{--btn-hover:var(--ink)}

/* ---------- 20. Chrome: progreso + dock móvil ---------- */
.qbs-progress{position:fixed;left:0;top:0;z-index:99999;height:2px;width:100%;transform-origin:left;transform:scaleX(0);background:#D47A51;pointer-events:none}
.qbs-dock{
  position:fixed;left:0;right:0;bottom:0;z-index:9500;display:none;
  grid-template-columns:1fr 1fr;
  background:rgba(26,29,30,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid rgba(255,255,255,.14);
  transform:translateY(101%);transition:transform .45s cubic-bezier(.22,.68,0,1);
  padding-bottom:env(safe-area-inset-bottom)
}
.qbs-dock.qbs-dock-on{transform:none}
.qbs-dock a{
  min-height:60px;display:flex;align-items:center;justify-content:center;gap:9px;
  color:#fff;text-decoration:none;
  font:700 13px/1.2 "DM Sans",system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase
}
.qbs-dock a+a{background:#B45A32}
.qbs-dock a:focus-visible{outline:2px solid #fff;outline-offset:-4px}

/* ---------- 21. Responsive ---------- */
@media(max-width:1080px){
  .qbs-split>*:first-child,.qbs-service-layout>*:first-child{position:static}
}
@media(max-width:980px){
  .qbs-split,.qbs-service-layout,.qbs-contact{grid-template-columns:1fr}
  .qbs-steps{grid-template-columns:repeat(2,1fr)}
  .qbs-step:nth-child(2n){border-right:0}
  .qbs-contact-info,.qbs-form{padding-inline:max(var(--gutter),calc((100vw - 760px)/2))}
  .qbs-service-card:nth-child(1),.qbs-service-card:nth-child(2),.qbs-service-card:nth-child(n+3){grid-column:span 6}
  .qbs-service-card:nth-child(5){grid-column:1/-1}
  .qbs-cities{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* nueve ciudades en dos columnas dejan una huerfana: que ocupe la fila entera
     para que el filete no se corte a media anchura */
  .qbs-cities li:last-child:nth-child(odd){grid-column:1/-1}
  .qbs-trust{grid-template-columns:repeat(2,1fr)}
  .qbs-trust div:nth-child(2n){border-right:0}
  .qbs-trust div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:680px){
  .qbs{font-size:18px}
  .qbs-sec{padding-block:76px}
  .qbs-kicker{margin-bottom:22px;font-size:14px;line-height:1.4;letter-spacing:.12em}
  .qbs-hero{min-height:auto}
  .qbs-hero .qbs-wrap{padding-block:104px 52px}
  .qbs-hero h1{font-size:clamp(40px,10.6vw,50px);line-height:1.12;max-width:none}
  .qbs-hero .qbs-lead{margin-top:20px;font-size:22px;line-height:1.5}
  .qbs-hero .qbs-btns{margin-top:28px}
  .qbs-hero-scrim{background:linear-gradient(to top,rgba(20,23,24,.95) 12%,rgba(20,23,24,.72) 58%,rgba(20,23,24,.55) 100%)}
  .qbs-pagehero .qbs-hero-scrim{background:linear-gradient(to top,rgba(20,23,24,.9) 10%,rgba(20,23,24,.8) 58%,rgba(20,23,24,.7) 100%)}
  .qbs .qbs-license{width:100%;margin-top:22px!important;padding:12px 14px!important;font-size:14px!important}
  .qbs-btns,.qbs-btn{width:100%}
  .qbs-trust,.qbs-service-grid,.qbs-steps,.qbs-checks,.qbs-credentials,.qbs-form-grid{grid-template-columns:1fr}
  .qbs-trust div{min-height:72px;border-right:0!important;border-bottom:1px solid var(--line)}
  .qbs-service-card,.qbs-service-card:nth-child(n){grid-column:1/-1;min-height:0}
  .qbs-step,.qbs-step:nth-child(n){border-right:0}
  .qbs-step b{margin-bottom:20px;font-size:48px}
  .qbs-faq summary{min-height:70px;padding-right:44px}
  .qbs-faq details p{padding-right:0!important}
  .qbs-question{padding:24px 22px}
  .qbs-cities li{min-height:58px;padding-right:14px;gap:11px}
  .qbs-cities li::before{width:18px;height:18px}
  .qbs-field--wide{grid-column:auto}
  .qbs-dock{display:grid}
}

/* ---------- 22. Reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  .qbs *,.qbs *::before,.qbs *::after,.qbs-dock,.qbs-progress{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .qbs-fi{opacity:1!important;transform:none!important;clip-path:none!important}
  .qbs-hero-media img{animation:none;transform:none}
}

/* ---------- 23. color against divi ----------
*/
.qbs a.qbs-btn[class][class][class],
.qbs button.qbs-btn[class][class][class],
#page-container .qbs a.qbs-btn[class][class][class],
#page-container .qbs button.qbs-btn[class][class][class]{color:var(--btn-ink)!important}

.qbs a.qbs-link[class][class][class],
#page-container .qbs a.qbs-link[class][class][class]{color:var(--link-ink)!important}

.qbs .qbs-prose a[href]:not(.qbs-link),
.qbs .qbs-service-copy a[href]:not(.qbs-link),
#page-container .qbs .qbs-prose a[href]:not(.qbs-link),
#page-container .qbs .qbs-service-copy a[href]:not(.qbs-link){color:var(--olive-deep)!important}
.qbs-dark .qbs-prose a[href]:not(.qbs-link),
#page-container .qbs-dark .qbs-prose a[href]:not(.qbs-link){color:#DCE4CC!important}

.qbs a.qbs-btn[class][class][class] *,
#page-container .qbs a.qbs-btn[class][class][class] *{color:inherit!important}

/* ---------- 24. Mobile header alignment ----------
   Divi stretches the actions wrapper inside the header grid on small screens.
   Keep logo and hamburger in one 70/30 row and align the menu control right. */
@media(max-width:1200px){
  .qbs-hd-main .qbs-hd-wrap>nav{display:none!important}
}
@media(max-width:620px){
  .qbs-hd-main .qbs-hd-wrap{
    min-height:74px;
    grid-template-columns:minmax(0,70%) minmax(0,30%)!important;
    gap:0!important
  }
  .qbs-hd-main .qbs-hd-wrap>a:first-child{
    width:min(100%,190px)!important;
    height:52px
  }
  .qbs-hd-actions{
    width:100%!important;
    min-width:0;
    justify-self:stretch;
    justify-content:flex-end
  }
  .qbs-hd-burger{margin-left:auto!important}
}
