/* Ecom Kraken Edition: the Niceville Bait & Tackle theme (homepage setting newHomepage = 'niceville_bt').
   Loaded by ek_shell.php AFTER every other Kraken sheet, and only for a store using that homepage, so the
   tokens below can sit on :root and apply to every Kraken page (home, listing, product, cart).
   The action colour (--ek-brand) is written inline by the shell from the theme's setting. Prefix: ekn-. */

:root{
  --ek-bg:#f7f7f2; --ek-surface:#fff; --ek-surface-2:#f0f0ea; --ek-well:#f4f4ef;
  --ek-ink:#10232d; --ek-ink-2:#2a3c46; --ek-muted:#52626b;
  --ek-line:#e1e2da; --ek-line-strong:#c8cbc1;
  --ek-r-sm:8px; --ek-r:10px; --ek-r-lg:12px;
  --ek-shadow-1:0 1px 2px rgba(16,35,45,.06);
  --ek-shadow-2:0 8px 22px -10px rgba(16,35,45,.22), 0 1px 3px rgba(16,35,45,.06);
  --ek-header-h:106px;
  --ek-logo-h:91px; --ek-logo-w:360px;
  --ekn-sea:#e2eeea; --ekn-sea-ink:#1f4e48; --ekn-sand:#f1eadb;
}
@media (max-width:720px){ :root{ --ek-header-h:138px; } }

/* ---------------------------------------------------------------- header + nav -- */
@media (max-width:960px){
  .ek-logo{ max-width:min(56vw, 260px); }
  .ek-logo img{ max-height:min(var(--ek-logo-h), 64px); }
}
.ek-nav__link .ek-ico{ width:18px; height:18px; }
.ek-nav__item--end .ek-ico{ color:var(--ek-brand); }
.ek-footer{ background:#0c1c24; }
.ek-footer__logo{ max-height:72px; }

/* ---------------------------------------------------------------- shared bits -- */
.ekn-main .ek-section{ padding-top:48px; }
.ekn-main .ek-section:last-child{ padding-bottom:56px; }
.ekn-sub{ margin:6px 0 0; color:var(--ek-muted); }
@media (max-width:720px){ .ekn-main .ek-section{ padding-top:36px; } }
@media (max-width:600px){
  /* Heading and its "Shop all" link stay on one line on a phone. */
  .ekn-main .ek-sechead{ flex-wrap:nowrap; align-items:baseline; margin-bottom:14px; }
  .ekn-main .ek-h2{ font-size:23px; }
  .ekn-main .ek-sechead__more{ font-size:14px; min-height:44px; align-items:center; }
  .ekn-main .ek-sechead__more .ek-ico{ width:16px; height:16px; }
}
@media (max-width:359px){ .ekn-main .ek-sechead__more{ font-size:0; } .ekn-main .ek-sechead__more .ek-ico{ width:22px; height:22px; } }

/* ---------------------------------------------------------------- hero -- */
.ekn-hero{ padding-top:20px; }
.ekn-hero__wrap{ display:grid; grid-template-columns:minmax(0, 1.08fr) minmax(0, .92fr); gap:0; }
.ekn-hero__copy,
.ekn-hero__media{ min-height:360px; }
.ekn-hero__copy{ display:flex; flex-direction:column; justify-content:center; padding:40px 44px; background:var(--ekn-sea); border-radius:var(--ek-r-lg) 0 0 var(--ek-r-lg); }
.ekn-hero--text .ekn-hero__wrap{ grid-template-columns:minmax(0, 1fr); }
.ekn-hero--text .ekn-hero__copy{ border-radius:var(--ek-r-lg); min-height:300px; }
.ekn-hero__place{ display:inline-flex; align-items:center; gap:6px; align-self:flex-start; margin:0 0 14px; padding:4px 12px 4px 9px; border-radius:var(--ek-r-pill); background:#fff; color:var(--ekn-sea-ink); font-size:14px; font-weight:700; }
.ekn-hero__place .ek-ico{ width:16px; height:16px; }
.ekn-hero__title{ font-size:clamp(30px, 3.5vw, 46px); font-weight:800; letter-spacing:-.02em; line-height:1.08; max-width:17ch; color:var(--ek-ink); }
.ekn-hero__text{ margin:14px 0 0; font-size:var(--ek-fs-md); color:var(--ek-ink-2); max-width:44ch; }
.ekn-hero__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.ekn-hero__actions .ek-btn--secondary{ border-color:transparent; }
.ekn-hero__actions .ek-btn--secondary:hover{ border-color:var(--ek-ink); }
.ekn-hero__media{ position:relative; overflow:hidden; border-radius:0 var(--ek-r-lg) var(--ek-r-lg) 0; background:var(--ekn-sand); }
.ekn-hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* Collage of the store's own product photos: one wide tile on top (most product photos are landscape), two below.
   Images sit absolutely in their tile so they always fill it, whatever the row heights resolve to. */
.ekn-collage{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1.35fr 1fr; gap:12px; padding:18px; }
.ekn-collage__tile{ position:relative; background:#fff; border-radius:var(--ek-r); overflow:hidden; min-height:0; }
.ekn-collage__tile--1{ grid-column:1 / span 2; }
.ekn-collage__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:12px; }
@media (max-width:900px){
  .ekn-hero__copy{ padding:32px 28px; }
  .ekn-hero__copy, .ekn-hero__media{ min-height:300px; }
  .ekn-collage{ padding:12px; gap:8px; }
}
@media (max-width:640px){
  /* Phones: the copy and buttons only, so products come up quickly. */
  .ekn-hero{ padding-top:12px; }
  .ekn-hero__wrap{ grid-template-columns:minmax(0, 1fr); }
  .ekn-hero__media{ display:none; }
  .ekn-hero__copy{ border-radius:var(--ek-r-lg); min-height:0; padding:22px 20px 24px; }
  .ekn-hero__place{ margin-bottom:10px; font-size:13px; }
  .ekn-hero__title{ font-size:28px; }
  .ekn-hero__text{ font-size:16px; margin-top:10px; }
  .ekn-hero__actions{ margin-top:18px; gap:10px; }
  .ekn-hero__actions .ek-btn{ flex:1 1 100%; min-height:50px; font-size:16px; }
}

/* ---------------------------------------------------------------- shop essentials -- */
.ekn-tiles{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px; list-style:none; }
.ekn-tile{ position:relative; display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid var(--ek-line); border-radius:var(--ek-r-lg); overflow:hidden; color:var(--ek-ink); text-decoration:none;
  transition:border-color var(--ek-dur) var(--ek-ease), box-shadow var(--ek-dur) var(--ek-ease); }
.ekn-tile:hover{ border-color:var(--ek-line-strong); box-shadow:var(--ek-shadow-2); }
.ekn-tile:hover .ekn-tile__name{ text-decoration:underline; text-underline-offset:3px; }
.ekn-tile__media{ display:flex; align-items:center; justify-content:center; aspect-ratio:4 / 3; background:var(--ek-well); overflow:hidden; }
.ekn-tile__img{ display:block; width:100%; height:100%; object-fit:contain; padding:14px; }
.ekn-fit-cover .ekn-tile__img{ object-fit:cover; padding:0; }
.ekn-tile__mono{ font-size:30px; font-weight:800; color:var(--ekn-sea-ink); }
.ekn-tile__txt{ display:flex; flex-direction:column; gap:2px; padding:12px 40px 14px 16px; }
.ekn-tile__name{ font-size:17px; font-weight:750; line-height:1.25; }
.ekn-tile__count{ font-size:14px; color:var(--ek-muted); }
.ekn-tile__go{ position:absolute; right:14px; bottom:18px; width:20px; height:20px; color:var(--ek-muted); }
@media (max-width:900px){
  .ekn-tiles{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
  .ekn-tile{ flex-direction:row; align-items:center; min-height:76px; }
  .ekn-tile__media{ flex:none; width:64px; height:64px; aspect-ratio:auto; margin:6px; border-radius:var(--ek-r-sm); }
  .ekn-tile__img{ padding:5px; }
  .ekn-tile__mono{ font-size:20px; }
  .ekn-tile__txt{ padding:8px 30px 8px 6px; min-width:0; }
  .ekn-tile__name{ font-size:15px; }
  .ekn-tile__count{ font-size:13px; }
  .ekn-tile__go{ top:50%; bottom:auto; right:8px; transform:translateY(-50%); width:18px; height:18px; }
}
@media (max-width:600px){
  .ekn-tile{ min-height:68px; }
  .ekn-tile__media{ width:52px; height:52px; margin:6px 4px 6px 6px; }
  .ekn-tile__txt{ padding:8px 10px 8px 6px; }
  .ekn-tile__name{ font-size:14.5px; line-height:1.2; overflow-wrap:break-word; -webkit-hyphens:auto; hyphens:auto; }
  .ekn-tile__go{ display:none; }
  .ekn-cats .ek-sechead{ margin-bottom:14px; }
}
@media (max-width:380px){ .ekn-tile__media{ width:44px; height:44px; } .ekn-tile__name{ font-size:14px; } }
@media (max-width:359px){ .ekn-tiles{ grid-template-columns:minmax(0, 1fr); } }

/* ---------------------------------------------------------------- products -- */
.ekn-grid--few{ grid-template-columns:repeat(auto-fill, minmax(220px, 280px)); }

/* ---------------------------------------------------------------- fishing trips -- */
.ekn-trips__list{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px; list-style:none; }
.ekn-trips__list--1{ grid-template-columns:minmax(0, 420px); }
.ekn-trips__list--2{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.ekn-trips__list--3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.ekn-trip{ display:flex; flex-direction:column; height:100%; background:var(--ekn-sand); border-radius:var(--ek-r-lg); overflow:hidden; color:var(--ek-ink); text-decoration:none; }
.ekn-trip__media{ display:flex; align-items:center; justify-content:center; aspect-ratio:16 / 9; background:#fff; border:1px solid var(--ek-line); border-bottom:0; border-radius:var(--ek-r-lg) var(--ek-r-lg) 0 0; overflow:hidden; }
.ekn-trip__img{ width:100%; height:100%; object-fit:contain; padding:12px; }
.ekn-trip__media.ekn-fit-cover .ekn-trip__img{ object-fit:cover; padding:0; }
.ekn-trip__body{ display:flex; flex-direction:column; gap:4px; padding:16px 18px 18px; flex:1; }
.ekn-trip__label{ font-size:20px; font-weight:800; letter-spacing:-.01em; }
.ekn-trip__text{ color:var(--ek-ink-2); }
.ekn-trip__go{ display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:8px; font-weight:700; color:var(--ek-brand-strong); }
.ekn-trip:hover .ekn-trip__go{ text-decoration:underline; text-underline-offset:3px; }
@media (max-width:900px){ .ekn-trips__list, .ekn-trips__list--3{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:560px){ .ekn-trips__list, .ekn-trips__list--2, .ekn-trips__list--3{ grid-template-columns:minmax(0, 1fr); } }

/* ---------------------------------------------------------------- brands -- */
.ekn-brandlist{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; }
.ekn-brand{ display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 18px; background:#fff; border:1px solid var(--ek-line-strong); border-radius:var(--ek-r-pill); color:var(--ek-ink); font-weight:700; text-decoration:none; }
.ekn-brand:hover{ border-color:var(--ek-ink); }
.ekn-brand--logo{ width:150px; height:72px; padding:10px 16px; border-radius:var(--ek-r); }
.ekn-brand--logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.ekn-allbrands{ margin-top:18px; }
.ekn-allbrands summary{ display:inline-flex; align-items:center; gap:6px; min-height:44px; font-weight:700; cursor:pointer; list-style:none; }
.ekn-allbrands summary::-webkit-details-marker{ display:none; }
.ekn-allbrands__chev{ width:18px; height:18px; transition:transform var(--ek-dur) var(--ek-ease); }
.ekn-allbrands[open] .ekn-allbrands__chev{ transform:rotate(180deg); }
.ekn-allbrands__list{ columns:4 200px; column-gap:28px; list-style:none; padding:10px 0 0; }
.ekn-allbrands__list li{ break-inside:avoid; }
.ekn-allbrands__list a{ display:inline-block; padding:6px 0; color:var(--ek-ink-2); text-decoration:none; }
.ekn-allbrands__list a:hover{ color:var(--ek-ink); text-decoration:underline; text-underline-offset:3px; }

/* ---------------------------------------------------------------- visit the shop -- */
.ekn-visit{ outline:none; }
.ekn-visit__card{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:32px 48px; padding:40px 44px; background:var(--ek-ink); color:#fff; border-radius:var(--ek-r-lg); }
.ekn-visit .ek-h2{ color:#fff; }
.ekn-visit__lead{ margin:10px 0 0; color:#d5dfe3; font-size:var(--ek-fs-md); }
.ekn-visit__pickup{ display:flex; gap:10px; align-items:flex-start; margin:18px 0 0; padding:12px 14px; border-radius:var(--ek-r); background:rgba(255,255,255,.08); color:#eef3f5; max-width:46ch; }
.ekn-visit__pickup .ek-ico{ flex:none; margin-top:2px; }
.ekn-visit__intro .ek-btn{ margin-top:22px; }
.ekn-visit__facts{ display:grid; gap:18px; margin:0; align-content:center; }
.ekn-visit__fact{ display:grid; grid-template-columns:24px minmax(0, 1fr); column-gap:12px; }
.ekn-visit__fact .ek-ico{ grid-row:1 / span 2; width:22px; height:22px; color:#9fc4bd; margin-top:2px; }
.ekn-visit__fact dt{ font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#a9bac1; }
.ekn-visit__fact dd{ margin:2px 0 0; font-size:17px; font-weight:600; }
.ekn-visit__fact a{ color:#fff; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(255,255,255,.45); }
.ekn-visit__fact a:hover{ text-decoration-color:#fff; }
.ekn-visit :focus-visible{ outline-color:#fff; }
@media (max-width:820px){ .ekn-visit__card{ grid-template-columns:minmax(0, 1fr); padding:28px 22px; } }
