/* Product page only; uses the existing Caranea colors and components. */
.free-logbook { overflow-wrap: break-word; }
.free-logbook .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; }
.free-logbook :focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 5px; }
.free-logbook .hero :focus-visible, .free-logbook .cta-band :focus-visible { outline-color: var(--brand-yellow); }
.free-skip { position: fixed; top: 8px; left: 12px; z-index: 200; padding: 12px 18px; border-radius: 8px; background: white; color: var(--c-ink); transform: translateY(-160%); }
.free-skip:focus { transform: none; }
.free-hero { padding: 64px 0; }
.free-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(240px, 1fr); gap: 70px; align-items: center; }
.free-hero h1 { font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1.12; max-width: 700px; }
.free-hero .free-lead { font-size: 1.1rem; line-height: 1.75; color: var(--c-text-inverse); }
.free-hero p { color: var(--c-text-inverse-muted); }
.free-brand { font-size: .94rem; max-width: 590px; }
.free-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.free-logbook .btn { white-space: normal; max-width: 100%; text-align: center; }
.free-entry-note { margin: 12px 0 0; font-size: .85rem; }
.free-store-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 18px; font-size: .88rem; }
.free-logbook p a, .free-store-links a, .free-faq a, .free-image-link, .free-comparison a:not(.btn) { text-decoration: underline; text-underline-offset: 4px; }
.free-hero .free-store-links a { color: var(--brand-yellow); padding-block: 6px; }
.free-mobile-figure { margin: 0; justify-self: center; width: min(100%, 280px); }
.free-mobile-figure .free-image-link { display: block; border-radius: 25px; border: 9px solid var(--c-navy-600); overflow: hidden; box-shadow: var(--shadow-lg); }
.free-mobile-figure img { width: 100%; height: auto; }
.free-mobile-figure figcaption { color: var(--c-text-inverse-muted); font-size: .8rem; line-height: 1.6; margin-top: 14px; text-align: center; }
.free-price-label { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0 0 24px; color: var(--brand-yellow); }
.free-price-label strong { font-size: 2.6rem; line-height: 1; }
.free-price-label span { max-width: 190px; font-size: .9rem; }
.free-section-links { border-bottom: 1px solid var(--c-border); background: white; }
.free-section-links ul { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 24px; list-style: none; margin: 0; padding: 16px 0; font-size: .88rem; font-weight: 600; }
.free-section-links a { display: inline-block; padding: 8px 0; color: var(--brand-blue); }
.free-features { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }
.free-features > article { grid-column: span 2; border-top: 3px solid var(--brand-blue); }
.free-features > article:nth-child(2) { border-top-color: var(--brand-red); }
.free-features > article:nth-child(3) { border-top-color: var(--brand-yellow); }
.free-features > article:nth-child(n+4) { grid-column: span 3; }
.free-features .card:hover { transform: none; }
.free-features p { margin-bottom: 0; }
.free-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.free-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.free-comparison .card { padding: 32px; }
.free-comparison .card:hover { transform: none; }
.free-app-option { border: 2px solid var(--brand-blue); }
.free-option-price { display: block; font-weight: 800; color: var(--c-ink); font-size: 2.8rem; margin: 16px 0 8px; }
.free-option-price.hardware { font-size: 1.6rem; padding-block: 12px; }
.free-checklist { list-style: none; padding: 0; margin: 24px 0; }
.free-checklist li { position: relative; padding: 0 0 12px 24px; }
.free-checklist li::before { content: '✓'; position: absolute; left: 0; font-weight: 800; color: var(--brand-blue); }
.free-plain-note { font-size: .94rem; max-width: 850px; margin: 24px auto 0; text-align: center; }
.free-web-figure { margin: 0 auto; max-width: 940px; }
.free-web-figure .free-image-link { display: block; border: 1px solid var(--c-border); border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-md); }
.free-web-figure img { width: 100%; height: auto; }
.free-web-figure figcaption { font-size: .9rem; line-height: 1.7; margin-top: 20px; color: var(--c-text-muted); }
.free-faq { max-width: 860px; margin: 0 auto; }
.free-faq details { background: white; border: 1px solid var(--c-border); border-radius: var(--radius-sm); margin-bottom: 12px; }
.free-faq summary { cursor: pointer; padding: 22px 24px; color: var(--c-ink); font-weight: 700; line-height: 1.5; }
.free-faq summary::marker { color: var(--brand-blue); }
.free-faq-answer { padding: 0 24px 22px; }
.free-faq-answer p:last-child { margin-bottom: 0; }
.free-sources { font-size: .84rem; }
.free-related { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin-top: 30px; }
.free-related a { padding: 6px 0; color: var(--brand-blue); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:900px) {
 .free-hero-grid { gap: 30px; grid-template-columns: minmax(0, 1.5fr) minmax(210px, .8fr); }
 .free-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .free-features > article, .free-features > article:nth-child(n+4) { grid-column: auto; }
 .free-features > article:last-child { grid-column: 1 / -1; }
}
@media(max-width:700px) {
 .free-hero { padding: 44px 0; }
 .free-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
 .free-mobile-figure { width: 245px; }
 .free-hero h1 { font-size: 2.15rem; hyphens: none; }
 .free-hero .free-lead { font-size: 1rem; }
 .free-steps, .free-comparison { grid-template-columns: minmax(0, 1fr); }
 .free-comparison .card { padding: 24px; }
 .free-section-links ul { justify-content: flex-start; gap: 4px 20px; }
}
@media(max-width:480px) {
 .free-features { grid-template-columns: minmax(0, 1fr); }
 .free-logbook .container { padding-inline: 20px; }
 .free-hero h1 { font-size: 2rem; }
 .free-actions { align-items: stretch; }
 .free-actions .btn { width: 100%; }
 .free-faq summary { padding: 18px; }
 .free-faq-answer { padding: 0 18px 20px; }
}
