/* Pétanque+ public site: shared shell, product landing and reference pages. */
:root { --blue:#3952ff; --blue-deep:#2840db; --violet:#7652dc; --sky:#2ba6d9; --teal:#00878d; --ink:#17213c; --muted:#59647b; --line:#e1e6f0; --surface:#fff; --soft:#f5f7fc; --danger:#b91c35; --header-height:76px; }
* { box-sizing:border-box; }
html { min-height:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 20px); }
body { margin:0; background:var(--surface); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:16px; line-height:1.65; }
a { color:inherit; text-decoration:none; }
img,svg { display:block; max-width:100%; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
button,a,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--teal); outline-offset:5px; }
::selection { background:#d9e7ff; color:var(--ink); }
.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; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; padding:12px 20px; background:white; border:2px solid var(--blue); border-radius:8px; }
.skip-link:focus { top:10px; }
.site-header { position:sticky; top:0; z-index:40; background:rgba(255,255,255,.94); border-bottom:1px solid rgba(23,33,60,.07); backdrop-filter:blur(16px); }
.site-header.is-scrolled { box-shadow:0 4px 24px #17213c0b; }
.nav-shell { width:min(100% - 64px,1400px); min-height:var(--header-height); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:10px; font-size:24px; font-weight:750; white-space:nowrap; }
.brand-icon { width:40px; height:40px; object-fit:contain; flex-shrink:0; }
.nav-links { display:flex; align-items:center; gap:24px; font-size:14px; font-weight:550; }
.nav-links>a:hover { color:var(--blue-deep); }
.language-switcher { display:flex; align-items:center; gap:7px; padding:5px 8px; border:1px solid var(--line); border-radius:8px; font-size:12px; }
.language-switcher a { padding:3px; color:var(--muted); }
.language-switcher a.is-active { color:var(--blue-deep); font-weight:800; }
.nav-links .nav-cta { padding:11px 18px; color:white; background:var(--blue-deep); border-radius:9px; white-space:nowrap; }
.nav-links .nav-cta:hover { color:white; background:#2135bd; }
.nav-toggle { display:none; width:44px; height:44px; padding:10px; background:transparent; border:1px solid var(--line); border-radius:9px; align-items:center; justify-content:center; }
.nav-toggle-lines,.nav-toggle-lines::before,.nav-toggle-lines::after { width:20px; height:2px; background:var(--ink); position:relative; display:block; }
.nav-toggle-lines::before,.nav-toggle-lines::after { content:""; position:absolute; }
.nav-toggle-lines::before { top:-6px; } .nav-toggle-lines::after { top:6px; }
.section-shell,.footer-grid { width:min(100% - 64px,1240px); margin-inline:auto; }
.section-shell>* { min-width:0; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { line-height:1.15; letter-spacing:-.035em; }
h2 { font-size:clamp(28px,3vw,40px); font-weight:750; }
h3 { font-size:21px; font-weight:700; }
p { color:var(--muted); }
.eyebrow { margin:0 0 14px; color:var(--blue-deep); text-transform:uppercase; font-size:11px; letter-spacing:.13em; font-weight:800; }
.button { min-height:48px; display:inline-flex; justify-content:center; align-items:center; gap:10px; padding:13px 21px; border:1px solid transparent; border-radius:9px; font-size:14px; font-weight:700; line-height:1.35; text-align:center; transition:box-shadow .2s,transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); box-shadow:0 6px 16px #17213c12; }
.button-primary { background:linear-gradient(115deg,var(--blue-deep),#6140c6); color:white; }
.button-secondary,.button-outline-dark { background:white; color:var(--ink); border-color:#d5dbea; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:27px; }
.landing-hero { padding:70px 0 64px; background:radial-gradient(ellipse at 82% 28%,#e7e3ff 0,transparent 55%),radial-gradient(ellipse at 44% 100%,#e2f6fc,transparent 60%),#f8faff; border-bottom:1px solid var(--line); }
.hero-grid { display:grid; grid-template-columns: .95fr 1.25fr; align-items:center; gap:48px; }
.hero-grid h1 { font-size:clamp(38px,3.5vw,55px); font-weight:800; letter-spacing:-.05em; }
.hero-grid h1 span { display:block; margin-top:8px; color:var(--blue-deep); }
.lead { font-size:17px; line-height:1.7; max-width:500px; margin-top:22px; }
.trust-list { width:max-content; max-width:calc(100% + 48px); margin:23px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; list-style:none; font-size:12px; color:var(--muted); }
.trust-list li { display:flex; align-items:center; gap:6px; }
.trust-list li::before { content:"✓"; color:var(--teal); font-weight:800; }
.trust-list .hero-download-total { display:inline-flex; align-items:center; gap:9px; margin-left:3px; color:var(--ink); font-weight:650; white-space:nowrap; }
.trust-list .hero-download-total::before { content:""; width:8px; height:8px; flex:0 0 8px; margin-inline:5px; border-radius:50%; background:#69e1c0; box-shadow:0 0 0 5px #69e1c029; }
.hero-visual { min-width:0; position:relative; }
.app-window { overflow:hidden; border:1px solid #d3dbea; border-radius:13px; background:#f6f7fa; box-shadow:0 18px 46px #2b38691a,0 2px 8px #2b386909; }
.app-window img { width:100%; height:auto; }
.window-bar { display:flex; gap:5px; align-items:center; height:28px; padding:0 12px; border-bottom:1px solid #dce2ee; background:#fff; }
.window-bar i { width:6px; height:6px; border:1px solid #b8c4d6; border-radius:100%; }
.window-bar i:first-child { background:#b4e5ed; border-color:#b4e5ed; }
.window-bar span { margin-left:8px; color:#66728a; font-size:10px; font-weight:600; }
.visual-tags { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:18px; }
.visual-tags span { padding:7px 11px; font-size:11px; font-weight:650; color:#364671; background:#ffffffd9; border:1px solid #dce3f2; border-radius:8px; box-shadow:0 5px 16px #2b386909; }
.landing-section { padding:48px 0; }
.section-heading { max-width:930px; margin-bottom:28px; }
.overview .section-heading,.pricing-centered .section-heading { margin-inline:auto; text-align:center; }
.overview { background:white; }
.overview .app-window { max-width:960px; margin:auto; }
.three-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.overview .three-cards { margin-top:24px; }
.mini-card,.benefit-card { padding:25px; border:1px solid var(--line); border-radius:13px; background:white; }
.mini-card p,.benefit-card p { margin-top:12px; font-size:14px; }
.mini-card { transition:border-color .2s,box-shadow .2s; }
.mini-card:hover { border-color:#bccaff; box-shadow:0 6px 24px #2b38690a; }
.card-icon { display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin-bottom:18px; border-radius:10px; color:var(--blue-deep); background:#eff2ff; font-size:24px; }
.step-row { display:grid; grid-template-columns:.7fr 1.3fr; gap:52px; align-items:center; padding:24px 0; }
.step-row:nth-of-type(even) { grid-template-columns:1.3fr .7fr; }
.step-row:nth-of-type(even) .step-copy { order:2; }
.step-number { display:inline-block; color:var(--blue-deep); background:#eff2ff; padding:5px 11px; border-radius:8px; font-size:13px; font-weight:750; margin-bottom:15px; }
.step-copy h3 { font-size:28px; }
.step-copy p { margin-top:15px; }
.step-copy .step-detail { font-size:13px; padding-left:12px; border-left:2px solid #55c4d4; }
.insight-band { position:relative; overflow:hidden; padding:58px 24px; color:white; background:linear-gradient(115deg,#263ed8,#6843bd); }
.insight-band::before,.insight-band::after { content:""; position:absolute; width:560px; height:210px; border:1px solid #ffffff15; border-radius:50%; transform:rotate(-28deg); pointer-events:none; }
.insight-band::before { top:-65px; left:-155px; box-shadow:0 0 0 28px #ffffff06,0 0 0 55px #ffffff05; }
.insight-band::after { right:-160px; bottom:-65px; box-shadow:0 0 0 28px #70eaff0b,0 0 0 55px #70eaff06; }
.insight-content { position:relative; z-index:1; max-width:820px; margin:auto; text-align:center; }
.insight-content .eyebrow { color:#bef1ff; }
.insight-content h2 { font-size:clamp(32px,4vw,48px); }
.insight-content p:not(.eyebrow) { margin-top:18px; color:#edf0ff; font-size:16px; }
.soft-section { background:var(--soft); border-block:1px solid #edf0f6; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.comparison { border:1px solid var(--line); border-radius:13px; overflow:hidden; }
.comparison-labels { display:grid; grid-template-columns:1fr 1fr; padding:16px 26px; color:var(--muted); background:var(--soft); font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.comparison-labels span:last-child { padding-left:28px; color:var(--blue-deep); }
.comparison-row { display:grid; grid-template-columns:1fr 56px 1fr; align-items:center; gap:12px; padding:18px 26px; border-top:1px solid var(--line); font-size:15px; }
.comparison-row>span:first-child { color:var(--muted); }
.comparison-row>span:nth-child(2) { color:var(--teal); text-align:center; }
.comparison-row strong { font-weight:600; }
.pricing-centered { text-align:center; }
.single-price { width:min(100%,470px); margin:auto; padding:32px; border:1px solid #c9d4fa; border-radius:18px; background:white; box-shadow:0 14px 42px #2b386911; position:relative; }
.single-price::before { content:""; position:absolute; top:-1px; left:26px; right:26px; height:3px; background:linear-gradient(90deg,var(--blue),var(--violet),#5ed1e5); border-radius:3px; }
.single-price .eyebrow { font-size:15px; text-transform:none; letter-spacing:0; }
.price { color:var(--ink); font-size:32px; line-height:1.2; }
.price span { font-size:72px; letter-spacing:-.05em; font-weight:800; }
.single-price ul { list-style:none; padding:0; margin:26px 0; display:grid; gap:9px; text-align:left; width:max-content; max-width:100%; margin-inline:auto; }
.single-price li::before { content:"✓"; margin-right:12px; color:var(--teal); }
.single-price .button { width:100%; }
.additional-license { margin-top:22px; font-size:14px; }
.additional-license strong { color:var(--ink); }
.demo-download { padding-block:40px; }
.download-panel { padding:32px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:40px; border:1px solid #d1e3f2; border-radius:16px; background:linear-gradient(110deg,#f2fbfd,#f1f1ff); }
.download-panel h2 { max-width:720px; font-size:30px; }
.download-panel p:not(.eyebrow) { margin-top:12px; font-size:14px; }
.download-panel>div:last-child { text-align:center; }
.download-panel .download-total { font-size:12px; }
.faq-layout { display:grid; grid-template-columns:.65fr 1.35fr; gap:60px; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { cursor:pointer; padding:18px 36px 18px 0; position:relative; font-size:16px; font-weight:650; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; right:8px; color:var(--blue-deep); font-size:22px; top:12px; font-weight:400; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details p { padding:0 30px 20px 0; font-size:14px; }
.compact-about { padding-block:38px; }
.compact-about .section-heading { margin-bottom:20px; }
.compact-about h2 { font-size:27px; }
.compact-about h3 { font-size:17px; }
.compact-about article p { margin-top:10px; font-size:13px; }
.contact-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:64px; }
.contact-layout>div>p:not(.eyebrow) { margin-top:18px; max-width:370px; }
.contact-email { display:inline-block; color:var(--blue-deep); margin-top:22px; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.demo-form { padding:25px; border:1px solid var(--line); border-radius:14px; background:white; box-shadow:0 8px 32px #2b386908; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
.form-grid .organization-field { grid-column:1 / -1; }
.demo-form label { display:grid; gap:4px; min-width:0; }
.demo-form label>span:first-child { color:var(--ink); font-size:12px; font-weight:650; }
.demo-form input,.demo-form textarea { width:100%; min-width:0; padding:9px 11px; border:1px solid #cfd7e6; border-radius:7px; color:var(--ink); background:#fbfcff; }
.demo-form input { height:42px; }
.demo-form textarea { resize:vertical; min-height:90px; }
.message-field { margin-top:12px; }
.demo-form .button { margin-top:15px; }
.field-validation:empty { display:none; }
.field-validation,.field-validation-error { color:var(--danger); font-size:12px; }
.input-validation-error { border-color:var(--danger) !important; }
.form-success,.form-notice { padding:12px 15px; margin-bottom:18px; border-radius:8px; font-size:14px; }
.form-success { color:#145d49; background:#e5f7ee; } .form-notice { color:#764716; background:#fff4dc; }
.form-hint { font-size:12px; margin-bottom:14px; }
.site-footer { border-top:1px solid #dee5f3; background:#f3f6fc; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr .8fr 1fr; gap:32px; padding:38px 0; font-size:13px; }
.brand-footer { font-size:22px; }
.site-footer p { margin-top:12px; }
.site-footer .footer-label { font-size:11px; color:var(--ink); text-transform:uppercase; letter-spacing:.08em; margin:0 0 16px; font-weight:750; }
.site-footer a:not(.brand) { display:block; margin-top:7px; color:var(--muted); overflow-wrap:anywhere; }
.site-footer a:hover { color:var(--blue-deep); }
.documentation-hero,.versions-hero,.legal-hero { padding:56px 0; background:radial-gradient(ellipse at 85% 10%,#e8e6fa,transparent 65%),linear-gradient(120deg,#f8faff,#eef7fb); border-bottom:1px solid var(--line); }
.documentation-hero h1,.versions-hero h1,.legal-hero h1 { font-size:clamp(32px,4vw,48px); }
.documentation-hero p:not(.eyebrow),.versions-hero p:not(.eyebrow),.legal-hero p:not(.eyebrow) { margin-top:18px; max-width:700px; }
.documentation-hero-grid { display:grid; grid-template-columns:1.4fr .8fr; align-items:center; gap:64px; }
.documentation-summary { padding:25px; background:#ffffffd9; border:1px solid var(--line); border-radius:14px; }
.documentation-summary h2 { font-size:21px; }
.documentation-summary ul { padding-left:20px; color:var(--muted); font-size:14px; margin-bottom:0; }
.documentation-summary li+li { margin-top:8px; }
.documentation-viewer,.versions-content,.legal-content { padding:44px 0 64px; }
.viewer-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:24px; }
.viewer-header h2 { font-size:28px; }
.pdf-frame { width:100%; height:780px; max-height:85vh; border:1px solid var(--line); border-radius:12px; background:var(--soft); }
.versions-shell { max-width:980px; }
.versions-intro { margin-bottom:28px; }
.versions-intro h2 { font-size:26px; margin-bottom:12px; }
.release-card { padding:28px; border:1px solid var(--line); border-radius:14px; box-shadow:0 4px 20px #2b386908; }
.release-card+.release-card { margin-top:18px; }
.release-card:first-of-type { border-color:#c5d0fa; }
.release-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.release-label { font-size:11px; color:var(--blue-deep); font-weight:750; letter-spacing:.1em; text-transform:uppercase; margin-bottom:7px; }
.release-header h2 { font-size:32px; }
.release-date { margin-top:8px; font-size:13px; }
.release-badge { padding:5px 10px; background:#edf1ff; color:var(--blue-deep); border-radius:20px; font-size:11px; font-weight:750; }
.commit-list { margin:20px 0 0; padding:0; list-style:none; }
.commit-list li { display:grid; grid-template-columns:65px 1fr; gap:16px; border-top:1px solid var(--line); padding:12px 0; color:var(--muted); font-size:14px; }
.commit-type { padding:3px 8px; background:#edf1ff; color:var(--blue-deep); border-radius:6px; font-size:11px; width:max-content; height:max-content; font-weight:700; }
.legal-shell { max-width:960px; }
.legal-content article+article { margin-top:32px; }
.legal-content h2 { font-size:24px; margin-bottom:14px; }
.legal-content p+p { margin-top:14px; }
.legal-content a { color:var(--blue-deep); text-decoration:underline; overflow-wrap:anywhere; }
.legal-content ul { color:var(--muted); padding-left:20px; }
.legal-content dl { margin-top:20px; }
.legal-content dl div { display:grid; grid-template-columns:220px 1fr; gap:20px; padding:12px 0; border-bottom:1px solid var(--line); }
.legal-content dt { font-weight:650; } .legal-content dd { margin:0; color:var(--muted); overflow-wrap:anywhere; }
@media (max-width:1100px) {
 .nav-shell { width:calc(100% - 40px); gap:15px; } .nav-links { gap:15px; font-size:12px; } .brand { font-size:21px; }
 .hero-grid { gap:30px; } .hero-grid h1 { font-size:40px; } .hero-actions .button { font-size:13px; padding-inline:14px; }
 .trust-list { width:100%; max-width:100%; }
 .step-row,.contact-layout { gap:32px; } .faq-layout { gap:36px; }
}
@media (max-width:900px) {
 :root { --header-height:68px; } .nav-toggle { display:inline-flex; }
 .nav-links { position:absolute; top:100%; left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:18px 24px; background:#fff; border-bottom:1px solid var(--line); max-height:calc(100dvh - var(--header-height)); overflow-y:auto; font-size:15px; }
 .nav-links.is-open { display:flex; } .nav-links>a { padding:12px 0; } .language-switcher { width:max-content; margin:10px 0; } .nav-links .nav-cta { padding:13px; text-align:center; }
 .hero-grid { grid-template-columns:1fr; gap:30px; } .landing-hero { padding:40px 0; } .hero-grid h1 { font-size:44px; max-width:650px; } .lead { max-width:620px; } .hero-visual { max-width:760px; width:100%; margin:auto; }
 .landing-section { padding:42px 0; } .step-row,.step-row:nth-of-type(even) { grid-template-columns:.8fr 1.2fr; gap:25px; } .step-row:nth-of-type(even) .step-copy { order:0; }
 .step-copy h3 { font-size:23px; } .step-copy p { font-size:14px; } .step-copy .step-detail { font-size:12px; }
 .three-cards,.feature-grid { gap:12px; } .mini-card,.benefit-card { padding:20px; } .mini-card h3,.benefit-card h3 { font-size:18px; }
 .faq-layout,.contact-layout { grid-template-columns:1fr; gap:24px; } .faq-layout .section-heading { margin-bottom:0; }
 .contact-layout>div>p:not(.eyebrow) { max-width:600px; } .download-panel { grid-template-columns:1fr; gap:20px; } .download-panel>div:last-child { text-align:left; }
 .documentation-hero-grid { grid-template-columns:1fr; gap:25px; } .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
 .section-shell,.footer-grid { width:calc(100% - 36px); } .nav-shell { width:calc(100% - 32px); }
 .hero-grid h1 { font-size:36px; } .hero-grid .eyebrow { font-size:10px; } .lead { font-size:16px; }
 .hero-actions { gap:10px; } .hero-actions .button { flex:1 1 220px; }
 .trust-list { font-size:11px; gap:8px 14px; } .visual-tags { gap:6px; } .visual-tags span { font-size:10px; padding:5px 8px; }
 .three-cards,.feature-grid,.step-row,.step-row:nth-of-type(even) { grid-template-columns:1fr; }
 .step-row { gap:20px; padding:20px 0; } .step-copy h3 { font-size:26px; } .step-copy p { font-size:15px; }
 .overview .three-cards { gap:10px; } .overview .mini-card { padding:17px 20px; } .overview .mini-card p { margin-top:6px; }
 .comparison-labels { padding:12px 16px; font-size:10px; } .comparison-labels span:last-child { padding-left:14px; }
 .comparison-row { grid-template-columns:1fr 18px 1fr; padding:15px; gap:8px; font-size:12px; }
 .single-price { padding:26px; } .download-panel { padding:25px; } .download-panel h2 { font-size:27px; }
 .faq-list summary { font-size:15px; } .demo-form { padding:20px; } .form-grid { grid-template-columns:1fr; }
 .footer-grid { gap:28px 20px; font-size:12px; } .footer-grid>div:first-child { grid-column:1 / -1; } .footer-grid .brand { font-size:22px; }
 .documentation-hero,.versions-hero,.legal-hero { padding:38px 0; } .viewer-header { align-items:flex-start; flex-direction:column; } .viewer-header h2 { font-size:24px; }
 .release-card { padding:20px; } .commit-list li { grid-template-columns:45px 1fr; gap:10px; } .release-badge { font-size:10px; }
 .legal-content dl div { grid-template-columns:1fr; gap:4px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } .button:hover { transform:none; } }
/* Manual screenshot carousel: visible controls, no automatic motion. */
.carousel-frame { position:relative; aspect-ratio:1919 / 1018; overflow:hidden; }
.carousel-slide { position:absolute; inset:0; visibility:hidden; opacity:0; transition:opacity .2s; }
.carousel-slide.is-active { visibility:visible; opacity:1; }
.carousel-slide img { width:100%; height:100%; object-fit:contain; }
.carousel-controls { display:flex; align-items:center; justify-content:center; gap:18px; background:white; padding:7px; border-top:1px solid var(--line); }
.carousel-nav { display:grid; place-items:center; width:34px; height:32px; padding:0; line-height:1; border:1px solid var(--line); border-radius:6px; background:white; color:var(--blue-deep); }
.carousel-nav svg { width:16px; height:16px; }
.carousel-nav:hover { background:var(--soft); }
.carousel-dots { display:flex; align-items:center; gap:9px; }
.carousel-dot { width:24px; height:32px; padding:0; border:0; border-radius:4px; background:transparent; position:relative; }
.carousel-dot::before { content:""; width:6px; height:6px; position:absolute; left:9px; top:13px; border-radius:100%; background:#aab6ca; }
.carousel-dot.is-active::before { background:var(--blue-deep); }
.product-icon { width:23px; height:23px; }

.app-window figcaption { padding:8px 12px; text-align:right; background:#fff; border-top:1px solid var(--line); font-size:11px; color:var(--blue-deep); }
.app-window figcaption a:hover { text-decoration:underline; }
.step-row:first-of-type .app-window img { aspect-ratio:16 / 10; object-fit:cover; object-position:top; }

/* License purchase */
.purchase-section { padding:48px 0 80px; background:linear-gradient(135deg,#f7f8ff,#fff 65%); }
.purchase-shell { max-width:1080px; }
.purchase-back { display:inline-block; color:var(--muted); font-size:13px; margin-bottom:28px; }
.purchase-section .section-heading { max-width:700px; margin:0 0 32px; }
.purchase-section h1 { font-size:clamp(30px,4vw,44px); line-height:1.15; letter-spacing:-.04em; margin:0 0 18px; }
.purchase-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:24px; align-items:start; }
.purchase-form h2,.purchase-summary h2 { margin:0 0 22px; font-size:20px; }
.purchase-form label { margin-top:16px; }
.purchase-form select { width:100%; padding:11px; font:inherit; border:1px solid #cfd7e6; border-radius:7px; color:var(--ink); background:#fbfcff; }
.purchase-form .purchase-consent { display:flex; align-items:flex-start; gap:10px; margin-top:24px; font-size:13px; }
.purchase-form .purchase-consent input { width:18px; height:18px; margin:4px 0 0; flex:0 0 18px; accent-color:var(--blue); }
.purchase-consent a,.purchase-existing a { color:var(--blue-deep); text-decoration:underline; }
.purchase-existing { border-top:1px solid var(--line); padding-top:18px; font-size:12px; color:var(--muted); margin-top:25px; }
.purchase-summary { padding:28px; border:1px solid #cdd5ff; border-radius:14px; background:white; box-shadow:0 12px 40px #3952ff0c; }
.purchase-line { display:flex; justify-content:space-between; gap:16px; font-size:14px; margin:14px 0; }
.purchase-line strong { white-space:nowrap; }
.purchase-line[hidden] { display:none; }
.purchase-total { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); margin-top:22px; padding-top:20px; font-weight:700; }
.purchase-total strong { font-size:32px; letter-spacing:-.035em; }
.purchase-tax { color:var(--muted); font-size:11px; margin:4px 0 22px; }
.purchase-summary .button { width:100%; }
.purchase-summary .button svg { width:18px; height:18px; }
.button:disabled { opacity:.55; cursor:default; transform:none; box-shadow:none; }
.purchase-secure { text-align:center; color:var(--muted); font-size:11px; margin:10px 0 24px; }
.purchase-benefits { list-style:none; margin:0 0 20px; padding:0; font-size:13px; }
.purchase-benefits li { margin:10px 0; }
.purchase-benefits li::before { content:"✓"; color:var(--teal); font-weight:800; margin-right:9px; }
@media(max-width:700px) { .purchase-section { padding:25px 0 50px; } .purchase-grid { grid-template-columns:1fr; } .purchase-summary { padding:24px; } }
