/* Scoped fees page and reusable calculator/table. */
.fees-page { color:var(--ink); }
.fees-page .services-page-heading { margin-bottom:24px; }
.fees-page .services-page-heading h2 { font-size:clamp(23px,2.2vw,28px); margin-bottom:16px; }
body:has(> .pricing-calculator) { background:#fff; }
.fees-calculator-frame { display:block; width:100%; height:550px; border:0; margin:0 0 24px; }
.fees-page h2 { color:var(--ink); font-size:23px; line-height:1.35; font-weight:700; margin:0 0 14px; }
.fees-page h3 { color:var(--ink); font-size:19px; font-weight:700; margin:20px 0 8px; }
.fees-page p,.fees-page li { font-size:18px; line-height:1.7; }
.fees-page .fees-forwarding { padding:20px; background:#fff; border:1px solid #e1e8ef; border-left:3px solid var(--green); border-radius:6px; margin-bottom:24px; }
.fees-page .fees-forwarding p,.fees-page .fees-cost-note p { margin:0; }
.fees-information { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:24px; margin-bottom:24px; }
.fees-included,.fees-cost-note { padding:20px; border:1px solid #e1e8ef; border-radius:6px; background:#fff; }
.fees-included ul { list-style:none; padding:0; margin:0; }
.fees-included li { position:relative; padding-left:24px; margin-top:8px; }
.fees-included li::before { content:'✓'; position:absolute; left:0; color:var(--green); font-weight:700; }
.fees-faq { margin-bottom:24px; }
.fees-faq details { background:#fff; border:1px solid #e1e8ef; border-radius:6px; }
.fees-faq details + details { margin-top:8px; }
.fees-faq summary { cursor:pointer; padding:16px 20px; color:var(--ink); font-size:18px; font-weight:700; }
.fees-faq summary h3 { display:inline; font:inherit; margin:0; }
.fees-faq summary::marker { color:var(--green); }
.fees-faq summary:focus-visible { outline:2px solid var(--green); outline-offset:3px; }
.fees-faq details > p { margin:0; padding:0 20px 16px; }
.fees-comparison { margin-bottom:24px; }
.fees-actions { margin:0; }
.modern-site .fees-actions .site-button { flex:0 0 auto; min-height:52px; font-size:16px; }
.modern-site .fees-comparison a { color:var(--green); font:inherit; text-decoration:underline; }
.pricing-calculator,.pricing-table-component { --pricing-ink:#0b164e; --pricing-muted:#5872a5; --pricing-green:#087509; color:var(--pricing-ink); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.5; overflow-wrap:break-word; }
.pricing-calculator { box-sizing:border-box; padding:12px; width:100%; background:#fff; }
.pricing-calculator *, .pricing-table-component * { box-sizing:border-box; }
.pricing-calculator-grid { display:grid; grid-template-columns:190px minmax(0,1fr); gap:20px; align-items:stretch; }
.pricing-domain-panel,.pricing-results-panel { min-width:0; padding:20px; border:1px solid #e1e8ef; border-radius:6px; }
.pricing-calculator h2 { color:var(--pricing-ink); font:700 18px/1.4 Arial,Helvetica,sans-serif; margin:0 0 20px; }
.pricing-calculator h2 label { margin:0; }
.pricing-domain-panel select { display:block; width:100%; min-height:52px; padding:8px 12px; color:var(--pricing-ink); font:700 28px/1.3 Arial,Helvetica,sans-serif; background:#fff; border:1px solid #cbd5e1; border-radius:6px; margin-bottom:20px; }
.pricing-domain-panel p { color:var(--pricing-muted); font:16px/1.6 Arial,Helvetica,sans-serif; margin:0; }
.pricing-results-panel #Preistabelle { min-height:260px; }
.pricing-mode { display:grid; grid-template-columns:1fr 1fr; margin:0 0 18px; padding:0; border:0; background:#f3f6fa; border-radius:5px; }
.pricing-mode label { margin:0; padding:12px 8px; border-radius:5px; text-align:center; cursor:pointer; font-size:15px; }
.pricing-mode input { position:absolute; width:1px; height:1px; opacity:0; }
.pricing-mode input:checked+label { color:#fff; background:var(--pricing-green); font-weight:700; }
.pricing-mode input:focus+label,.pricing-domain-panel select:focus,.pricing-selection input:focus { outline:2px solid #087509; outline-offset:3px; }
.pricing-mode input:focus:not(:focus-visible)+label { outline:none; }
.pricing-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.pricing-table { width:100%; border-collapse:separate; border-spacing:0 10px; margin:0; font:inherit; }
.pricing-table caption { caption-side:top; color:var(--pricing-muted); font:16px/1.5 Arial,Helvetica,sans-serif; text-align:left; padding:0 0 4px; }
.pricing-table th,.pricing-table td { padding:14px 10px; vertical-align:middle; text-align:right; border-top:1px solid #e1e8ef; border-bottom:1px solid #e1e8ef; background:#fff; }
.pricing-table thead th { font-size:13px; font-weight:400; border:0; padding:4px 10px; color:var(--pricing-muted); }
.pricing-table th:first-child,.pricing-table td:first-child { text-align:left; border-left:1px solid #e1e8ef; border-radius:5px 0 0 5px; }
.pricing-table th:last-child,.pricing-table td:last-child { border-right:1px solid #e1e8ef; border-radius:0 5px 5px 0; }
.pricing-table .pricing-invoice { font-weight:700; font-size:20px; }
.pricing-table td { white-space:nowrap; }
.pricing-table .pricing-recommended>* { background:#eff7e9; border-color:#b5d3ad; }
.pricing-tip { display:block; width:max-content; max-width:100%; padding:3px 8px; margin-top:6px; border-radius:4px; background:#087509; color:#fff; font-size:12px; font-weight:700; }
.pricing-table .pricing-selection { text-align:center; width:64px; }
.pricing-selection input { width:18px; height:18px; accent-color:#087509; cursor:pointer; }
.pricing-error { color:#9c2222; background:#fff4f4; padding:16px; border-radius:5px; font:16px/1.6 Arial,Helvetica,sans-serif; }
@media(max-width:767px) {
    .fees-information { grid-template-columns:minmax(0,1fr); gap:16px; }
    .fees-page p,.fees-page li { font-size:17px; }
    .modern-site .fees-actions .site-button { width:100%; }
    .fees-calculator-frame { height:1050px; }
    .fees-page .fees-forwarding,.fees-included,.fees-cost-note { padding:20px; }
    .pricing-calculator-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
    .pricing-domain-panel { display:grid; grid-template-columns:minmax(0,1fr) 85px; gap:12px; align-items:center; }
    .pricing-domain-panel h2,.pricing-domain-panel select { margin:0; }
    .pricing-domain-panel p { grid-column:1/-1; }
}
@media(max-width:600px) {
    .pricing-calculator { padding:4px; }
    .pricing-domain-panel,.pricing-results-panel { padding:16px; }
    .pricing-table,.pricing-table tbody { display:block; }
    .pricing-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
    .pricing-table tr { display:grid; grid-template-columns:minmax(0,1fr); border:1px solid #e1e8ef; border-radius:6px; margin-top:12px; padding:12px; }
    .pricing-table tr.pricing-recommended { background:#eff7e9; border-color:#b5d3ad; }
    .pricing-table tbody th,.pricing-table tbody td { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 0; border:0; border-radius:0; background:transparent; }
    .pricing-table tbody th { flex-wrap:wrap; text-align:left; }
    .pricing-table td::before { content:attr(data-label); color:var(--pricing-muted); font-size:14px; font-weight:400; white-space:normal; text-align:left; }
    .pricing-table .pricing-invoice { font-size:21px; }
    .pricing-table .pricing-selection { width:auto; }
    .pricing-tip { margin:0; }
    .pricing-mode label { font-size:14px; }
}
