
:root{color-scheme:dark;--bg:#061426;--panel:#0c2039;--line:#27415f;--orange:#ff9347;--text:#f5f8ff;--muted:#adc0d6}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:radial-gradient(ellipse at 50% 0%,#12375d 0%,var(--bg) 55%);color:var(--text);min-height:100vh}
a{color:inherit;text-decoration:none}
.devis-header{max-width:1140px;margin:auto;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.devis-brand img{display:block;max-width:150px;height:auto}
.back-link{font-size:12px;color:#c2d2e5}
.back-link:hover{color:var(--orange)}
.devis-main{max-width:840px;margin:20px auto 90px;padding:0 20px}
.devis-intro{text-align:center;margin:32px auto 36px}
.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--orange)}
h1{font-size:clamp(32px,5vw,48px);line-height:1.15;letter-spacing:-1px;margin:17px 0}
h1 em{font-style:normal;color:var(--orange)}
.devis-intro p{color:var(--muted);font-size:14px;line-height:1.8;max-width:560px;margin:auto}
.devis-card{border:1px solid #294a6b;border-radius:22px;padding:clamp(22px,5vw,42px);background:linear-gradient(145deg,rgba(17,45,77,.97),rgba(8,26,48,.98));box-shadow:0 22px 70px #0005}
.form-section-title{display:flex;align-items:center;gap:12px;margin:30px 0 17px}
.form-section-title:first-child{margin-top:0}
.step-number{display:grid;place-items:center;width:29px;height:29px;flex:none;border:1px solid #ff934766;border-radius:9px;color:var(--orange);font-size:11px;font-weight:800}
h2{font-size:16px;margin:0;letter-spacing:.1px}
.request-types{display:flex;flex-wrap:wrap;gap:9px;border:0;padding:0;margin:0}
.request-types label{cursor:pointer}
.request-types input{position:absolute;opacity:0}
.request-types span{display:block;padding:11px 13px;border:1px solid #34516e;border-radius:9px;font-size:12px;color:#d1ddec}
.request-types input:checked+span{border-color:var(--orange);background:#ff934719;color:#fff}
.request-types input:focus-visible+span{outline:2px solid var(--orange);outline-offset:3px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.form-grid label,.description-label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:700;color:#dce7f5}
input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-width:0;border:1px solid #35516f;border-radius:9px;padding:12px 13px;background:#071a30;color:#fff;font:400 13px Arial,Helvetica,sans-serif;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--orange)}
input::placeholder,textarea::placeholder{color:#849ab4}
.field-hint,.selection-status{color:var(--muted);font-size:12px;margin:0 0 13px}
.service-groups{display:grid;gap:9px}
.service-group{border:1px solid #2e4b69;border-radius:10px;background:#091d34;overflow:hidden}
.service-group summary{list-style:none;cursor:pointer;padding:14px 15px;font-size:13px;font-weight:700;display:flex;justify-content:space-between;gap:10px}
.service-group summary::-webkit-details-marker{display:none}
.service-group summary::after{content:"+";font-size:18px;color:var(--orange);margin-left:auto}
.service-group[open] summary::after{content:"−"}
.group-count{color:var(--orange);font-size:11px;margin-left:auto}
.service-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:5px 15px 17px}
.service-option{display:flex;align-items:flex-start;gap:9px;color:#c9d8e9;font-size:12px;line-height:1.5;cursor:pointer}
.service-option input{accent-color:var(--orange);margin:2px 0 0}
.selection-status{margin:12px 0 0}
.description-label{margin-top:17px}
textarea{resize:vertical;min-height:120px}
.privacy-note{font-size:11px;color:#9fb5cc;line-height:1.7;margin:24px 0 15px}
.submit-button{border:0;border-radius:9px;padding:14px 20px;background:linear-gradient(135deg,#ffac59,#ff7833);color:#142032;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 9px 28px #ff783329}
.submit-button:hover{filter:brightness(1.08)}
#form-message{font-size:12px;color:#ffc08e}
.devis-footer{border-top:1px solid #223b57;padding:25px 7%;display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#91a7c1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.devis-header{padding:16px}.devis-brand img{max-width:115px}.back-link{font-size:10px}.devis-main{padding:0 14px;margin:10px auto 55px}.devis-card{border-radius:17px}.form-grid,.service-options{grid-template-columns:1fr}.devis-footer{flex-direction:column;text-align:center}.submit-button{width:100%}}



/* OVIIGI INTERNATIONAL SELECTORS V50157 */
.international-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.international-field>label{font-size:12px;font-weight:700;color:#dce7f5}
.phone-combo{display:flex;gap:7px;min-width:0}
.phone-combo select{width:118px;flex:none;padding:12px 7px}
.phone-combo input{flex:1;min-width:0}
.country-picker{position:relative;min-width:0}
.country-picker>input[type=text]{width:100%}
.country-list{
 position:absolute;z-index:30;top:calc(100% + 5px);
 left:0;right:0;max-height:205px;overflow-y:auto;
 background:#091d34;border:1px solid #456381;
 border-radius:9px;box-shadow:0 16px 35px #0008;
 padding:4px
}
.country-list[hidden]{display:none}
.country-option{
 display:block;width:100%;border:0;background:transparent;
 color:#dce7f5;text-align:left;padding:10px 11px;
 font:12px Arial,Helvetica,sans-serif;
 border-radius:6px;cursor:pointer
}
.country-option:hover,.country-option:focus{
 background:#234464;color:#fff;outline:none
}
.country-option[aria-selected=true]{color:#ffac59}
.country-empty{padding:12px;color:#adc0d6;font-size:12px}
@media(max-width:380px){
 .phone-combo select{width:105px}
}



/* OVIIGI DIAL COMPACT V50159 */
.phone-combo{overflow:visible}
.dial-picker{position:relative;flex:0 0 118px;min-width:0}
.dial-trigger{
 width:100%;height:100%;min-height:43px;
 display:flex;align-items:center;justify-content:space-between;
 gap:5px;padding:10px 9px;
 border:1px solid #35516f;border-radius:9px;
 background:#071a30;color:#fff;
 font:400 12px Arial,Helvetica,sans-serif;
 cursor:pointer;white-space:nowrap
}
.dial-trigger:focus-visible{
 outline:2px solid #ff9347;outline-offset:2px
}
.dial-trigger span:last-child{color:#ff9347}
.dial-popover{
 position:absolute;top:calc(100% + 6px);
 left:0;width:225px;max-width:calc(100vw - 45px);
 z-index:50;padding:7px;
 background:#091d34;border:1px solid #456381;
 border-radius:11px;box-shadow:0 16px 35px #0009
}
.dial-popover[hidden]{display:none}
#oviigi-dial-search{
 width:100%;margin-bottom:6px;
 padding:10px;border-radius:7px;font-size:12px
}
.dial-options{
 max-height:205px;overflow-y:auto;
 overscroll-behavior:contain
}
.dial-option{
 display:flex;align-items:center;gap:9px;
 width:100%;padding:10px 9px;
 border:0;border-radius:7px;
 background:transparent;color:#dce7f5;
 font:12px Arial,Helvetica,sans-serif;
 text-align:left;cursor:pointer
}
.dial-option:hover,.dial-option:focus-visible{
 background:#234464;outline:none
}
.dial-option[aria-selected=true]{color:#ffac59}
.dial-empty{padding:12px;color:#adc0d6;font-size:12px}
@media(max-width:380px){
 .dial-picker{flex-basis:105px}
 .dial-trigger{padding:8px 6px;font-size:11px}
}


/* OVIIGI SMART ROUTES V50162 */
[data-smart][hidden],.advisor-panel[hidden]{display:none!important}
.advisor-panel{margin:19px 0 24px}
.advisor-panel h3{font-size:16px;color:#f1f6ff;margin:0 0 15px}
.advisor-choices{display:grid;gap:10px}
.advisor-choices label{cursor:pointer}
.advisor-choices input{position:absolute;opacity:0}
.advisor-choices span{
 display:block;padding:14px 15px;
 background:#081c32;border:1px solid #34516e;
 border-radius:10px;color:#e0eaf7;font-size:13px
}
.advisor-choices input:checked+span{
 border-color:#ff9347;background:#ff934719;color:#fff
}
.advisor-choices input:focus-visible+span{
 outline:2px solid #ff9347;outline-offset:3px
}


/* OVIIGI PHONE MODAL V50163 */
.oviigi-phone-modal {
  width: min(440px, calc(100% - 28px));
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  padding: 23px;
  border: 1px solid #35516f;
  border-radius: 18px;
  background: rgba(8, 26, 48, 0.86);
  color: #f3f7ff;
  box-shadow: 0 25px 80px rgba(0, 0, 0, 0.48);
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
}
.oviigi-phone-modal::backdrop {
  background: rgba(0, 8, 20, .78);
  backdrop-filter: blur(5px);
}
.phone-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.phone-modal-head h2 {
  margin: 0;
  font-size: 19px;
  color: #fff;
}
.phone-modal-close {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border: 1px solid #35516f;
  border-radius: 9px;
  background: #132d47;
  color: #fff;
  font-size: 24px;
  cursor: pointer;
}
.phone-modal-intro {
  margin: 13px 0 18px;
  color: #b9c9dc;
  font-size: 12px;
  line-height: 1.6;
}
.phone-modal-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 0;
  border-top: 1px solid #29435f;
}
.phone-modal-item > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.phone-modal-item strong {
  font-size: 13px;
  font-weight: 600;
}
.phone-modal-item span {
  color: #b9c9dc;
  font-size: 12px;
}
.phone-modal-item a {
  flex-shrink: 0;
  padding: 9px 12px;
  border-radius: 8px;
  background: #ff9347;
  color: #091a2e;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
}
.phone-modal-item .phone-modal-pending {
  flex-shrink: 0;
  color: #8da4bd;
  font-size: 11px;
}
@media(max-width:400px) {
  .oviigi-phone-modal { padding: 17px; }
  .phone-modal-item strong { font-size: 12px; }
}

/* OVIIGI SMART CONTACT V50164C */
#oviigi-contact-extra[hidden],
#oviigi-message-fields[hidden],
#oviigi-callback-fields[hidden],
.submit-button[hidden]{display:none!important}
#oviigi-contact-extra{margin-top:18px}
#oviigi-contact-extra .description-label{display:block;margin-top:15px}
#oviigi-contact-extra label{display:block}
#oviigi-callback-fields select{margin-top:9px}

/* OVIIGI FOOTER COMPACT V50166C */
.devis-main{
  margin-bottom:24px;
}
.devis-footer{
  padding:14px 7%;
  margin:0;
  min-height:0;
}
@media(max-width:600px){
  .devis-main{
    margin-bottom:18px;
  }
  .devis-footer{
    padding:13px 18px;
    gap:6px;
  }
}

/* OVIIGI TITRE FORMULAIRE COMPACT V50169 */
.devis-intro h1 {
  font-size:clamp(22px,4.8vw,43px) !important;
  line-height:1.15 !important;
  letter-spacing:-.7px;
  white-space:nowrap;
}

@media(max-width:600px) {
  .devis-intro h1 {
    font-size:clamp(19px,4.6vw,29px) !important;
    letter-spacing:-.8px;
  }
}

/* OVIIGI TROIS CHOIX ALIGNS V50169B */
.devis-card .request-types {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  width:100%;
  min-width:0;
  box-sizing:border-box;
}

.devis-card .request-types label {
  min-width:0;
  margin:0 !important;
}

.devis-card .request-types label span {
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  min-width:0;
  min-height:42px;
  box-sizing:border-box;
  padding:7px 5px !important;
  font-size:12px !important;
  line-height:1.2 !important;
  text-align:center;
}

@media(max-width:600px) {
  .devis-card .request-types {
    gap:5px !important;
  }

  .devis-card .request-types label span {
    min-height:40px;
    padding:6px 3px !important;
    font-size:0 !important;
  }

  .devis-card .request-types label:nth-of-type(1) span::after {
    content:"Devis";
    font-size:11px;
  }

  .devis-card .request-types label:nth-of-type(2) span::after {
    content:"Services";
    font-size:11px;
  }

  .devis-card .request-types label:nth-of-type(3) span::after {
    content:"Parler À Un Agent";
    font-size:10px;
    line-height:1.15;
  }
}

/* OVIIGI MOBILE ALIGNMENT V50169D */
@media (max-width:600px) {
  .devis-card fieldset.request-types {
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-auto-flow:row !important;
    gap:5px !important;
    width:100% !important;
    min-width:0 !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
  }

  .devis-card fieldset.request-types > label {
    display:block !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    flex:none !important;
  }

  .devis-card fieldset.request-types > label > span {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    min-height:40px !important;
    padding:6px 2px !important;
    font-size:0 !important;
    text-align:center !important;
    white-space:normal !important;
  }

  .devis-card fieldset.request-types > label:nth-of-type(1) span::after {
    content:"Devis";
    font-size:11px;
  }

  .devis-card fieldset.request-types > label:nth-of-type(2) span::after {
    content:"Services";
    font-size:11px;
  }

  .devis-card fieldset.request-types > label:nth-of-type(3) span::after {
    content:"Parler À Un Agent";
    font-size:10px;
    line-height:1.15;
  }
}
