/* Halmist landing 3.0. Only the home pages load this file, after web.css. */
.landing { --section-space:96px; }
.landing .hero { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:64px; padding:64px 0 96px; }
.landing .hero h1 { font:650 64px/1.1 Manrope,sans-serif; max-width:16ch; letter-spacing:-1.8px; }
.landing .hero .intro { color:var(--text); font-size:18px; line-height:1.65; max-width:37ch; margin:28px 0 0; }
.landing .hero-actions { display:flex; gap:16px 24px; align-items:center; flex-wrap:wrap; margin-top:28px; }
.landing .hero-actions .button { min-height:52px; padding:14px 24px; font-size:16px; border-radius:12px; }
.landing .hero-actions .text-button { font-size:16px; }
.landing .hero-terms { font-size:14px; color:var(--text); line-height:1.6; max-width:41ch; margin-top:16px; }
.landing .hero-explore { margin-top:28px; font-weight:600; }
.landing .hero-visual { padding:28px 24px 24px; max-width:440px; border-radius:180px 180px 28px 28px; }
.landing .phone-shot { width:300px; max-width:100%; height:auto; border-radius:28px; }
.landing .hero-visual figcaption { font-size:14px; font-weight:500; color:var(--text); }
.landing .section { padding:var(--section-space) 0; }
.landing h2 { font:650 40px/1.2 Manrope,sans-serif; letter-spacing:-1px; text-wrap:balance; }
.landing .connection-story { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:64px; align-items:center; padding:64px; border-radius:28px; background:#27252B; color:#F2EDF5; }
.landing .story-copy h2 { font-size:52px; max-width:10ch; }
.landing .story-copy>p { font-size:18px; line-height:1.75; max-width:34ch; margin:24px 0 0; }
.landing .story-copy .story-condition { font-size:14px; color:#C9C5CD; margin-top:24px; }
.connection-demo { text-align:center; width:100%; max-width:340px; justify-self:center; }
.demo-label { font-size:14px; font-weight:500; font-weight:600; color:#C9C5CD; margin:0 0 16px; }
.demo-eclipse { width:216px; height:216px; margin:0 auto 24px; position:relative; }
.demo-orbit,.demo-ring,.demo-disc,.demo-satellite { position:absolute; border-radius:50%; }
.demo-orbit { inset:0; border:1px solid #6B6472; }
.demo-ring { inset:28px; border:10px solid #B9ABC9; }
.demo-disc { inset:40px; background:#27252B; transform:translate(-25px,6px); }
.demo-satellite { inset:0; }
.demo-satellite i { position:absolute; width:8px; height:8px; border-radius:50%; right:28px; bottom:36px; background:#F2EDF5; }
[data-demo-state=connected] .demo-disc { transform:translate(0,0); }
[data-demo-state=connected] .demo-ring { outline:1px solid #C9C5CD; }
[data-demo-state=connected] .demo-satellite { animation:landing-orbit 12s linear 1 forwards; }
[data-demo-state=connecting] .demo-ring { border-color:#B9ABC9 #6B6472 #6B6472 #B9ABC9; animation:landing-orbit .8s linear infinite; }
.demo-status { font-size:28px; font-weight:650; line-height:1.3; min-height:37px; margin:0; }
.demo-location { font-size:15px; line-height:1.6; margin:8px 0 24px; color:#F2EDF5; }
.demo-controls { display:none; }
.demo-ready .demo-controls { display:block; }
.demo-fallback { min-height:96px; display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:600; }
.demo-ready .demo-fallback { display:none; }
.connection-demo .demo-toggle { width:100%; min-height:52px; color:#27252B; background:#B9ABC9; border:1px solid #B9ABC9; border-radius:12px; font-size:16px; }
.connection-demo .demo-toggle:hover { background:#C9BDD5; border-color:#C9BDD5; }
.connection-demo .demo-toggle:active { background:#C9C5CD; transform:translateY(1px); }
.connection-demo button:focus-visible { outline:3px solid #F2EDF5; outline-offset:4px; }
.demo-motion { border:0; min-height:44px; padding:10px 8px; background:transparent; color:#F2EDF5; text-decoration:underline; text-underline-offset:4px; font-size:14px; font-weight:500; visibility:hidden; }
[data-demo-state=connected] .demo-motion { visibility:visible; }
.demo-disclaimer { font-size:14px; font-weight:500; line-height:1.65; color:#C9C5CD; margin:8px auto 0; max-width:35ch; }
@keyframes landing-orbit { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:no-preference) { .demo-disc { transition:transform .48s cubic-bezier(.2,.7,.2,1); } }
@media(prefers-reduced-motion:reduce) { .connection-demo * { animation:none!important; transition:none!important; }.connection-demo .demo-motion { visibility:hidden; } }
/* A real sequence, with shared rules rather than three feature cards. */
.landing .section#how { display:block; border-top:0; }
.landing #how .section-head { margin:0 0 48px; }
.landing #how h2 { max-width:20ch; }
.landing .steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.landing .steps li { display:block; border-top:1px solid var(--line); padding:24px 0 0; }
.landing .step-number { font:600 24px/1.3 Manrope,sans-serif; display:block; margin-bottom:24px; }
.landing .steps h3 { font-size:19px; line-height:1.5; margin-bottom:12px; }
.landing .steps p { color:var(--text); font-size:16px; line-height:1.75; max-width:32ch; }
.landing .section#locations { display:block; }
.landing #locations .section-head { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; margin-bottom:40px; }
.landing #locations h2 { max-width:16ch; }
.landing #locations .section-head p { margin:0; font-size:17px; max-width:33ch; }
/* Seven live locations: 4 + 3 on wide screens. */
.landing .countries { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.landing .country { display:flex; align-items:flex-start; flex-direction:column; gap:20px; padding:24px 0; border-top:1px solid var(--line); border-bottom:0; font-size:16px; font-weight:600; }
.landing .flag { font-size:26px; }
/* Period total is primary. Every store link keeps its actual destination. */
.landing .pricing-section { display:block; }
.landing .pricing-section .section-head { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:64px; margin-bottom:40px; }
.landing .pricing-section h2 { max-width:18ch; }
.landing .pricing-section .section-head p { font-size:17px; color:var(--text); max-width:36ch; margin:0; }
.landing .plan-list { overflow:hidden; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.landing .price-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,1fr) minmax(220px,1fr); align-items:center; gap:24px; padding:28px 32px; margin:0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.landing .price-row:last-child { border-bottom:0; }
.landing .price-row.best { background:var(--tint); }
.landing .price { text-align:left; }
.landing .price strong { display:block; font-size:32px; margin:4px 0; }
.landing .period-total { font-size:14px; font-weight:500; color:var(--text); display:block; }
.landing .price small { font-size:14px; color:var(--text); }
.landing .plan-title { font-size:21px; }
.landing .badge { display:block; margin-top:6px; color:var(--ink); font-size:14px; font-weight:500; }
.landing .price-row .store-links { grid-column:auto; display:flex; flex-direction:column; align-items:stretch; gap:8px; padding:0; }
.landing .store-links a { justify-content:center; padding:8px 14px; border:1px solid var(--muted); border-radius:8px; text-decoration:none; color:var(--text); font-size:14px; font-weight:600; text-align:center; }
.landing .store-links a:hover { background:var(--bg); border-color:var(--ink); }
.landing .pricing-terms { display:flex; gap:48px; justify-content:space-between; margin-top:28px; }
.landing .pricing-terms h3 { font-size:16px; font-weight:650; margin:0 0 8px; }
.landing .pricing-terms p { font-size:14px; color:var(--text); max-width:62ch; margin:0; }
.landing .pricing-terms .trial-note { margin-top:8px; }
.landing .pricing-terms .price-note { max-width:24ch; }
.landing .data-section { gap:64px; grid-template-columns:1fr 1fr; }
.landing .data-section h2 { max-width:13ch; }
.landing .data-section>div>p:first-child { font-size:18px; }
.landing .data-section .small { font-size:14px; margin-top:20px; }
.landing .home-faq { grid-template-columns:1fr 1.25fr; gap:64px; }
.landing .home-faq h2 { max-width:14ch; }
.landing .faq-list details p { font-size:16px; color:var(--text); }
.landing .closing { padding:64px; background:var(--tint); border:0; border-radius:28px; gap:64px; grid-template-columns:1.1fr 1fr; }
.landing .closing h2 { max-width:15ch; }
.landing .closing-signature>p { font-size:17px; margin-top:24px; max-width:35ch; }
.landing .closing .store-badges { margin:0; gap:12px; }
.landing .closing .qr-block { margin:24px 0 12px; padding:20px 0 0; border-top:1px solid var(--line); gap:16px; }
.landing .closing .qr-block img { width:64px; height:64px; }
.landing .closing .qr-block p { font-size:14px; }
.landing .closing .returning-user { font-size:14px; color:var(--text); margin-top:20px; gap:0 8px; }
@media(max-width:1100px) {
 .landing .hero { gap:40px; padding-top:48px; }
 .landing .hero h1 { font-size:52px; }
 .landing .phone-shot { width:280px; }
 .landing .connection-story,.landing .closing { padding:40px; gap:40px; }
 .landing .story-copy h2 { font-size:52px; }
 .landing .steps { gap:24px; }
 .landing .countries { gap:20px; }
 .landing .price-row { grid-template-columns:minmax(0,1fr) minmax(150px,1fr) minmax(200px,1fr); padding:24px; gap:20px; }
}
@media(max-width:800px) {
 .landing { --section-space:72px; }
 .landing .hero { gap:24px; }
 .landing .hero h1 { font-size:46px; }
 .landing .hero-visual { padding:24px 16px; }
 .landing .connection-story { gap:32px; padding:40px 28px; }
 .landing .story-copy h2 { font-size:44px; }
 .landing .story-copy>p { font-size:17px; }
 .landing h2 { font-size:36px; }
 .landing .pricing-section .section-head,.landing #locations .section-head { gap:32px; }
 .landing .price-row { grid-template-columns:1fr 1fr; }
 .landing .price-row .store-links { grid-column:1 / -1; flex-direction:row; }
 .landing .store-links a { flex:1; }
 .landing .countries { gap:16px; }
 .landing .closing { padding:32px; gap:32px; }
 .landing .data-section,.landing .home-faq { gap:32px; }
}
@media(max-width:640px) {
 .landing { --section-space:64px; }
 .landing .hero { grid-template-columns:1fr; gap:40px; padding:40px 0 64px; }
 .landing .hero h1 { font-size:38px; letter-spacing:-.9px; max-width:none; }
 .landing .hero .intro { font-size:17px; margin-top:20px; max-width:38ch; }
 .landing .hero-actions { margin-top:24px; gap:8px 20px; }
 .landing .hero-terms { font-size:14px; margin-top:12px; }
 .landing .hero-explore { margin-top:12px; }
 .landing .hero-visual { width:100%; max-width:380px; padding:28px 24px 24px; border-radius:150px 150px 24px 24px; }
 .landing .phone-shot { width:260px; }
 .landing .connection-story { grid-template-columns:1fr; padding:36px 24px; gap:40px; border-radius:24px; }
 .landing .story-copy h2 { font-size:36px; max-width:15ch; }
 .landing .story-copy>p { margin-top:20px; max-width:38ch; }
 .landing .story-copy .story-condition { margin-top:16px; }
 .landing h2 { font-size:32px; line-height:1.22; letter-spacing:-.7px; }
 .demo-eclipse { width:204px; height:204px; }
 .demo-status { font-size:26px; }
 .demo-disclaimer { font-size:14px; font-weight:500; }
 .landing #how .section-head { margin-bottom:28px; }
 .landing .steps { grid-template-columns:1fr; gap:28px; }
 .landing .steps li { display:grid; grid-template-columns:32px 1fr; gap:8px 16px; padding-top:24px; }
 .landing .step-number { grid-row:1 / 3; margin:0; }
 .landing .steps h3 { font-size:18px; margin:0; }
 .landing .steps p { font-size:16px; max-width:none; }
 .landing #locations .section-head,.landing .pricing-section .section-head { grid-template-columns:1fr; gap:20px; margin-bottom:28px; }
 .landing #locations .section-head p,.landing .pricing-section .section-head p { font-size:17px; }
 .landing .countries { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
 .landing .country { padding:20px 0; font-size:15px; gap:16px; }
 .landing .price-row { padding:24px 20px; gap:16px; grid-template-columns:1fr 1fr; }
 .landing .price { text-align:right; }
 .landing .price strong { font-size:30px; }
 .landing .plan-title { font-size:19px; }
 .landing .period-total { font-size:14px; font-weight:500; }
 .landing .price-row .store-links { gap:8px; flex-direction:column; }
 .landing .pricing-terms { flex-direction:column; gap:20px; }
 .landing .pricing-terms .price-note { max-width:none; }
 .landing .data-section,.landing .home-faq { grid-template-columns:1fr; gap:28px; }
 .landing .data-section>div>p:first-child { font-size:17px; }
 .landing .home-faq .faq-list summary { font-size:16px; }
 .landing .home-faq .faq-list details p { font-size:16px; }
 .landing .closing { grid-template-columns:1fr; padding:36px 24px; gap:28px; border-radius:24px; }
 .landing .closing h2 { font-size:32px; }
 .landing .closing-signature>p { margin-top:20px; }
 .landing .closing .store-badges { gap:12px; }
 .landing .closing .returning-user { justify-content:flex-start; }
}
@media(max-width:359px) {
 .landing .hero h1 { font-size:36px; }
 .landing .connection-story,.landing .closing { padding:32px 20px; }
 .landing .hero-visual { padding:24px 16px; }
}

/* Reading copy stays in Manrope; Bodoni remains in the shared wordmark. */
.landing p { font-weight:500; }
.landing .demo-status { font-weight:650; }
.landing .hero-actions .text-button,.landing .store-links a { font-weight:650; }

.landing h1,.landing h2,.landing h3 { hyphens:none; }

.landing .hero h1 span { display:block; }

/* v5: keep the mobile product preview beside the first decision. */
@media(max-width:640px) {
 .landing .hero { gap:20px; padding:24px 0 64px; }
 .landing .hero .intro { margin-top:12px; max-width:34ch; }
 .landing .hero-actions { margin-top:16px; }
 .landing .hero-terms { margin-top:8px; }
 .landing .hero-visual { padding:16px; max-width:340px; }
 .landing .phone-shot { width:240px; }
}
