.public-site { --site-navy:var(--mud-palette-primary,#0B3D91); --site-pale:var(--mud-palette-background-gray,#E6F0FF); color:var(--mud-palette-text-primary,#334155); background:white; font-size:16px; line-height:1.7; }
.public-site [hidden] { display:none!important; }
.public-site a { color:var(--site-navy); text-underline-offset:4px; }
.public-container { width:min(1200px,calc(100% - 64px)); margin-inline:auto; }
.public-header { border-bottom:1px solid var(--site-pale); background:white; }
.public-header-inner { min-height:108px; display:flex; align-items:center; gap:28px; }
.public-logo { width:230px; height:auto; display:block; }
.public-desktop-nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.public-desktop-nav a { font-size:14px; font-weight:600; text-decoration:none; white-space:nowrap; padding:12px 0; }
.public-sign-in { border:1px solid var(--site-navy); border-radius:8px; padding:8px 18px; text-decoration:none; font-size:14px; font-weight:600; white-space:nowrap; }
.public-mobile-nav { display:none; }
.public-site h1,.public-site h2,.public-site h3 { color:var(--site-navy); line-height:1.15; font-weight:650; letter-spacing:-.03em; }
.public-site h1 { font-size:clamp(40px,4.2vw,58px); margin:22px 0; }
.public-site h2 { font-size:clamp(30px,3vw,42px); margin:16px 0 22px; }
.public-site h3 { font-size:25px; margin:20px 0 14px; }
.public-site p { margin:0 0 18px; }
.public-eyebrow { color:var(--site-navy); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
.public-eyebrow::before { content:''; display:inline-block; width:7px; height:7px; background:var(--mud-palette-tertiary,#22C55E); border-radius:50%; margin-right:10px; }
.public-hero { background:var(--mud-palette-background,#F1F7FF); padding:64px 0 72px; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.hero-subheading { font-size:20px; line-height:1.65; }
.public-actions { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0 16px; }
.public-actions .mud-button-root { padding:12px 20px; gap:12px; border-radius:8px; font-size:14px; }
.public-site .public-small { font-size:13px; line-height:1.65; color:var(--mud-palette-text-secondary,#64748B); }
.hero-photo { position:relative; margin:0; aspect-ratio:1.08; }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:59% center; border-radius:22px; display:block; }
.hero-photo figcaption { position:absolute; bottom:24px; left:20px; right:20px; background:white; border-radius:10px; padding:15px 20px; color:var(--site-navy); font-size:14px; font-weight:600; box-shadow:0 8px 24px #0b3d9112; }
.public-section { padding:88px 0; scroll-margin-top:24px; }
.section-intro { text-align:center; max-width:760px; margin:0 auto 44px; }
.public-three-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.public-step { padding:30px; border:1px solid var(--site-pale); border-radius:16px; }
.public-step p:last-child { font-size:15px; color:var(--mud-palette-text-secondary,#64748B); margin:0; }
.step-number { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:12px; background:var(--site-pale); color:var(--site-navy); font-size:16px; font-weight:700; }
.features-section,.faq-section { background:var(--mud-palette-background,#F1F7FF); }
.features-grid,.faq-grid { display:grid; grid-template-columns: .9fr 1.1fr; gap:80px; }
.public-inline-link { display:inline-block; font-weight:650; margin-top:12px; }
.benefits-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.benefits-list li { display:flex; align-items:flex-start; gap:12px; font-size:15px; }
.benefits-list span { color:var(--site-navy); background:var(--site-pale); flex:none; border-radius:50%; width:24px; height:24px; line-height:24px; text-align:center; font-weight:700; }
.pricing-grid { max-width:1000px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.price-card { border:1px solid var(--site-pale); padding:36px; border-radius:18px; }
.full-plan { border:2px solid var(--site-navy); background:var(--mud-palette-background,#F1F7FF); }
.price-card h3 { margin-top:12px; }
.public-site .price { font-size:38px; color:var(--site-navy); font-weight:700; line-height:1.2; margin:25px 0 10px; letter-spacing:-.03em; }
.price span { font-size:17px; font-weight:400; letter-spacing:0; }
.inclusive-price { font-size:15px; font-weight:600; }
.price-card ul { padding-left:22px; margin:26px 0; }
.price-card li { margin:12px 0; }
.price-card .public-small { margin-top:12px; }
.public-site .pricing-note { max-width:920px; margin:28px auto 0; text-align:center; font-size:14px; color:var(--mud-palette-text-secondary,#64748B); }
.faq-list details { padding:20px 0; border-bottom:1px solid #ccdcee; }
.faq-list details:first-child { padding-top:0; }
.faq-list summary { color:var(--site-navy); cursor:pointer; font-size:17px; font-weight:600; padding:4px; }
.faq-list p { font-size:15px; padding:16px 4px 0; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }
.contact-link { display:inline-block; font-size:20px; font-weight:600; padding:4px 0; }
.contact-form-card { background:var(--mud-palette-background,#F1F7FF); padding:32px; border-radius:18px; min-width:0; }
.public-field { margin-bottom:20px; }
.public-field label { display:block; font-size:14px; font-weight:600; margin-bottom:6px; }
.public-field input,.public-field textarea { display:block; width:100%; border:1px solid #9eb6d0; border-radius:8px; background:white; color:inherit; padding:12px; font:inherit; min-height:48px; }
.public-field input:disabled,.public-field textarea:disabled { background:#f7fafc; }
.public-field textarea { resize:vertical; }
.public-notice { padding:16px; border-left:3px solid var(--site-navy); background:var(--site-pale); border-radius:0 8px 8px 0; font-size:14px; }
.contact-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.site-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:46px; padding:10px 20px; border:1px solid var(--site-navy); border-radius:8px; background:var(--site-navy); color:white; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.site-button.secondary { background:white; color:var(--site-navy); }
.site-button:disabled { opacity:.6; cursor:not-allowed; }
.public-footer { background:var(--mud-palette-background,#F1F7FF); border-top:1px solid var(--site-pale); text-align:left; padding:48px 0 22px; color:inherit; font-size:14px; }
.public-footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; }
.public-footer img { display:block; width:220px; height:auto; margin-bottom:18px; }
.public-footer a,.public-footer span { display:block; margin:6px 0; }
.public-footer nav { display:flex; flex-direction:column; align-items:flex-start; }
.public-footer a { text-decoration:none; }
.public-copyright { border-top:1px solid #d9e4f2; padding-top:20px; margin-top:40px; display:flex; justify-content:space-between; gap:16px; color:var(--mud-palette-text-secondary,#64748B); font-size:12px; }
.public-copyright span { margin:0; }
.text-button { font:inherit; border:0; padding:6px 0; background:none; color:var(--site-navy); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.cookie-banner { position:fixed; bottom:18px; left:24px; right:24px; margin:auto; max-width:1152px; z-index:1400; background:white; border:1px solid #9eb6d0; border-radius:12px; box-shadow:0 4px 25px #0b3d9126; padding:20px 24px; display:flex; gap:24px; align-items:center; font-size:13px; }
.cookie-banner p { margin:4px 0 0; max-width:570px; }
.cookie-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; flex:none; }
.cookie-banner .site-button { font-size:13px; padding:9px 14px; }
.cookie-dialog { color:var(--mud-palette-text-primary,#334155); border:1px solid #9eb6d0; border-radius:14px; padding:28px; width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; margin:auto; line-height:1.6; }
.cookie-dialog h2 { font-size:28px; }
.cookie-dialog label { display:flex; gap:12px; align-items:start; margin:20px 0; }
.cookie-dialog input { width:18px; height:18px; margin-top:4px; flex:none; accent-color:#0B3D91; }
.cookie-dialog::backdrop { background:#10243f88; }
.policy-page { max-width:900px; padding-block:64px 88px; }
.policy-page h1 { margin-top:0; }
.policy-page h2 { font-size:26px; margin-top:36px; }
.policy-page p { margin-bottom:20px; }
.skip-link { position:absolute; top:-100px; left:16px; z-index:1500; background:white; padding:12px; }
.skip-link:focus { top:8px; }
.public-site h1[tabindex='-1']:focus { outline:none; }
@media(max-width:1100px) {
    .public-container { width:calc(100% - 48px); }
    .public-header-inner { gap:20px; }
    .public-logo { width:190px; }
    .public-desktop-nav { gap:16px; }
    .hero-grid { gap:32px; }
    .features-grid,.faq-grid,.contact-grid { gap:40px; }
    .cookie-banner { flex-wrap:wrap; }
}
@media(max-width:850px) {
    .public-header-inner { min-height:90px; position:relative; }
    .public-desktop-nav { display:none; }
    .public-sign-in { margin-left:auto; }
    .public-mobile-nav { display:block; }
    .public-mobile-nav summary { cursor:pointer; padding:10px 0; color:var(--site-navy); font-weight:600; }
    .public-mobile-nav nav { position:absolute; top:100%; left:0; right:0; z-index:10; padding:20px; background:white; box-shadow:0 8px 20px #0b3d911a; border:1px solid var(--site-pale); border-radius:0 0 12px 12px; }
    .public-mobile-nav a { display:block; padding:10px; }
    .hero-grid,.features-grid,.faq-grid,.contact-grid { grid-template-columns:1fr; }
    .hero-photo { aspect-ratio:1.65; }
    .public-hero { padding-block:40px 48px; }
    .public-section { padding:64px 0; }
    .public-three-grid { gap:16px; }
    .public-step { padding:22px; }
    .public-site h3 { font-size:22px; }
    .pricing-grid { gap:18px; }
    .price-card { padding:24px; }
    .public-footer-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px) {
    .public-container { width:calc(100% - 32px); }
    .public-logo { width:160px; }
    .public-header-inner { gap:14px; min-height:80px; }
    .public-sign-in { font-size:12px; padding:7px 10px; }
    .public-mobile-nav summary { font-size:13px; }
    .public-site h1 { font-size:40px; }
    .hero-subheading { font-size:18px; }
    .public-eyebrow { font-size:10px; }
    .public-actions { gap:10px; }
    .public-actions .mud-button-root { font-size:12px; padding:12px 14px; }
    .hero-photo { aspect-ratio:1.2; }
    .hero-photo figcaption { font-size:12px; padding:12px; left:12px; right:12px; bottom:12px; }
    .public-three-grid,.pricing-grid,.public-footer-grid { grid-template-columns:1fr; }
    .benefits-list { grid-template-columns:1fr; gap:18px; }
    .contact-form-card { padding:22px; }
    .public-copyright { flex-direction:column; gap:6px; }
    .cookie-banner { bottom:10px; left:10px; right:10px; padding:16px; gap:12px; }
    .cookie-actions { gap:8px; }
    .cookie-banner .site-button { font-size:12px; min-height:42px; padding:9px 12px; }
    .cookie-banner .text-button { font-size:12px; }
    .cookie-dialog { padding:22px; }
}
