/* Adaptation commune : téléphone, tablette, orientation paysage et zoom. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:20px}
img{max-width:100%}
main,section,article,.hero-copy,.sim-controls,.sim-result,.field,.input-unit,.form-grid>*,.summary-box>*,.product-section>*,.reading-grid>*{min-width:0}
p,h1,h2,h3,.notice,.email-preview,.business-address{overflow-wrap:break-word}
.button{white-space:normal;text-align:center;line-height:1.5;min-height:44px}
.menu-toggle,.close-dialog{flex-shrink:0;min-width:44px;min-height:44px;touch-action:manipulation}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:rgba(114,47,64,.14)}
.mobile-sim-link{display:none}
.product-facts{flex-wrap:wrap}
.table-wrap{max-width:100%;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.table-wrap table{min-width:580px}
.email-preview{overflow-wrap:anywhere}
dialog{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.dialog-head{gap:15px}
html.application-open{overflow:hidden}
@media(max-width:1100px){
 .nav{position:relative;height:80px;padding:0 28px;gap:20px}
 .nav .brand-name.company-name{font-size:18px}
 .nav-links{display:none;position:absolute;inset:100% 0 auto;background:#fff;z-index:30;padding:14px 28px 22px;box-shadow:0 12px 22px #292c2b14;border-top:1px solid var(--line);flex-direction:column;align-items:stretch;gap:2px;max-height:calc(100dvh - 90px);overflow-y:auto}
 .nav-links.open{display:flex}
 .nav-links a{display:flex;align-items:center;min-height:46px;padding:10px 12px;font-size:15px;border-radius:5px}
 .nav-links a.active{background:var(--cream)}
 .nav-links a.active:after{display:none}
 .nav>.button{margin-left:auto;font-size:13px;padding:11px 18px;gap:16px}
 .menu-toggle{display:grid;place-items:center;padding:0;font-size:25px;border-radius:5px}
 .menu-toggle[aria-expanded=true]{background:var(--cream)}
 .hero-inner,.product-section,.contact-grid,.approach-inner{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero-copy{padding:45px 28px}
 .hero-copy h1{font-size:clamp(40px,5.2vw,56px)}
 .simulator{grid-template-columns:minmax(0,1fr) 270px}
 .sim-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .range-heading{flex-wrap:wrap;gap:8px}
 .range-heading .input-unit{margin-left:auto}
 .offer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
 .card-content{padding:20px}
 .product-section{gap:32px}
 .contact-grid{gap:35px}
}
@media(max-width:900px){
 .simulator{grid-template-columns:minmax(0,1fr)}
 .sim-result{padding:25px}
 .sim-result .button{width:100%}
 .monthly{font-size:40px}
 .offer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .offer-card:last-child{grid-column:1/-1;max-width:100%}
 .offer-card:last-child .card-image{height:250px}
 .approach-inner{gap:35px}
 .hero-buttons{align-items:flex-start;flex-direction:column;gap:15px}
 .image-note{left:18px;right:18px;padding:14px;max-width:290px}
}
@media(max-width:760px){
 .wrap{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
 .nav{height:76px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));gap:12px}
 .nav-links{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
 .hero-inner,.product-section,.contact-grid,.approach-inner,.reading-grid{grid-template-columns:minmax(0,1fr)}
 .hero-copy{padding:36px 20px}
 .hero-copy h1{font-size:clamp(38px,8.7vw,52px);letter-spacing:-1.8px;line-height:1.16}
 .hero-copy>p{font-size:16px;line-height:1.8}
 .hero-buttons{flex-direction:row;align-items:center;flex-wrap:wrap;gap:15px 20px}
 .hero-buttons .button{font-size:14px}
 .hero-buttons .text-link{font-size:13px;min-height:44px}
 .hero-checks{flex-wrap:wrap;gap:10px 20px;font-size:12px;margin-top:18px}
 .hero-image{height:clamp(260px,72vw,400px);min-height:0;margin-left:20px;border-bottom-left-radius:50px}
 .hero-image>img{object-position:center 50%}
 .image-note{bottom:30px;font-size:12px;right:auto;max-width:calc(100% - 36px)}
 .image-note .note-icon{flex-shrink:0}
 .offer-grid{grid-template-columns:minmax(0,1fr)}
 .offer-card:last-child{grid-column:auto}
 .card-image,.offer-card:last-child .card-image{height:clamp(190px,56vw,300px)}
 .product-section>img{height:auto;aspect-ratio:3/2;max-height:380px}
 .product-section:nth-child(even)>img{order:0}
 .page-hero h1{font-size:clamp(30px,7vw,40px);line-height:1.23;letter-spacing:-1px}
 .page-hero p,.article-content p,.reading-grid p,.local-context p,.comparison-box p,.product-section p,.contact-grid p,.approach p{font-size:15px;line-height:1.9}
 .section-heading h2,.faq h2{font-size:clamp(22px,5.5vw,28px)}
 .eyebrow{line-height:1.7}
 .section-heading{flex-wrap:wrap;align-items:flex-start;gap:12px}
 .section-heading>.text-link{margin:0;font-size:13px;min-height:44px;gap:10px}
 .field input:not([type=range]),.field select,.contact-form textarea{font-size:16px;min-width:0;max-width:100%;min-height:48px}
 .field label,.field-label{font-size:13px;line-height:1.6}
 .range-heading input[type=number]{height:46px!important;max-width:135px;font-size:16px}
 .input-unit{font-size:14px;flex-shrink:0}
 .sim-controls{padding:22px 20px}
 .range-heading{flex-wrap:nowrap}
 input[type=range]{appearance:none;-webkit-appearance:none;height:36px;margin:10px 0 0;background:transparent;touch-action:pan-y}
 input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:#d6c2c8}
 input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:24px;height:24px;margin-top:-10px;background:var(--wine);border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--wine)}
 input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:#d6c2c8}
 input[type=range]::-moz-range-thumb{width:19px;height:19px;background:var(--wine);border:3px solid #fff;border-radius:50%}
 .range-ends{font-size:11px}
 .sim-result>span{font-size:13px}
 .sim-result .button{font-size:15px;min-height:48px}
 .rate-line{flex-wrap:wrap;gap:7px 15px;font-size:12px}
 .credit-warning{font-size:11px;line-height:1.8}
 summary{min-height:48px;align-items:center;gap:16px;font-size:14px;line-height:1.7}
 summary span{flex-shrink:0}
 details p{font-size:14px;padding-right:0}
 .card-content h3{gap:15px}
 .card-content p{font-size:15px}
 .card-link{font-size:13px}
 .contact-form{gap:20px}
 .contact-form>.button{width:100%;font-size:15px}
 .check-label{font-size:13px;line-height:1.8}
 .check-label input{width:21px;height:21px;flex-shrink:0;margin-top:3px}
 dialog{width:calc(100% - 24px);max-width:860px;margin:auto;border-radius:12px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}
 .dialog-head{padding:12px 16px}
 .dialog-head .brand-name.company-name{font-size:16px}
 .dialog-body{padding:20px 18px max(24px,env(safe-area-inset-bottom))}
 .dialog-body h2{font-size:clamp(23px,6vw,29px);line-height:1.35}
 .dialog-body p,.dialog-body .notice{overflow-wrap:anywhere}
 .form-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 .summary-box{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:20px 15px}
 .summary-box span{font-size:12px;line-height:1.6}
 .summary-box strong{font-size:clamp(16px,4.5vw,21px);overflow-wrap:anywhere}
 .notice{font-size:12px;line-height:1.85}
 .dialog-actions{flex-wrap:wrap;gap:10px}
 .dialog-actions .button{min-height:48px;font-size:14px;flex:1 1 170px}
 .back-button{font-size:13px;min-height:44px}
 .downloads{gap:10px}
 .downloads .button{width:100%;font-size:14px}
 .table-wrap{max-height:45vh;max-height:45dvh;touch-action:pan-x pan-y}
 .email-preview{padding:15px;font-size:13px}
 #footer{padding-bottom:env(safe-area-inset-bottom)}
 #footer .footer-links a{min-height:36px;font-size:13px;display:flex;align-items:center}
 #footer .business-address{font-size:14px}
}
@media(max-width:600px){
 .nav>.button{display:none}
 .nav .menu-toggle{margin-left:auto}
 .nav-links .mobile-sim-link{display:flex;background:var(--wine);color:#fff;margin-top:12px;justify-content:center;font-weight:600}
 .sim-fields{grid-template-columns:minmax(0,1fr);gap:25px}
 .summary-box{grid-template-columns:minmax(0,1fr)}
 .summary-box>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
 .summary-box span{margin:0;flex:1 1 110px}
 .summary-box strong{max-width:100%}
}
@media(max-width:360px){
 .wrap{padding-left:16px;padding-right:16px}
 .nav{padding-left:16px;padding-right:16px}
 .nav .brand-name.company-name{font-size:16px}
 .hero-copy{padding:30px 16px}
 .hero-copy h1{font-size:36px}
 .hero-image{margin-left:16px;height:260px}
 .hero-buttons{align-items:stretch;flex-direction:column}
 .hero-buttons .button{width:100%}
 .hero-buttons .text-link{justify-content:center}
 .image-note{font-size:11px;padding:12px;gap:9px}
 .sim-controls,.sim-result{padding:20px 16px}
 .dialog-body{padding-left:15px;padding-right:15px}
 .dialog-head .brand-name.company-name{font-size:14px}
 .dialog-head .brand-mark{width:26px;transform:scale(.8);transform-origin:left center;margin-right:-4px}
 .dialog-actions{flex-direction:column;align-items:stretch}
 .dialog-actions .button{flex:auto;width:100%}
 #footer .footer-links{grid-template-columns:minmax(0,1fr)}
}
@media(max-height:500px) and (orientation:landscape){
 dialog{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}
 .dialog-head{padding-top:8px;padding-bottom:8px}
 .nav-links{max-height:calc(100dvh - 80px)}
}
@media(hover:none){.button:hover,.offer-card:hover{transform:none}.offer-card:hover img{transform:none}}

/* Salaire mensuel et situation professionnelle sur la même ligne */
.form-row-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px}
.form-row-2 .field select,.form-row-2 .field input{min-width:0;width:100%}
@media(max-width:600px){.form-row-2{gap:12px}.form-row-2 .field label{font-size:12px}}
@media(max-width:340px){.form-row-2{grid-template-columns:minmax(0,1fr)!important}}

/* Pied de page sombre */
#footer,footer#footer{background:#2b2326;border-top:1px solid #3d3136;color:#d9cfd2}
#footer .brand{color:#f7f5f0}
#footer .brand-mark:before,#footer .brand-mark:after{background:#e7cfd6}
#footer .footer-links h2{color:#f7f5f0}
#footer .footer-links a,#footer .footer-bottom a{color:#cfc4c8}
#footer .business-address{color:#bfb3b8}
#footer .business-address a{color:#f0dfe4}
#footer .footer-notices{border-top-color:#3d3136}
#footer .footer-credit{color:#ebe3e6}
#footer .demo-note{color:#a99ea3}
#footer .footer-bottom{border-top-color:#3d3136;color:#a99ea3}
#footer a:hover{color:#ffffff}
#footer .footer-links a:focus-visible,#footer .business-address a:focus-visible,#footer .footer-bottom a:focus-visible,#footer .brand:focus-visible{outline:2px solid #e7cfd6;outline-offset:4px}
