/* PROSFINA — styles du simulateur et des pages légales (issus du site client, harmonisés) */
:root { --navy: #2C2211; --navy-2: #362B18; --brass:#A8803C; --brass-soft:#DFC9A5; --paper: #FBF9F5; --ink: #2C2211; --muted: #7F7768; --line: rgba(190,149,80,.22); --line-soft: rgba(44,34,17,.10); }
.btn{display: inline-block; background: var(--navy); color: var(--paper); font-family: Inter, system-ui, sans-serif; font-weight: 500; font-size: 15px; letter-spacing: 0.03em; padding: 16px 34px; border-radius: 2px; border: 1px solid var(--navy); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s;}
.btn:hover{background: var(--brass); border-color: var(--brass); color: var(--navy); transform: translateY(-2px);}
.modal-overlay{position: fixed; inset: 0px; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(44,34,17, 0.55); backdrop-filter: blur(6px); opacity: 0; pointer-events: none; transition: opacity 0.3s;}
.modal-overlay.open{opacity: 1; pointer-events: auto;}
.modal{background: var(--paper); border: 1px solid var(--line); border-radius: 6px; max-width: 620px; width: 100%; max-height: 88vh; position: relative; box-shadow: rgba(44,34,17, 0.35) 0px 40px 100px; transform: translateY(16px); transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1); overflow: hidden;}
.modal-overlay.open .modal{transform: none;}
.modal-scroll{overflow-y: auto; max-height: 88vh; padding: 44px 46px;}
.modal-close{position: absolute; top: 14px; right: 18px; z-index: 2; background: none; border: 0px; cursor: pointer; font-size: 30px; line-height: 1; color: var(--muted); transition: color 0.2s; font-family: Inter, system-ui, sans-serif;}
.modal-close:hover{color: var(--navy);}
.modal-title{font-family: Manrope, system-ui, sans-serif; font-weight: 500; font-size: 30px; color: var(--navy); margin: 10px 0px 8px; line-height: 1.12;}
.modal-sub{font-size: 14.5px; color: var(--muted); line-height: 1.6; margin-bottom: 26px; max-width: 48ch;}
.q{margin-bottom: 22px;}
.q-label{font-size: 12.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--navy); font-weight: 600; margin-bottom: 11px;}
.q-sub{font-size: 12px; letter-spacing: 0.02em; color: var(--navy); font-weight: 600; margin: 16px 0px 9px;}
.opts{display: flex; flex-direction: column; gap: 8px;}
.opt{display: flex; align-items: center; gap: 13px; padding: 13px 16px; border: 1px solid var(--line-soft); border-radius: 3px; cursor: pointer; transition: border-color 0.2s, background 0.2s; font-size: 14.5px; color: var(--navy); line-height: 1.35;}
.opt:hover{border-color: var(--brass);}
.opt.sel{background: rgba(190, 149, 80, 0.07); border-color: var(--brass);}
.opt input{position: absolute; opacity: 0; pointer-events: none;}
.opt .box{width: 20px; height: 20px; border: 1.5px solid var(--muted); border-radius: 3px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: border-color 0.2s;}
.opt .box::after{content: ""; width: 10px; height: 10px; background: var(--brass); border-radius: 1px; transform: scale(0); transition: transform 0.2s;}
.opt input:checked ~ .box{border-color: var(--brass);}
.opt input:checked ~ .box::after{transform: scale(1);}
.opt input:checked ~ span:last-child{font-weight: 500;}
.modal-submit{width: 100%; margin-top: 6px; text-align: center; cursor: pointer; border: 0px;}
.modal-legal{font-size: 11.5px; color: var(--muted); font-style: normal; margin-top: 16px; line-height: 1.5; text-align: center;}
.result-eyebrow{font-size: 12px; letter-spacing: 0.26em; text-transform: uppercase; color: var(--brass); font-weight: 500; display: block; margin-bottom: 16px; text-align: center;}
.result-note{text-align: center; font-size: 12.5px; color: var(--muted); font-style: normal; margin-top: 7px; max-width: 44ch; margin-left: auto; margin-right: auto;}
.result-personal{text-align: center; font-family: Manrope, system-ui, sans-serif; font-size: 23px; color: var(--navy); line-height: 1.4; margin: 8px 0px 4px;}
.result-cta{margin-top: 28px; text-align: center;}
.result-cta .btn{width: 100%;}
.result-back{display: block; text-align: center; margin-top: 18px; font-size: 13px; color: var(--muted); cursor: pointer;}
.result-back:hover{color: var(--navy);}
.field{margin-bottom: 16px;}
.flabel{display: block; font-size: 12.5px; letter-spacing: 0.02em; color: var(--navy); font-weight: 600; margin-bottom: 7px;}
.finput{width: 100%; padding: 13px 15px; border: 1px solid var(--line-soft); border-radius: 3px; background: rgb(255, 255, 255); font-family: Inter, system-ui, sans-serif; font-size: 14.5px; color: var(--navy); transition: border-color 0.2s;}
.finput:focus{outline: none; border-color: var(--brass);}
.finput::placeholder{color: rgb(176,170,160);}
.slot-row{display: flex; gap: 10px;}
.slot{flex: 1 1 0%; padding: 12px; border: 1px solid var(--line-soft); border-radius: 3px; background: rgb(255, 255, 255); cursor: pointer; font-family: Inter, system-ui, sans-serif; font-size: 14.5px; color: var(--navy); transition: 0.2s;}
.slot:hover{border-color: var(--brass);}
.slot.active{background: rgba(190, 149, 80, 0.09); border-color: var(--brass); font-weight: 500;}
.legal-overlay{position: fixed; inset: 0px; z-index: 200; background: var(--paper); overflow-y: auto; display: none;}
.legal-overlay.open{display: block;}
.legal-top{position: sticky; top: 0px; background: rgba(251, 249, 245, 0.92); backdrop-filter: saturate(140%) blur(12px); border-bottom: 1px solid var(--line-soft); z-index: 2;}
.legal-top-inner{max-width: 820px; margin: 0px auto; padding: 16px 32px; display: flex; justify-content: space-between; align-items: center;}
.legal-brand{font-family: Manrope, system-ui, sans-serif; font-weight: 600; font-size: 22px; letter-spacing: 0.13em; color: var(--navy);}
.legal-brand small{font-family: Inter, system-ui, sans-serif; display: block; font-size: 8.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--brass); margin-top: 1px;}
.legal-close{background: none; border: 1px solid var(--brass); border-radius: 2px; padding: 9px 18px; cursor: pointer; font-family: Inter, system-ui, sans-serif; font-size: 13px; letter-spacing: 0.03em; color: var(--navy); transition: 0.25s;}
.legal-close:hover{background: var(--navy); color: var(--paper); border-color: var(--navy);}
.legal-body{max-width: 820px; margin: 0px auto; padding: 46px 32px 100px;}
.legal-h1{font-family: Manrope, system-ui, sans-serif; font-weight: 500; font-size: clamp(28px, 4vw, 38px); color: var(--navy); text-align: center; line-height: 1.12; margin-bottom: 8px;}
.legal-sub{text-align: center; font-style: normal; color: var(--brass); font-family: Manrope, system-ui, sans-serif; font-size: 15px; margin-bottom: 30px;}
.legal-id{text-align: center; font-size: 12.5px; color: var(--muted); line-height: 1.75; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); padding: 18px 0px; margin-bottom: 28px;}
.legal-preamble{font-size: 14.5px; color: var(--ink); line-height: 1.72; text-align: justify;}
.art-h{font-family: Manrope, system-ui, sans-serif; font-weight: 600; font-size: 18px; color: var(--navy); margin: 30px 0px 12px; padding-bottom: 7px; border-bottom: 1px solid var(--brass);}
.art-p{font-size: 14px; color: var(--ink); line-height: 1.74; text-align: justify; margin-bottom: 11px;}
.art-ul{margin: 0px 0px 11px; padding: 0px; list-style: none;}
.art-ul li{position: relative; padding-left: 18px; font-size: 14px; color: var(--ink); line-height: 1.7; margin-bottom: 6px; text-align: justify;}
.art-ul li::before{content: ""; position: absolute; left: 0px; top: 9px; width: 5px; height: 5px; background: var(--brass); border-radius: 1px;}
.legal-sign{text-align: right; font-family: Manrope, system-ui, sans-serif; font-weight: 600; color: var(--navy); margin-top: 36px; font-size: 16px;}
@media (max-width: 560px){.legal-body{padding: 34px 22px 80px;}
.legal-top-inner{padding: 14px 22px;}
}
@media (max-width: 560px){.modal-scroll{padding: 38px 24px;}
.modal-title{font-size: 25px;}
}
