/* Pelvactiv — site styles. Page layout lives inline in the HTML; this file holds shared rules. */
/* Fonts: Outfit and Caveat, self-hosted (SIL Open Font License, see /assets/fonts) */
@font-face{font-family:'Outfit';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/outfit-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/outfit-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/outfit-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/outfit-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/outfit-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/caveat-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/caveat-latin-600-normal.woff2) format('woff2')}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font-family:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif;color:#3A1043;background:#F5F0EA;line-height:1.4}
img{max-width:100%}
a{color:#B23A5E}a:hover{color:#3A1043}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.chip input:focus-visible+span{outline:3px solid #E3B341;outline-offset:3px}
[hidden]{display:none!important}
[id]{scroll-margin-top:24px}

.skip-link{position:absolute;left:12px;top:-60px;background:#3A1043;color:#F5F0EA;padding:12px 18px;border-radius:6px;z-index:100;text-decoration:none}
.skip-link:focus{top:12px}

/* header / mobile menu */
.nav-toggle{display:none;font:inherit;font-size:16px;font-weight:500;color:#3A1043;background:transparent;border:2px solid #3A1043;border-radius:999px;padding:10px 20px;min-height:44px;cursor:pointer}
@media (max-width:860px){
  .nav-toggle{display:inline-flex}
  .nav-links{display:none!important;width:100%;flex-direction:column;align-items:flex-start!important;gap:18px!important;padding:12px 0 8px}
  .nav-links.open{display:flex!important}
}

/* FAQ */
summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}
.faq-plus{transition:transform .2s}details[open] .faq-plus{transform:rotate(45deg)}

/* cycle explorer */
.cycle-ring .seg{stroke:#D9C8CE;stroke-width:10;cursor:pointer;pointer-events:stroke;transition:stroke .2s,stroke-width .2s}
.cycle-ring .seg.on{stroke:#B23A5E;stroke-width:14}
.cycle-ring .seg:hover{stroke:#C77A93}
.cycle-ring .seg.on:hover{stroke:#B23A5E}
.phase-btn{font:inherit;font-size:16px;font-weight:500;padding:12px 20px;min-height:44px;border-radius:999px;cursor:pointer;border:2px solid #3A1043;background:transparent;color:#3A1043}
.phase-btn[aria-pressed="true"]{background:#3A1043;color:#F5F0EA}

/* forms (markup comes from the live site's forms, so the backend and site.js keep working) */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-card{flex:999 1 560px;min-width:0;background:#FFFFFF;border:1px solid #E4D9DC;padding:40px}
.form-card--wide{flex:none;width:100%}
@media (max-width:600px){.form-card{padding:24px 18px}}
.form-card form{display:flex;flex-direction:column;gap:26px}
.progress{display:flex;gap:6px}.progress span{flex:1;height:6px;border-radius:3px;background:#EFDFE0}.progress span.done{background:#B23A5E}
.progress-label{margin:0;font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8C2E4B}
.step{display:flex;flex-direction:column;gap:26px}
.step[hidden]{display:none!important}
.row-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.label,.form-card legend{font-size:17px;font-weight:600;color:#3A1043}
.form-card fieldset{border:none;margin:0;padding:0;min-width:0}
.form-card legend{padding:0;margin-bottom:12px}
.opt{font-size:14px;font-weight:400;color:#6E4B68}
.hint{display:block;font-size:14px;font-weight:400;color:#6E4B68;margin-top:2px}
.form-card input[type=text],.form-card input[type=email],.form-card input[type=number],.form-card input[type=date],.form-card input[type=url],.form-card select,.form-card textarea{font:inherit;font-size:17px;padding:12px 14px;min-height:48px;border:1.5px solid #B79AAE;border-radius:6px;background:#FFFFFF;color:#3A1043;width:100%}
.form-card textarea{min-height:110px;resize:vertical}
.choices,.scale{display:flex;flex-wrap:wrap;gap:8px}
.choices label,.scale label{position:relative;display:inline-flex}
.choices input,.scale input{position:absolute;opacity:0;width:1px;height:1px}
.choices span,.scale span{font-size:15px;font-weight:500;padding:10px 16px;min-height:44px;min-width:44px;justify-content:center;display:inline-flex;align-items:center;border-radius:999px;cursor:pointer;border:2px solid #CDB9C4;background:#FFFFFF;color:#3A1043;transition:background .15s,border-color .15s}
.choices span:hover,.scale span:hover{border-color:#3A1043}
.choices input:checked+span,.scale input:checked+span{background:#3A1043;border-color:#3A1043;color:#F5F0EA}
.choices input:focus-visible+span,.scale input:focus-visible+span{outline:3px solid #E3B341;outline-offset:2px}
.scale-ends{display:flex;justify-content:space-between;max-width:620px;font-size:14px;color:#6E4B68;margin-top:8px}
.check{display:flex;gap:12px;font-size:16px;line-height:1.45;margin-bottom:12px}
.check input{width:22px;height:22px;flex:0 0 22px;accent-color:#3A1043;margin-top:1px}
.small{font-size:14px}.muted{color:#6E4B68}
.note{background:#EFDFE0;border-left:4px solid #B23A5E;padding:14px 16px;font-size:16px;margin:0 0 20px}
.error-msg{margin:6px 0 0;color:#9B1C1C;font-size:15px;font-weight:500}
.form-status{margin:0;font-size:16px}.form-status.err{padding:14px 16px;background:#FBE9EA;border-left:4px solid #B3261E;color:#5C0E0A}
.form-nav{display:flex;flex-wrap:wrap;gap:14px;align-items:center;border-top:1px solid #E4D9DC;padding-top:24px}
.btn{font:inherit;font-size:17px;font-weight:600;padding:14px 30px;min-height:48px;border-radius:999px;cursor:pointer;border:2px solid #3A1043;background:#3A1043;color:#F5F0EA;text-decoration:none;display:inline-flex;align-items:center}
.btn.ghost{background:transparent;color:#3A1043}
.btn.sun{background:#B23A5E;border-color:#B23A5E;color:#FFFFFF}
.btn[disabled]{opacity:.6;cursor:wait}
.btn[hidden]{display:none!important}
.success{display:flex;flex-direction:column;gap:14px;outline:none}
.success h2{margin:0;font-size:32px;font-weight:600}
.success p{margin:0;font-size:18px;line-height:1.55;color:#4E2A55}
.success .small{font-size:15px}
.step-item{display:flex;align-items:center;gap:14px}
.step-dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;flex:0 0 34px;border:2px solid #CDB9C4;color:#6E4B68}
.step-name{font-size:17px;color:#6E4B68}
.step-item.done .step-dot{background:#3A1043;border-color:#3A1043;color:#FFFFFF}
.step-item[aria-current="step"] .step-dot{background:#B23A5E;border-color:#3A1043;color:#FFFFFF}
.step-item[aria-current="step"] .step-name{font-weight:600;color:#3A1043}
.prose{display:flex;flex-direction:column;gap:12px;font-size:18px;line-height:1.65;color:#3A1043}
.prose p,.prose ul{margin:0}.prose ul{padding-left:22px;display:flex;flex-direction:column;gap:6px}

/* small screens: tame the biggest type and padding set inline */
@media (max-width:600px){
  section[style*="padding: 96px 24px"],div[style*="padding: 96px 24px"]{padding-top:64px!important;padding-bottom:64px!important}
  h2[style*="font-size: 44px"],h2[style*="font-size: 40px"]{font-size:32px!important}
  p[style*="font-size: 112px"]{font-size:80px!important}
  p[style*="font-size: 52px"]{font-size:38px!important}
  p[style*="font-size: 48px"]{font-size:34px!important}
  div[style*="padding-left: 40px"][style*="border-left"]{border-left:none!important;padding-left:0!important}
  img[style*="height: 520px"]{height:380px!important}
}
