@charset "UTF-8";

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  /* Brand */
  --c-blue: #457B9D;      /* Header & footer background + primary buttons */
  --c-teal: #12d4c7;      /* Focus ring accent */
  --c-gold: #c7a45a;      /* Accent only on light backgrounds */
  --c-amber-ink:#7a5c23;  /* AA-passing “gold” for text on light bg */
  --c-sand: #f4efe6;      /* Light section background */
  --c-ink:  #0e1b2a;      /* Headings on light */
  --c-white:#ffffff;
  --c-text: #2a3440;      /* Body text on light */
  --c-muted:#5a6b78;      /* Muted text */

  /* Radii & shadows */
  --radius: 12px;
  --radius-sm: 8px;
  --shadow-sm: 0 8px 18px rgba(0,0,0,.08);
  --shadow-md: 0 12px 28px rgba(0,0,0,.14);

  /* Spacing */
  --section-pad: 56px;
}
@media (min-width: 992px){
  :root{ --section-pad: 100px; }
}

/* =========================================================
   BASE
   ========================================================= */
*{ box-sizing:border-box; }
html{ font-size:16px; }
body{
  margin:0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--c-text);
  background:#fff;
  line-height:1.55;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }

/* Links: no underline by default */
a,
a:link,
a:visited{
  color: inherit;
  text-decoration: none;
  transition: color .2s ease, background-color .2s ease, opacity .2s ease, box-shadow .2s ease;
}
a:hover{ opacity:.9; }
a:focus-visible{
  outline: 2px solid var(--c-teal);
  outline-offset: 2px;
}

/* Keep underlines ONLY in single blog posts (not pages/home) */
.single .entry-content a:not(.btn):not(.button){
  color: var(--c-blue);
  text-decoration: underline;
  text-underline-offset: .2em;
  text-decoration-thickness: .08em;
}
.single .entry-content a:not(.btn):hover{ text-decoration: none; }

/* Headings / text */
h1,h2,h3,h4,h5,h6{ color: var(--c-ink); margin:0 0 .35em; line-height:1.2; font-weight:800; }
p{ margin:0 0 1rem; color: var(--c-text); }

/* Smooth anchor offset (sticky header) */
[id]{ scroll-margin-top: 90px; }

/* Utility spacing */
.section-50{ padding:50px 0; }
.section-100{ padding: var(--section-pad) 0; }

/* Simple helpers */
.text-blue{ color: var(--c-blue) !important; }

/* Contrast-safe “gold” text for light backgrounds */
.text-gold{ color: var(--c-amber-ink) !important; }

.bg-blue{ background-color: var(--c-blue) !important; color:#fff !important; }
.separator{ width:60px; height:3px; border-radius:999px; background: var(--c-gold); margin:.75rem auto 0; }

/* Cards */
.card{ border:0; border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow:hidden; background:#fff; }
.card-body{ padding:1rem; }
.card-title{ font-size:1.05rem; line-height:1.25; }
.card.shadow-sm:hover{ box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.18) !important; }

/* =========================================================
   BUTTONS — unify all CTAs to same look
   ========================================================= */
.btn{
  border-radius: 999px;
  font-weight:700;
  padding: .55rem 1rem;
  line-height:1.2;
  text-decoration: none !important;  /* never underline buttons */
}
.btn:focus-visible{ box-shadow: 0 0 0 .2rem rgba(18,212,199,.35); }

/* Primary style (used for ALL CTAs) */
.btn-primary,
.btn-light,            /* normalize to primary look */
.btn-outline-light,    /* normalize to primary look */
.btn-outline-blue {    /* legacy helper */
  background: var(--c-blue) !important;
  border-color: var(--c-blue) !important;
  color: #fff !important;
}

/* Hover/active: keep contrast strong */
.btn-primary:hover,
.btn-primary:active,
.btn-light:hover,
.btn-outline-light:hover,
.btn-outline-blue:hover{
  filter: brightness(.95);
  color:#fff !important;
}

/* Small buttons */
.btn-sm{ padding:.45rem .9rem; font-weight:700; }

/* =========================================================
   HEADER / NAV
   ========================================================= */
.cbp-af-header.sticky-top{ z-index:1040; }
.cbp-af-header{
  position:sticky; top:0; left:0; width:100%;
  background: var(--c-blue);
  transition: all .3s ease;
}
.padding-on-scroll{ padding: 10px 0; transition: all .3s ease; }
.navbar-brand{ height:55px; padding:0; margin:0; display:block; transition: all .3s ease; }
.navbar-brand img{ height:100%; width:auto; }
.cbp-af-header.cbp-af-header-shrink .navbar-brand{ height:45px; }
.cbp-af-header.cbp-af-header-shrink .padding-on-scroll{ padding:10px 0; }

/* Nav links: WHITE on blue (no underline) */
.navbar .nav-link,
.navbar .dropdown-item,
.navbar-brand{
  text-decoration: none !important;
}
.navbar.navbar-dark .navbar-nav .nav-link{
  color:#fff; font-weight:700; letter-spacing:.02em;
  font-size: 13px; text-transform: uppercase;
  padding: 15px 0; margin: 0 15px;
}
.navbar.navbar-dark .navbar-nav .nav-link:hover,
.navbar.navbar-dark .navbar-nav .nav-item.active .nav-link{
  color:#fff; opacity:.85;
}

/* Dropdowns (desktop) */
@media (min-width: 992px){
  .navbar .dropdown-menu{
    background: var(--c-blue);
    border: none;
    border-radius: var(--radius-sm);
    padding: 8px;
    min-width: 260px;
    box-shadow: var(--shadow-md);
    opacity:0; visibility:hidden; transform: translateY(6px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  }
  .navbar .dropdown:hover>.dropdown-menu{
    opacity:1; visibility:visible; transform: translateY(0);
  }
}
.navbar .dropdown-menu .dropdown-item{
  color:#fff; font-size:14px; padding:10px 12px; border-radius:8px;
}
.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus{
  color:#fff; background: rgba(255,255,255,.08);
}

/* CSS-only carets */
.navbar .dropdown-toggle,
.nav-link.dropdown-toggle{ display:inline-flex; align-items:center; }
.navbar .dropdown-toggle::after,
.nav-link.dropdown-toggle::after{
  content:""; display:inline-block; width:1.05em; height:1.05em; margin-left:.5em; background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 9l6 6 6-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center/contain;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 9l6 6 6-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center/contain;
  transition: transform .25s ease;
}
.navbar .show.dropdown-toggle::after,
.nav-link.dropdown-toggle[aria-expanded="true"]::after{ transform: rotate(180deg); }

/* Mobile off-canvas */
@media (max-width: 991.98px){
  .navbar{ padding:0 !important; }
  .navbar-collapse{
    position: fixed; top: 0; left: 0; height: 100vh; max-height: 100vh;
    width: 320px; max-width: calc(100vw - 60px);
    background: var(--c-blue);
    padding: 32px 16px 20px;
    overflow-y: auto; transform: translateX(-100%);
    transition: transform .3s ease;
    z-index: 9999;
  }
  .navbar-collapse.show{ transform: translateX(0); box-shadow: 15px 0 25px rgba(0,0,0,.25); }
  .navbar .navbar-nav .nav-link{ margin:0; padding:13px 0; font-size:16px; }
  .navbar .dropdown-menu{ background: var(--c-blue); border:0; border-radius:0; padding:0; }
  .navbar .dropdown-menu .dropdown-item{ padding: 0 8px; line-height: 42px; }
}

/* =========================================================
   BLOG OVERVIEW
   ========================================================= */
.blog-overview .post-thumb{ aspect-ratio: 3 / 2; background:#0f2330; overflow:hidden; border-top-left-radius: var(--radius); border-top-right-radius: var(--radius); }
@supports not (aspect-ratio: 3 / 2){
  .blog-overview .post-thumb{ position:relative; padding-top:66.6667%; }
  .blog-overview .post-thumb > *{ position:absolute; inset:0; }
}
.blog-overview .img-cover{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.blog-overview .card{ border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.blog-overview .card-body{ display:flex; flex-direction:column; }
.blog-overview .card-title{ margin-bottom:.5rem; color: var(--c-ink); }
.blog-overview .card-text{ flex-grow:1; color: var(--c-muted); }

/* Pagination (Bootstrap mapping) */
.pagination-wrapper{ overflow-x:auto; white-space:nowrap; text-align:center; padding:10px 0; }
.pagination{ gap:.25rem; }
.pagination .page-link{ border-radius: .6rem; }
.pagination .page-item .page-link{ color:#fff; background: #0d6efd; border-color:#0d6efd; }
.pagination .page-item .page-link:hover{ background:#0b5ed7; border-color:#0b5ed7; color:#fff; }
.pagination .page-item.active .page-link{ background: var(--c-blue) !important; border-color: var(--c-blue) !important; }
.pagination .page-item.disabled .page-link{ color:#6c757d; background:transparent; border-color:transparent; }

/* =========================================================
   FOOTER (contrast-safe)
   ========================================================= */
footer{
  clear:both;
  background: var(--c-blue);
  color: #fff;  /* body text = white (AA on blue) */
}
footer .footer__top{ padding: 80px 0 50px; }
@media (max-width: 991.98px){
  footer .footer__top{ padding: 70px 0 0; }
}

/* Columns paddings */
footer .footer-widget.footer-col-1{ padding-right:20px; }
footer .footer-widget.footer-col-4{ padding-left:35px; }
@media (max-width: 991.98px){
  footer .footer-widget.footer-col-1,
  footer .footer-widget.footer-col-4{ padding-left:0; padding-right:0; }
}

/* Optional subtle divider on first column */
@media (min-width: 992px){
  footer .footer-widget-border{ position:relative; }
  footer .footer-widget-border::after{
    content:""; position:absolute; top:0; right:-12px; width:1px; height:100%;
    background: linear-gradient(#ffffff1a,#ffffff2e);
  }
}

/* Titles → white */
footer .footer-widget .footer-widget-title{
  font-size:1rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:#fff; margin-bottom: 20px;
}

/* Links list in footer: white + subtle underline on hover via ::after (no real underline) */
.footer-links{ padding:0; margin:0; list-style:none; }
.footer-links li{ margin-bottom:12px; }
.footer-links a{
  color:#fff; position:relative; line-height:1.3;
  text-decoration: none !important;
}
.footer-links a::after{
  content:""; position:absolute; left:auto; right:0; bottom:-2px; width:0; height:1px; background:#fff;
  transition: width .2s ease, left .2s ease, right .2s ease;
}
.footer-links a:hover{ color:#fff; }
.footer-links a:hover::after{ width:100%; left:0; right:auto; }

/* Make any .text-white-50 inside footer solid white for AA */
footer .text-white-50{ color:#fff !important; opacity:1 !important; }

/* Social icons — bigger */
.footer-social{ padding:0; margin:0; list-style:none; }
.footer-social li{ display:inline-block; margin-right:14px; }
.footer-social a{
  color:#fff;
  font-size:1.5rem;                /* was 1.25rem */
  text-decoration:none !important;
  line-height:1;
  display:inline-flex;
  align-items:center;
}
.footer-social a:hover{ color:#fff; opacity:.85; }
@media (min-width: 992px){
  .footer-social a{ font-size:1.75rem; } /* larger on desktop */
}

/* Bottom strip */
.footer-bottom{ border-top:1px solid rgba(255,255,255,.14); }
.footer-bottom .footer-bottom-wrapper{ padding:35px 0; }
.footer-bottom .footer-bottom-links ul{ padding:0; margin:0; list-style:none; }
.footer-bottom .footer-bottom-links li{ display:inline-block; margin-right:15px; }
.footer-bottom .footer-bottom-links a{
  font-size:.95rem; color:#fff; text-decoration:none !important;
}
.footer-bottom .footer-bottom-links a:hover{ color:#fff; opacity:.85; }

/* Copyright line → white; keep classic underline only here */
.footer-bottom .footer-copyright p{
  margin:.25rem 0 0; color:#fff; font-size:.95rem;
}
.footer-bottom .footer-copyright a{
  color:#fff; text-decoration: underline;
  text-underline-offset:.18em;
}
.footer-bottom .footer-copyright a:hover{
  color:#fff; opacity:.9; text-decoration-color:#fff;
}

/* Footer payment icons — larger size + color */
.footer-bottom .icon{
  color:#fff !important;
  display:inline-flex;
  align-items:center;
  line-height:1;
  font-size: 1.75rem;              /* bigger by default */
}
.footer-bottom .icon.fs-4{ font-size: inherit !important; } /* let footer size win */
.footer-bottom .icon svg{
  width: 1em;
  height: 1em;
  display: block;
  fill: currentColor;
}
.footer-bottom .icon + .icon{ margin-left:.65rem; }

@media (min-width: 992px){
  .footer-bottom .icon{ font-size: 2rem; }    /* even larger on desktop */
  .footer-bottom .icon + .icon{ margin-left:.85rem; }
}

/* =========================================================
   CF7 SUBMIT BUTTONS
   ========================================================= */
.wpcf7 form .wpcf7-submit,
.wpcf7 form button[type="submit"],
.wpcf7 .btn.btn-red{
  background: transparent !important;
  color: #fff !important;
  border: 2px solid #fff !important;
  border-radius: 6px;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s;
  text-decoration: none !important;
}
.wpcf7 form .wpcf7-submit:hover,
.wpcf7 form button[type="submit"]:hover,
.wpcf7 .btn.btn-red:hover,
.wpcf7 form .wpcf7-submit:focus,
.wpcf7 form button[type="submit"]:focus,
.wpcf7 .btn.btn-red:focus{
  background:#fff !important; color:#000 !important; border-color:#fff !important;
  box-shadow:0 0 0 .25rem rgba(255,255,255,.25); outline:none;
}
.wpcf7 form .wpcf7-submit:disabled,
.wpcf7 form button[type="submit"]:disabled,
.wpcf7 .btn.btn-red:disabled{ opacity:.6; cursor:not-allowed; }

/* =========================================================
   HOMEPAGE OVERRIDES
   ========================================================= */

/* HERO: smaller image, no crop on desktop */
#hero{ padding: clamp(36px, 5vw, 64px) 0; }
#hero img{
  max-height: 420px;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Trips grid */
.trips-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media (min-width: 768px){ .trips-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 992px){
  .trips-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); grid-auto-rows: 1fr; }
}
.trips-grid .card{ height: 100%; }

/* What's Biting */
.bites-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media (min-width:768px){ .bites-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width:992px){ .bites-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); } }

/* Calendar smaller & centered */
#bites .calendar-wrap{ max-width: 420px; margin: 1rem auto 0; }
#bites .calendar-wrap img{
  width: 100%; height: auto; display: block;
  border-radius: var(--radius); box-shadow: var(--shadow-sm);
}

/* Combo image */
#combo img{
  max-height: 360px; width: 100%; height: auto; object-fit: cover;
}

/* =========================================================
   NO-UNDERLINE SAFETY NET FOR UI ELEMENTS
   (handles any stray plugin/theme rules)
   ========================================================= */
.btn,
a.btn,
.navbar .nav-link,
.navbar .dropdown-item,
.navbar-brand,
.footer-links a,
.footer-social a {
  text-decoration: none !important;
}

/* =========================================================
   Floating WhatsApp button
   ========================================================= */
#wa-button.wa-float{
  position: fixed;
  right: calc(16px + env(safe-area-inset-right, 0px));
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 10000;

  display: inline-flex;
  align-items: center;
  gap: 10px;

  background: #25D366;   /* WhatsApp green */
  color: #fff;
  padding: .65rem .9rem;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  font-weight: 700;
  line-height: 1;
}
#wa-button.wa-float:hover{ filter: brightness(.95); color:#fff; }
#wa-button.wa-float:focus-visible{
  outline: 2px solid #12d4c7;
  outline-offset: 2px;
}

/* Keep the SVG using currentColor */
#wa-button.wa-float svg{ display:block; }

/* Label visibility: hide on small screens → icon-only */
#wa-button .wa-label{ display:inline-block; }
@media (max-width: 575.98px){
  #wa-button.wa-float{
    padding: 14px;
    width: 56px; height: 56px;
    justify-content: center;
  }
  #wa-button .wa-label{ display:none; }
}


/* Tighten CF7 spacing inside Bootstrap grid */
.wpcf7 .row [class^="col-"] > p { margin-bottom: 0; }

/* Make labels actually look like labels */
.wpcf7 .form-label { display:block; margin-bottom:.375rem; font-weight:600; }

/* Phone plugin (intlTelInput) — match Bootstrap width/padding */
.wpcf7 .iti { width: 100%; }
.wpcf7 input[type="tel"].form-control { padding-left: 3.25rem; } /* room for flag */

/* CF7 messages */
.wpcf7 .wpcf7-not-valid-tip { display:block; margin-top:.25rem; font-size:.875rem; color:#dc3545; }
.wpcf7 .wpcf7-response-output { margin-top:1rem; }

/* Optional: rounder inputs to match theme if needed */
/* .wpcf7 .form-control, .wpcf7 .form-select { border-radius: .5rem; } */

/* CF7 submit button - brand blue background + white text */
.wpcf7 form .submitfish {
  /* Use Bootstrap's primary if defined, else fallback */
  --fish-primary: var(--bs-primary, #0d6efd);
  --fish-primary-rgb: var(--bs-primary-rgb, 13,110,253);

  display: inline-block;
  padding: .5rem 1.25rem;        /* ~ py-2 px-4 */
  font-weight: 600;
  line-height: 1.5;
  color: #fff !important;
  background-color: var(--fish-primary) !important;
  border: 1px solid var(--fish-primary);
  border-radius: var(--bs-border-radius, .375rem);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, box-shadow .15s ease, transform .05s ease;
}

/* Hover / active */
.wpcf7 form .submitfish:hover {
  background-color: rgba(var(--fish-primary-rgb), .9) !important;
  border-color: rgba(var(--fish-primary-rgb), .9);
  transform: translateY(-1px);
}
.wpcf7 form .submitfish:active {
  transform: translateY(0);
  background-color: rgba(var(--fish-primary-rgb), .82) !important;
  border-color: rgba(var(--fish-primary-rgb), .82);
}

/* Focus ring (accessibility) */
.wpcf7 form .submitfish:focus,
.wpcf7 form .submitfish:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(var(--fish-primary-rgb), .25);
}

/* Disabled state (CF7 prevents double-submit) */
.wpcf7 form .submitfish[disabled] {
  opacity: .65;
  pointer-events: none;
}

/* Optional full-width variant if you add class:is-full on the submit */
.wpcf7 form .submitfish.is-full {
  width: 100%;
}

/* CF7 submit on Booking page: force brand blue + white */
body.page-id-5832 .wpcf7 input.wpcf7-submit {
  --fish-primary: var(--bs-primary, #0d6efd);
  --fish-primary-rgb: var(--bs-primary-rgb, 13,110,253);

  color: #fff !important;
  background-color: var(--fish-primary) !important;
  border: 1px solid var(--fish-primary) !important;

  padding: .5rem 1rem;
  font-weight: 600;
  border-radius: var(--bs-border-radius, .375rem);
  transition: background-color .15s ease, box-shadow .15s ease, transform .05s ease;
}

body.page-id-5832 .wpcf7 input.wpcf7-submit:hover {
  background-color: rgba(var(--fish-primary-rgb), .9) !important;
  border-color: rgba(var(--fish-primary-rgb), .9) !important;
  transform: translateY(-1px);
}

body.page-id-5832 .wpcf7 input.wpcf7-submit:active {
  transform: translateY(0);
  background-color: rgba(var(--fish-primary-rgb), .82) !important;
  border-color: rgba(var(--fish-primary-rgb), .82) !important;
}

body.page-id-5832 .wpcf7 input.wpcf7-submit:focus {
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(var(--fish-primary-rgb), .25);
}

