/* Editorial introduction with readable copy and one responsive brand image. */
.home-page .home-content { padding-top:14px; }
.home-visual-hero { display:grid; grid-template-columns:minmax(0,1fr); overflow:hidden; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.home-visual-hero-copy { padding:20px; }
.home-visual-hero h1 { margin:0; color:var(--ink); font-size:30px; font-weight:700; line-height:1.35; letter-spacing:.035em; }
.home-visual-hero-copy > p { margin:10px 0 16px; color:var(--ink-2); font-size:13px; line-height:1.8; }
.home-visual-hero-scene { display:block; position:relative; order:-1; height:156px; min-width:0; overflow:hidden; background:#d9e7ed; }
.home-visual-hero-image { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:70% 57%; }
.home-visual-hero-actions { display:grid; grid-template-columns:.85fr .85fr 1.2fr; gap:8px; }
.home-visual-hero-actions a { display:flex; align-items:center; justify-content:center; gap:6px; min-width:0; min-height:44px; padding:8px 4px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); font-size:13px; font-weight:700; line-height:1.5; text-decoration:none; transition:background .15s ease; }
.home-visual-hero-actions svg { flex-shrink:0; color:var(--brand-strong); }
.home-visual-hero-actions a:hover { background:var(--surface-2); }
.home-visual-hero-actions a:active { background:var(--brand-tint); }
.home-visual-hero-actions a:focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.home-region { margin:20px 0 14px; }
.home-region .home-catch-filters { display:block; margin:0; }
.home-region .home-catch-filters .home-area-picker-toggle { max-width:100%; min-height:44px; }
.home-page .home-event-strip { margin-top:14px; }
.home-species-heading { min-width:0; }
.home-species-scope { margin:0 0 2px; font-size:12px; color:var(--ink-2); }
.home-species-updated { display:inline-flex; margin:-4px 0 12px; font-size:11px; }
@media (min-width:390px) and (max-width:759px) {
 .home-visual-hero h1 { font-size:32px; }
 .home-visual-hero-scene { height:170px; }
}
@media (min-width:760px) {
 .home-page .home-content { padding-top:24px; }
 .home-visual-hero { grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); min-height:320px; border-radius:20px; }
 .home-visual-hero-copy { align-self:center; padding:32px; }
 .home-visual-hero-scene { order:0; height:100%; min-height:320px; }
 .home-visual-hero-image { object-position:72% center; }
 .home-visual-hero h1 { font-size:clamp(32px,3.6vw,48px); line-height:1.4; }
 .home-visual-hero-copy > p { font-size:14px; margin:12px 0 22px; }
 .home-visual-hero-actions { max-width:360px; }
 .home-visual-hero-actions a { min-height:48px; font-size:14px; }
 .home-region { margin-top:24px; }
}
@media (prefers-reduced-motion:reduce) {
 .home-visual-hero-actions a { transition:none; }
}

/* (3) Choose a boat */
.home-choose-boat { margin:28px 0; }
.home-choose-form { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.home-choose-field { display:grid; grid-template-columns:72px minmax(0,1fr); align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--ink-2); }
.home-choose-field select { width:100%; min-width:0; min-height:44px; font-size:16px; }
.home-choose-submit { min-height:48px; width:100%; justify-content:center; }
/* Phones: area on its own row, date and fish side by side (labels above). */
@media (max-width:759px) {
 .home-choose-form { grid-template-columns:repeat(2,minmax(0,1fr)); padding:12px; gap:8px; }
 .home-choose-field { grid-template-columns:minmax(0,1fr); gap:4px; }
 .home-choose-field:first-child,.home-choose-submit { grid-column:1 / -1; }
}
@media (min-width:760px) {
 .home-choose-form { grid-template-columns:repeat(3,minmax(0,1fr)) auto; align-items:end; }
 .home-choose-field { grid-template-columns:minmax(0,1fr); gap:4px; }
 .home-choose-submit { width:auto; }
}

/* (4) Species cards: fish, freshness, departure ports and the next action. */
.home-species { margin:28px 0; }
.home-species-header { flex-wrap:wrap; }
.home-species-header .home-filter-button { min-height:44px; padding:8px 12px; border:1px solid var(--line-strong); border-radius:8px; background:var(--surface); }
.home-species-intro { margin:-2px 0 14px; color:var(--ink-2); font-size:13px; line-height:1.7; }
.home-species .home-highlight { display:flex; flex-direction:column; align-items:stretch; gap:12px; padding:16px; }
.home-species .home-highlight-art { width:100%; height:112px; }
.home-species .home-highlight-copy { gap:5px; }
.home-highlight-ports { color:var(--ink-2); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
/* Phones: two compact columns so six cards take three rows. */
@media (max-width:599px) {
 .home-species .home-highlight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .home-species .home-highlight { padding:0; gap:0; overflow:hidden; }
 .home-species .home-highlight-art { height:96px; padding:8px; background:#edf4f7; }
 .home-species .home-highlight-art > span { font-size:28px; }
 .home-species .home-highlight-copy { gap:5px; padding:10px; }
 .home-species .home-highlight-copy strong { font-size:16px; }
 .home-species .home-highlight-copy > .home-highlight-meta,.home-highlight-ports { font-size:12px; }
}
.home-species .home-highlight[hidden] { display:none; }
@media (min-width:600px) {
 .home-species .home-highlight { padding:0; gap:0; overflow:hidden; }
 .home-species .home-highlight-art { height:148px; padding:16px; background:#edf4f7; }
 .home-species .home-highlight-copy { padding:16px 18px; }
}
.home-species-none { margin:0; }
.home-pref-missing { margin-top:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.home-pref-missing[hidden] { display:none; }
.home-pref-missing > summary { display:flex; align-items:center; gap:8px; min-height:44px; padding:0 14px; font-size:13px; font-weight:600; color:var(--ink-2); cursor:pointer; list-style:none; }
.home-pref-missing > summary::-webkit-details-marker { display:none; }
.home-pref-missing-count { margin-left:auto; font-variant-numeric:tabular-nums; }
.home-pref-missing-list { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0 14px 14px; list-style:none; }
.home-pref-missing-list a { display:inline-flex; align-items:center; min-height:44px; padding:0 14px; border:1px solid var(--line); border-radius:9999px; color:var(--ink); font-size:13px; text-decoration:none; }

/* (5) Candidate boats: the card is not one big link, so contact buttons can sit inside. */
.home-boats .home-boat-card { color:var(--ink); }
.home-boat-identity h3 a { color:inherit; text-decoration:none; display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
.home-boat-identity h3 a:hover { text-decoration:underline; }
.home-boat-fresh { margin:4px 0 0; font-size:11px; color:var(--ink-2); line-height:1.6; }
.home-boat-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; padding-top:14px; }
.home-boat-actions .tb-btn { min-height:44px; flex:1 1 calc(50% - 4px); justify-content:center; gap:6px; }
.home-boat-actions .home-boat-link { flex:1 1 100%; min-height:44px; margin-top:4px; padding-top:0; border-top:1px solid var(--line); text-decoration:none; }
.home-boats-more-link { display:flex; align-items:center; justify-content:center; gap:4px; min-height:44px; margin-top:12px; color:var(--brand-strong); font-size:13px; font-weight:700; text-decoration:none; }

/* (6) Forecast: nationwide view gets one line instead of a sea it did not choose. */
.home-forecast-hint { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; margin:24px 0; padding:4px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-size:13px; color:var(--ink-2); }
.home-forecast-hint-link { display:inline-flex; align-items:center; min-height:44px; color:var(--brand-strong); font-weight:700; }

/* (8) All species: names only up front; daily reports load on demand. */
.home-all { margin:28px 0; }
.home-all-chips { display:flex; gap:8px; padding:2px 0 8px; }
.home-all-chips a { flex-shrink:0; display:inline-flex; align-items:center; min-height:44px; padding:0 14px; border:1px solid var(--line); border-radius:9999px; background:var(--surface); color:var(--ink); font-size:13px; text-decoration:none; white-space:nowrap; }
.home-all-load { min-height:44px; width:100%; justify-content:center; margin-top:8px; }
.home-all-species-root { margin-top:12px; }
.home-all-species-root[hidden] { display:none; }
.home-all .home-data-tools { margin-top:12px; }
.home-all .home-data-tools .tb-btn { min-height:44px; }

/* Chevrons drawn with CSS instead of one inline SVG per row. */
.home-chev { display:inline-block; flex-shrink:0; width:7px; height:7px; margin-left:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); }
.home-chev-down { transform:rotate(45deg); }
details[open] > summary .home-chev-down { transform:rotate(-135deg); }
.home-catch-guide a { display:inline-flex; align-items:center; min-height:44px; }
