:root{--navy:#173e59;--blue:#256b84;--aqua:#bfe7e4;--aqua2:#e8f8f6;--sand:#f7f0e3;--warm:#fffaf2;--text:#24313a;--muted:#63747d;--line:#d8e5e5;--shadow:0 18px 45px rgba(23,62,89,.14);--radius:22px;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--warm);line-height:1.55}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,250,242,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px clamp(18px,4vw,48px)}.brand{display:flex;align-items:center;gap:12px;color:var(--navy);text-decoration:none}.brand:hover{text-decoration:none}.brand-mark{font-size:32px}.brand small{display:block;font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.02em}.site-nav{display:flex;align-items:center;gap:18px}.site-nav a{font-weight:700;color:var(--navy)}.site-nav a.active,.site-nav a[aria-current=page]{color:var(--blue)}.nav-toggle{display:none;border:0;background:var(--navy);color:white;border-radius:12px;font-size:22px;padding:8px 12px}.button,.button:visited{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--navy);color:white!important;padding:14px 22px;font-weight:800;text-decoration:none;box-shadow:0 10px 25px rgba(23,62,89,.18);cursor:pointer}.button:hover{background:#0f2e43;text-decoration:none}.button.secondary{background:white;color:var(--navy)!important;border:1px solid var(--line);box-shadow:none}.button.small{padding:10px 16px;font-size:14px}.button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:18px}.hero{position:relative;min-height:680px;display:grid;align-items:center;background:linear-gradient(90deg,rgba(15,47,65,.72),rgba(15,47,65,.18)),url('../images/shared/beach-sunset.jpg') center/cover no-repeat;color:white;padding:70px clamp(22px,5vw,64px)}.hero .content{max-width:780px}.eyebrow{display:inline-flex;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:8px 14px;font-weight:800;letter-spacing:.02em}.hero h1,.page-hero h1{font-size:clamp(42px,8vw,86px);line-height:.96;margin:20px 0 18px}.hero p{font-size:clamp(18px,2.4vw,25px);max-width:680px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:var(--max);margin:-48px auto 0;position:relative;z-index:3;padding:0 18px}.trust-card{background:white;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);font-weight:800;color:var(--navy)}.trust-card span{display:block;font-size:13px;color:var(--muted);font-weight:700}.section{max-width:var(--max);margin:0 auto;padding:80px 18px}.section.tight{padding-top:35px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.section h2,.section h1{font-size:clamp(30px,4.5vw,52px);line-height:1.05;margin:0 0 12px;color:var(--navy)}.section p.lead{font-size:19px;color:var(--muted);max-width:770px}.grid{display:grid;gap:22px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 9px 28px rgba(23,62,89,.08)}.card.no-shadow{box-shadow:none;border:0;border-radius:0}.card.pad{padding:24px}.card img{width:100%;height:270px;object-fit:cover}.card h3{font-size:24px;color:var(--navy);margin:0 0 8px}.badge-row{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}.badge{background:var(--aqua2);color:var(--navy);border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-weight:800;font-size:13px}.feature{padding:24px;border-radius:18px;background:linear-gradient(180deg,#fff,var(--aqua2));border:1px solid var(--line)}.feature .icon{font-size:34px}.feature h3{color:var(--navy);margin:8px 0}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}.split.reverse{grid-template-columns:.95fr 1.05fr}.split-img{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.split-img img{height:480px;width:100%;object-fit:cover}.map-card{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:white;min-height:430px;border:1px solid var(--line)}.map-card iframe{display:block;width:100%;height:430px;border:0}.map-card.large iframe{height:520px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gallery figure{margin:0;background:white;border-radius:16px;overflow:hidden;border:1px solid var(--line)}.gallery img{width:100%;height:220px;object-fit:cover}.gallery figcaption{padding:10px 12px;font-weight:800;color:var(--navy);font-size:14px}.page-hero{padding:82px clamp(22px,5vw,64px);background:linear-gradient(120deg,var(--navy),var(--blue));color:white}.page-hero p{font-size:20px;max-width:820px}.page-hero .badge{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.26);color:white}.amenities{columns:2;list-style:none;margin:0;padding:0}.amenities li{break-inside:avoid;margin:0 0 10px;padding-left:26px;position:relative}.amenities li:before{content:'✓';position:absolute;left:0;color:var(--blue);font-weight:900}.form-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start}.form-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}label{display:block;font-weight:800;color:var(--navy);margin:14px 0 7px}input,select,textarea{width:100%;border:1px solid #bfd0d1;border-radius:12px;padding:12px 13px;font:inherit;background:#fff}textarea{min-height:120px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.notice{border-radius:16px;padding:16px 18px;margin:18px 0;border:1px solid var(--line);background:var(--aqua2)}.notice.success{background:#edf9ef;border-color:#b7dfbd}.notice.error{background:#fff0ef;border-color:#f0b8b2}.muted{color:var(--muted)}.small-print{font-size:13px;color:var(--muted)}code{background:#f1f6f6;border:1px solid var(--line);border-radius:6px;padding:1px 5px}.calendar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.month{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.month h3{margin:0;padding:14px 16px;background:var(--navy);color:white}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#dce8e8}.days div{background:white;min-height:42px;padding:7px;text-align:center;font-size:13px}.days .head{font-weight:900;background:var(--sand);min-height:auto}.days .booked{background:#f5d8d2;color:#842b1d;font-weight:900}.days .blank{background:#f7fbfb}.cta{background:linear-gradient(135deg,var(--aqua),var(--sand));border-radius:28px;padding:42px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-footer{background:var(--navy);color:white;display:grid;grid-template-columns:2fr 1fr 1fr;gap:34px;padding:52px clamp(22px,5vw,64px);margin-top:50px}.site-footer a{display:block;color:white;margin:7px 0}.site-footer p,.site-footer .small-print{color:#d7e6ea}.site-footer h3{margin-top:0}.review{font-size:18px}.stars{color:#c98d1a;font-size:24px;letter-spacing:1px}.compare-table{width:100%;border-collapse:collapse;background:white;border-radius:18px;overflow:hidden;border:1px solid var(--line)}.compare-table th,.compare-table td{padding:14px;border-bottom:1px solid var(--line);text-align:left}.compare-table th{background:var(--aqua2);color:var(--navy)}@media(max-width:980px){.site-nav{gap:12px}.site-nav a{font-size:14px}.grid.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.nav-toggle{display:block}.site-nav{display:none;position:absolute;left:14px;right:14px;top:72px;background:white;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.site-nav.open{display:flex}.hero{min-height:600px}.trust-strip,.grid.two,.grid.three,.grid.four,.split,.split.reverse,.form-wrap,.calendar-grid,.site-footer{grid-template-columns:1fr}.section-head{display:block}.gallery{grid-template-columns:1fr 1fr}.cta{display:block}.form-grid{grid-template-columns:1fr}.amenities{columns:1}}@media(max-width:560px){.hero h1,.page-hero h1{font-size:42px}.hero{padding-top:56px;padding-bottom:56px;min-height:540px}.trust-strip{margin-top:0;padding-top:18px}.gallery{grid-template-columns:1fr}.card img{height:230px}.split-img img{height:340px}.map-card,.map-card iframe{min-height:340px;height:340px}.site-header{align-items:flex-start}.brand small{display:none}}

/* Availability date-selection calendar fixes */
.availability-page{max-width:1280px}.availability-list{display:grid;grid-template-columns:1fr;gap:28px}.availability-card{overflow:visible}.availability-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.selected-dates{background:var(--aqua2);border:1px solid var(--line);border-radius:16px;color:var(--navy);font-weight:900;padding:13px 16px;min-width:260px;text-align:center}.availability-page .calendar-grid{grid-template-columns:repeat(auto-fit,minmax(286px,1fr));gap:18px;width:100%;overflow:visible}.availability-page .month{min-width:0}.availability-page .days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;width:100%;overflow:hidden}.availability-page .days button,.availability-page .days div{min-width:0;width:100%;min-height:44px}.days .day{appearance:none;border:0;background:white;color:var(--text);font:inherit;text-align:center;padding:7px;cursor:pointer;position:relative;border-radius:0}.days .day.available:hover{background:var(--aqua2);outline:2px solid var(--blue);z-index:1}.days .day.booked{background:#f5d8d2;color:#842b1d;font-weight:900;cursor:not-allowed}.days .day.checkout-ok{cursor:pointer;background:linear-gradient(135deg,#fff 0 33%,#f5d8d2 34% 100%)}.days .day.checkout-ok:hover{outline:2px solid var(--blue);z-index:1}.days .day.past{opacity:.38;cursor:not-allowed}.days .day.selected-start,.days .day.selected-end{background:var(--navy)!important;color:white!important;font-weight:900}.days .day.selected-range{background:#dff4f1!important;color:var(--navy);font-weight:800}.quote-link.disabled{opacity:.48;cursor:not-allowed;pointer-events:auto}.validation-message.error-text{color:#a1281a;font-weight:800}.availability-actions{align-items:center}@media(max-width:900px){.availability-card-head{display:block}.selected-dates{margin-top:12px;min-width:0}.availability-page .calendar-grid{grid-template-columns:1fr}.availability-page .days button,.availability-page .days div{min-height:42px;font-size:12px;padding:6px 2px}}@media(max-width:380px){.availability-page .days button,.availability-page .days div{font-size:11px;min-height:39px}.availability-page .month h3{font-size:18px}}

/* v5: restore the earlier two-card availability layout while keeping selectable dates. */
.availability-compact{max-width:var(--max)}
.availability-two-col{align-items:start}
.availability-compact .availability-card{overflow:visible}
.availability-compact .selected-dates{display:block;margin:14px 0 18px;background:var(--aqua2);border:1px solid var(--line);border-radius:14px;color:var(--navy);font-weight:900;padding:11px 14px;text-align:center}
.availability-compact .calendar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;overflow:visible}
.availability-compact .month{min-width:0;overflow:hidden}
.availability-compact .month h3{font-size:18px;padding:12px 10px}
.availability-compact .days{grid-template-columns:repeat(7,minmax(0,1fr));width:100%;overflow:hidden}
.availability-compact .days div,.availability-compact .days button{min-width:0;width:100%;min-height:36px;padding:5px 1px;font-size:12px;line-height:1.1}
.availability-compact .days .head{font-size:11px;min-height:28px;padding-top:8px}
.days .day{appearance:none;border:0;background:white;color:var(--text);font:inherit;text-align:center;cursor:pointer;position:relative;border-radius:0}
.days .day.available:hover{background:var(--aqua2);outline:2px solid var(--blue);z-index:1}.days .day.booked{background:#f5d8d2;color:#842b1d;font-weight:900;cursor:not-allowed}.days .day.checkout-ok{cursor:pointer;background:linear-gradient(135deg,#fff 0 33%,#f5d8d2 34% 100%)}.days .day.checkout-ok:hover{outline:2px solid var(--blue);z-index:1}.days .day.past{opacity:.38;cursor:not-allowed}.days .day.selected-start,.days .day.selected-end{background:var(--navy)!important;color:white!important;font-weight:900}.days .day.selected-range{background:#dff4f1!important;color:var(--navy);font-weight:800}.quote-link.disabled{opacity:.48;cursor:not-allowed;pointer-events:auto}.validation-message.error-text{color:#a1281a;font-weight:800}.availability-actions{align-items:center}
@media(max-width:900px){.availability-compact .calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-compact .days div,.availability-compact .days button{min-height:34px;font-size:11px}.availability-compact .days .head{font-size:10px}}
@media(max-width:620px){.availability-compact .calendar-grid{grid-template-columns:1fr}.availability-compact .days div,.availability-compact .days button{min-height:42px;font-size:13px;padding:6px 2px}.availability-compact .days .head{font-size:12px}}

/* Availability v6: two-month read-only calendar reset */
.availability-v6{max-width:1280px}.availability-v6 .availability-list{display:grid;grid-template-columns:1fr;gap:28px}.availability-v6 .availability-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.availability-v6 .calendar-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.availability-v6 .availability-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;width:100%;overflow:visible}.availability-v6 .availability-month[hidden]{display:none!important}.availability-v6 .availability-month{min-width:0;overflow:hidden;background:white;border:1px solid var(--line);border-radius:18px}.availability-v6 .availability-month h3{margin:0;padding:14px 16px;background:var(--navy);color:white;font-size:20px;line-height:1.2}.availability-v6 .availability-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#dce8e8;width:100%;overflow:hidden}.availability-v6 .availability-days .head,.availability-v6 .availability-days .blank,.availability-v6 .availability-days .date-cell{min-width:0;width:100%;min-height:44px;padding:7px 2px;text-align:center;font-size:13px;line-height:1.2;background:white;display:flex;align-items:center;justify-content:center}.availability-v6 .availability-days .head{font-weight:900;background:var(--sand);min-height:34px;color:var(--navy);font-size:12px}.availability-v6 .availability-days .blank{background:#f7fbfb}.availability-v6 .availability-days .date-cell.available{background:white}.availability-v6 .availability-days .date-cell.booked{background:#f5d8d2;color:#842b1d;font-weight:900}.availability-v6 .availability-days .date-cell.past{opacity:.38}.availability-v6 .availability-actions{align-items:center}@media(max-width:900px){.availability-v6 .availability-card-head{display:block}.availability-v6 .calendar-controls{justify-content:flex-start;margin-top:14px}.availability-v6 .availability-months{gap:14px}.availability-v6 .availability-days .head,.availability-v6 .availability-days .blank,.availability-v6 .availability-days .date-cell{min-height:38px;font-size:12px}.availability-v6 .availability-days .head{font-size:11px;min-height:30px}.availability-v6 .availability-month h3{font-size:18px;padding:12px}}@media(max-width:640px){.availability-v6 .availability-months{grid-template-columns:1fr}.availability-v6 .availability-months .availability-month.is-visible{display:block}.availability-v6 .availability-days .head,.availability-v6 .availability-days .blank,.availability-v6 .availability-days .date-cell{min-height:42px;font-size:13px}.availability-v6 .availability-days .head{font-size:12px}.availability-v6 .calendar-controls .button{flex:1}}

.calendar-legend{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 0}.badge.legend-blocked{background:#f5d8d2;color:#842b1d;border-color:#e8bcb4}.badge.legend-available{background:#fff !important;color:var(--navy);border-color:var(--line)}

.availability-v6 .availability-days .date-cell.booked.checkout-partial{
  background:linear-gradient(90deg,#fff 0 33%,#f5d8d2 33% 100%);
  color:#842b1d;
}


/* v10: force partial-checkout shading above all earlier booked-date rules. */
.availability-v6 .availability-days .date-cell.checkout-partial,
.availability-v6 .availability-days .date-cell.booked.checkout-partial,
.date-cell.checkout-partial,
.date-cell.booked.checkout-partial{
  background:linear-gradient(90deg,#ffffff 0 33%,#f5d8d2 33% 100%) !important;
}
.availability-v6 .availability-days .date-cell.checkout-partial span{position:relative;z-index:1;}


/* v12: attached side-by-side check-in/check-out date boxes */
.availability-date-boxes{
  display:grid;
  grid-template-columns:repeat(2,minmax(170px,1fr));
  gap:0;
  margin:22px 0 4px;
  max-width:560px;
}
.availability-date-boxes label{
  display:block;
  font-weight:900;
  color:var(--navy);
  margin:0;
}
.availability-date-boxes label span{
  display:block;
  margin:0;
  padding:9px 12px 7px;
  font-size:13px;
  background:var(--aqua2);
  border:1px solid var(--line);
  border-bottom:0;
}
.availability-date-boxes label:first-child span{border-radius:14px 0 0 0}
.availability-date-boxes label:last-child span{border-left:0;border-radius:0 14px 0 0}
.availability-date-boxes input[type=date]{
  width:100%;
  border:1px solid var(--line);
  border-radius:0;
  background:white;
  color:var(--text);
  font:inherit;
  font-weight:700;
  padding:12px 13px;
  min-height:48px;
}
.availability-date-boxes label:first-child input[type=date]{border-radius:0 0 0 14px}
.availability-date-boxes label:last-child input[type=date]{border-left:0;border-radius:0 0 14px 0}
.availability-date-boxes input[type=date]:focus{
  outline:3px solid rgba(37,107,132,.18);
  outline-offset:-2px;
  border-color:var(--blue);
  position:relative;
  z-index:2;
}
@media(max-width:560px){
  .availability-date-boxes{grid-template-columns:1fr;max-width:none}
  .availability-date-boxes label:first-child span{border-radius:14px 14px 0 0}
  .availability-date-boxes label:last-child span{border-left:1px solid var(--line);border-top:0;border-radius:0}
  .availability-date-boxes label:first-child input[type=date]{border-radius:0}
  .availability-date-boxes label:last-child input[type=date]{border-left:1px solid var(--line);border-radius:0 0 14px 14px}
}


/* v13: forced attached side-by-side date boxes */
.attached-date-pair{display:flex !important;gap:0 !important;margin:22px 0 4px !important;max-width:560px !important;width:100% !important;}
.attached-date-pair label{flex:1 1 0 !important;margin:0 !important;display:block !important;}
.attached-date-pair label + label span,
.attached-date-pair label + label input{border-left:0 !important;}
@media(max-width:560px){.attached-date-pair{max-width:none !important;}.attached-date-pair input[type=date]{font-size:13px !important;padding-left:8px !important;padding-right:8px !important;}}


/* v14: clickable open-date check-in selection */
.availability-v6 .availability-days .date-cell.available{
  cursor:pointer;
}
.availability-v6 .availability-days .date-cell.available:hover,
.availability-v6 .availability-days .date-cell.available:focus{
  outline:3px solid rgba(37,107,132,.35);
  outline-offset:-3px;
  font-weight:900;
  position:relative;
  z-index:2;
}
.availability-v6 .availability-days .date-cell.selected-checkin{
  background:#173e59 !important;
  color:#fff !important;
  font-weight:900;
  box-shadow:inset 0 0 0 3px #173e59;
}
.availability-v6 .availability-days .date-cell.booked,
.availability-v6 .availability-days .date-cell.past{
  cursor:not-allowed;
}

/* v15: checkout-date selection and accessible partial checkout dates */
.availability-v6 .availability-days .date-cell.checkout-partial{
  cursor:pointer !important;
}
.availability-v6 .availability-days .date-cell.checkout-partial:hover,
.availability-v6 .availability-days .date-cell.checkout-partial:focus{
  outline:3px solid rgba(37,107,132,.35);
  outline-offset:-3px;
  font-weight:900;
  position:relative;
  z-index:2;
}
.availability-v6 .availability-days .date-cell.selected-checkout{
  background:#173e59 !important;
  color:#fff !important;
  font-weight:900;
  box-shadow:inset 0 0 0 3px #173e59;
}
.availability-v6 .availability-days .date-cell.selected-range{
  background:#dff4f1 !important;
  color:#173e59 !important;
  font-weight:800;
}

/* Thank-you page */
.narrow-section {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.thank-you-card {
  text-align: left;
}
.thank-you-actions {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
}
.notice.error {
  border-color: #b42318;
  background: #fff1f0;
  color: #7a271a;
}


/* v19: Force phones to show both visible availability months stacked, not side-by-side and not hidden. */
@media screen and (max-width: 760px) {
  body .availability-v6 .availability-months {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    overflow: visible !important;
  }
  body .availability-v6 .availability-months > .availability-month {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  body .availability-v6 .availability-months > .availability-month.is-visible {
    display: block !important;
  }
  body .availability-v6 .availability-months > .availability-month[hidden] {
    display: none !important;
  }
}


/* v21 guest-guide pages */
.guide-hero h1{max-width:980px}.guide-section{padding-top:58px;padding-bottom:58px}.guide-grid{align-items:stretch}.guide-card{display:flex;flex-direction:column}.guide-card h3{font-weight:900}.guide-card p{margin-top:8px}.guide-meta{margin:0!important;color:var(--blue);font-size:14px}.guide-actions{margin-top:auto!important;padding-top:10px}.guide-hub-grid a{color:var(--text);text-decoration:none}.guide-hub-card{display:block;transition:transform .16s ease,border-color .16s ease}.guide-hub-card:hover{transform:translateY(-2px);border-color:#a8cccc;text-decoration:none}.guide-hub-card h3{font-weight:900}.guide-link{font-weight:900;color:var(--blue)}.live-feature{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:32px;border-radius:26px;background:linear-gradient(135deg,var(--aqua),var(--sand));border:1px solid var(--line)}.live-feature h2{margin:8px 0 10px}.eyebrow.dark{background:rgba(23,62,89,.08);border-color:rgba(23,62,89,.16);color:var(--navy)}.guide-card code{font-weight:900}.guide-card strong{font-weight:900}@media(max-width:900px){.live-feature{display:block}.live-feature .button{margin-top:16px}}


/* v22 visual refresh — coastal polish */
:root{
  --navy:#123b55;
  --blue:#19738f;
  --blue-deep:#0e5d75;
  --aqua:#bfe9e6;
  --aqua2:#eaf8f6;
  --seafoam:#dff3ee;
  --sand:#f4e5c8;
  --sand-light:#fbf5e9;
  --coral:#e88362;
  --sun:#f1c56c;
  --warm:#fffdf8;
  --text:#21313a;
  --muted:#62747e;
  --line:#d5e5e4;
  --shadow:0 22px 55px rgba(17,63,84,.13);
  --shadow-soft:0 12px 32px rgba(17,63,84,.09);
}
body{
  background:
    radial-gradient(circle at 8% 8%,rgba(191,233,230,.34),transparent 24rem),
    radial-gradient(circle at 93% 28%,rgba(244,229,200,.38),transparent 25rem),
    var(--warm);
}
h1,h2,.brand strong{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.025em}
.site-header{
  padding-top:11px;padding-bottom:11px;
  background:rgba(255,253,248,.9);
  border-bottom:1px solid rgba(18,59,85,.09);
  box-shadow:0 8px 28px rgba(18,59,85,.06);
}
.site-header:before{
  content:'';position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--blue),var(--aqua),var(--sun),var(--coral));
}
.brand-mark{
  width:46px;height:46px;display:grid;place-items:center;border-radius:50%;font-size:26px;
  background:linear-gradient(145deg,#fff,var(--aqua2));
  border:1px solid rgba(25,115,143,.18);box-shadow:0 8px 18px rgba(18,59,85,.1)
}
.brand strong{font-size:19px}.brand small{letter-spacing:.06em;text-transform:uppercase;font-size:10px}
.site-nav a:not(.button){position:relative;padding:8px 1px}.site-nav a:not(.button):after{
  content:'';position:absolute;left:0;right:100%;bottom:2px;height:2px;background:var(--coral);transition:right .2s ease
}
.site-nav a:not(.button):hover:after,.site-nav a.active:after,.site-nav a[aria-current=page]:after{right:0}
.button,.button:visited{
  background:linear-gradient(135deg,var(--navy),var(--blue-deep));
  box-shadow:0 12px 28px rgba(18,59,85,.2);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease
}
.button:hover{transform:translateY(-2px);box-shadow:0 17px 34px rgba(18,59,85,.24);filter:saturate(1.08)}
.button.secondary{background:rgba(255,255,255,.92);border-color:rgba(18,59,85,.15);backdrop-filter:blur(8px)}
.hero{
  min-height:700px;
  background:linear-gradient(90deg,rgba(7,38,57,.82) 0%,rgba(7,38,57,.58) 43%,rgba(7,38,57,.1) 82%),url('../images/shared/beach-sunset.jpg') center/cover no-repeat;
  overflow:hidden
}
.hero:before,.page-hero:before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 42%),radial-gradient(circle at 76% 24%,rgba(241,197,108,.18),transparent 19rem)
}
.hero:after,.page-hero:after{
  content:'';position:absolute;left:-4%;right:-4%;bottom:-34px;height:78px;background:var(--warm);border-radius:50% 50% 0 0 / 100% 100% 0 0
}
.hero .content{position:relative;z-index:2;padding:30px 0;text-shadow:0 2px 18px rgba(0,0,0,.2)}
.hero h1{max-width:820px}.hero p{color:#f8fcfd}
.eyebrow{backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.trust-strip{margin-top:-64px}.trust-card{
  border:0;box-shadow:0 18px 40px rgba(17,63,84,.12);padding:20px 18px;position:relative;overflow:hidden
}
.trust-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--aqua),var(--blue))}
.section{position:relative}.section h2,.section h1{letter-spacing:-.035em}
.section-head h2:after,.section>h2:first-child:after{
  content:'';display:block;width:64px;height:4px;margin-top:13px;border-radius:999px;background:linear-gradient(90deg,var(--coral),var(--sun))
}
.card{
  border:1px solid rgba(25,115,143,.12);box-shadow:var(--shadow-soft);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(25,115,143,.24)}
.card img{transition:transform .5s ease}.card:hover>img{transform:scale(1.025)}
.badge{background:linear-gradient(135deg,var(--aqua2),#fff);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.feature{
  position:relative;overflow:hidden;background:linear-gradient(145deg,#fff 10%,var(--aqua2));box-shadow:0 10px 25px rgba(17,63,84,.06);transition:transform .2s ease
}
.feature:hover{transform:translateY(-3px)}
.feature:after{content:'';position:absolute;width:90px;height:90px;border-radius:50%;right:-28px;top:-28px;background:rgba(191,233,230,.34)}
.feature .icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(17,63,84,.09);position:relative;z-index:1}
.split-img,.map-card{border:5px solid white;box-shadow:var(--shadow)}
.cta{
  position:relative;overflow:hidden;background:linear-gradient(135deg,var(--aqua) 0%,var(--sand-light) 58%,#fff3dd 100%);border:1px solid rgba(25,115,143,.12);box-shadow:var(--shadow-soft)
}
.cta:after{content:'☀';position:absolute;right:22px;top:-25px;font-size:110px;color:rgba(241,197,108,.2);line-height:1}
.cta>*{position:relative;z-index:1}
.page-hero{
  position:relative;overflow:hidden;padding-top:96px;padding-bottom:104px;
  background:linear-gradient(115deg,rgba(9,48,68,.94),rgba(25,115,143,.78)),url('../images/shared/beach-sunset.jpg') center 58%/cover no-repeat
}
.page-hero h1,.page-hero p,.page-hero .eyebrow{position:relative;z-index:2}.page-hero h1{text-shadow:0 4px 24px rgba(0,0,0,.2)}
.guide-section{margin-top:-10px}
.guide-hub-grid{gap:18px}.guide-hub-card{
  min-height:205px;position:relative;overflow:hidden;padding-top:28px!important;background:linear-gradient(145deg,#fff,var(--aqua2));
}
.guide-hub-card:before{content:'';position:absolute;width:130px;height:130px;border-radius:50%;right:-56px;top:-58px;background:rgba(191,233,230,.55)}
.guide-hub-card:nth-child(3n+2){background:linear-gradient(145deg,#fff,var(--sand-light))}.guide-hub-card:nth-child(3n+2):before{background:rgba(241,197,108,.17)}
.guide-hub-card:nth-child(3n){background:linear-gradient(145deg,#fff,#f8f2ed)}.guide-hub-card:nth-child(3n):before{background:rgba(232,131,98,.12)}
.guide-icon{
  display:grid;place-items:center;width:50px;height:50px;margin-bottom:18px;border-radius:16px;background:#fff;font-size:25px;
  box-shadow:0 9px 20px rgba(18,59,85,.09);position:relative;z-index:1
}
.guide-hub-card h3,.guide-hub-card p,.guide-link{position:relative;z-index:1}.guide-link{display:inline-block;margin-top:5px}
.guide-card{position:relative;overflow:hidden}.guide-card:before{content:'';position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--aqua),var(--sun))}
.live-feature{box-shadow:var(--shadow-soft);border:0;background:linear-gradient(135deg,var(--aqua),var(--sand-light),#fff)}
.site-footer{
  position:relative;margin-top:80px;background:linear-gradient(145deg,#0d3349,var(--navy));overflow:hidden
}
.site-footer:before{content:'';position:absolute;left:-5%;right:-5%;top:-44px;height:78px;background:var(--warm);border-radius:0 0 50% 50% / 0 0 100% 100%}
.site-footer>*{position:relative;z-index:1}
.gallery figure{box-shadow:0 8px 20px rgba(17,63,84,.07);transition:transform .2s ease}.gallery figure:hover{transform:translateY(-3px)}
.month{box-shadow:0 10px 28px rgba(17,63,84,.07)}
.availability-v6 .availability-month{box-shadow:0 10px 26px rgba(17,63,84,.07)}
.availability-v6 .availability-month h3,.month h3{background:linear-gradient(135deg,var(--navy),var(--blue-deep))}
@media(max-width:900px){
  .site-nav{background:rgba(255,253,248,.98);backdrop-filter:blur(16px)}
  .hero{min-height:620px}.trust-strip{margin-top:-35px}
}
@media(max-width:560px){
  .brand-mark{width:40px;height:40px;font-size:23px}.brand strong{font-size:16px}
  .hero:after,.page-hero:after{height:54px;bottom:-25px}.page-hero{padding-top:72px;padding-bottom:82px}
  .guide-hub-card{min-height:0}.trust-strip{margin-top:0}
}

/* v23: image-based header navigation */
.brand-image{display:flex;align-items:center;max-width:500px}
.brand-image img{display:block;width:min(100%,460px);height:auto}
.site-header{gap:20px;align-items:center}
.site-nav{gap:10px;flex-wrap:wrap;justify-content:flex-end}
.site-nav .nav-image-link{display:inline-flex;align-items:center;justify-content:center;padding:6px 6px 10px;border-radius:16px;text-decoration:none;position:relative;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}
.site-nav .nav-image-link:hover{text-decoration:none;transform:translateY(-1px)}
.site-nav .nav-image-link img{display:block;height:30px;width:auto;max-width:none}
.site-nav .nav-book-direct{padding:0;background:none;box-shadow:none;border-radius:999px}
.site-nav .nav-book-direct img{height:60px}
.site-nav .nav-image-link.active,
.site-nav .nav-image-link[aria-current=page]{background:rgba(255,255,255,.88);box-shadow:0 10px 24px rgba(18,59,85,.10)}
.site-nav .nav-image-link.active::after,
.site-nav .nav-image-link[aria-current=page]::after{content:'';position:absolute;left:16px;right:16px;bottom:4px;height:3px;border-radius:999px;background:var(--coral)}
.nav-toggle{padding:10px 12px}

/* v23: photo cards on things-to-do hub */
.guide-hub-grid{align-items:stretch}
.guide-hub-card.photo-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:250px;padding:24px;border:none;overflow:hidden;background-size:cover;background-position:center;box-shadow:var(--shadow-soft);isolation:isolate}
.guide-hub-card.photo-card::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,28,40,.08) 8%,rgba(6,28,40,.48) 55%,rgba(6,28,40,.84) 100%);z-index:0}
.guide-hub-card.photo-card>*{position:relative;z-index:1}
.guide-hub-card.photo-card h3{color:#fff;margin-bottom:8px;text-shadow:0 2px 10px rgba(0,0,0,.28)}
.guide-hub-card.photo-card p{margin:0 0 14px;color:rgba(255,255,255,.94);text-shadow:0 2px 8px rgba(0,0,0,.30)}
.guide-hub-card.photo-card .guide-link{color:#fff7df;font-weight:900;letter-spacing:.01em}
.guide-hub-card.photo-card:hover{transform:translateY(-3px) scale(1.01);text-decoration:none}
.guide-hub-card.photo-card.card-restaurants{background-image:url('../images/shared/guides/restaurants.jpg')}
.guide-hub-card.photo-card.card-live-music{background-image:url('../images/shared/guides/live-music.jpg')}
.guide-hub-card.photo-card.card-bike-rentals{background-image:url('../images/shared/guides/bike-rentals.jpg')}
.guide-hub-card.photo-card.card-dolphin-cruises{background-image:url('../images/shared/guides/dolphin-cruises.jpg')}
.guide-hub-card.photo-card.card-boat-rentals{background-image:url('../images/shared/guides/boat-rentals.jpg')}
.guide-hub-card.photo-card.card-fishing-charters{background-image:url('../images/shared/guides/fishing-charters.jpg')}
.guide-hub-card.photo-card.card-mini-golf{background-image:url('../images/shared/guides/mini-golf.jpg')}
.guide-hub-card.photo-card.card-family-fun{background-image:url('../images/shared/guides/family-fun.jpg')}
.guide-hub-card.photo-card.card-water-parks{background-image:url('../images/shared/guides/water-parks.jpg')}
.guide-hub-card.photo-card.card-golf{background-image:url('../images/shared/guides/golf.jpg')}
.guide-hub-card.photo-card.card-local-attractions{background-image:url('../images/shared/guides/local-attractions.jpg')}
.guide-hub-card.photo-card.card-mobile-day-trips{background-image:url('../images/shared/guides/local-attractions.jpg')}
.guide-hub-card.photo-card.card-pensacola-day-trips{background-image:url('../images/shared/beach-sunset.jpg')}

@media(max-width:1200px){
  .brand-image img{width:min(100%,380px)}
  .site-nav .nav-image-link img{height:26px}
  .site-nav .nav-book-direct img{height:54px}
}
@media(max-width:980px){
  .brand-image img{width:min(100%,340px)}
}
@media(max-width:900px){
  .site-nav{align-items:flex-start}
  .site-nav .nav-image-link{padding:6px 4px 12px}
  .site-nav .nav-image-link img{height:28px}
  .site-nav .nav-book-direct img{height:58px}
  .site-nav .nav-image-link.active::after,
  .site-nav .nav-image-link[aria-current=page]::after{left:10px;right:10px}
}
@media(max-width:760px){
  .brand-image{max-width:calc(100% - 60px)}
  .brand-image img{width:100%;max-width:310px}
  .guide-hub-card.photo-card{min-height:220px}
}

/* v24: photographic hero backgrounds on individual guide pages */
.photo-page-hero{
  position:relative;
  min-height:420px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  background-size:cover;
  background-position:center;
  color:#fff;
  isolation:isolate;
  padding-top:110px;
  padding-bottom:64px;
}
.photo-page-hero::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(5,25,38,.12) 0%,rgba(5,25,38,.28) 38%,rgba(5,25,38,.82) 100%);
}
.photo-page-hero::before{
  z-index:-1;
  background:linear-gradient(90deg,rgba(5,25,38,.54),rgba(5,25,38,.04) 70%);
}
.photo-page-hero h1{color:#fff;text-shadow:0 3px 18px rgba(0,0,0,.38);margin-bottom:14px}
.photo-page-hero p{color:rgba(255,255,255,.96);text-shadow:0 2px 12px rgba(0,0,0,.36);max-width:840px}
.photo-page-hero .eyebrow{color:#fff;background:rgba(12,47,65,.38);border-color:rgba(255,255,255,.48);backdrop-filter:blur(6px);width:max-content}
.hero-things-to-do{background-image:url('../images/shared/beach-sunset.jpg')}
.hero-restaurants{background-image:url('../images/shared/guides/restaurants.jpg')}
.hero-live-music{background-image:url('../images/shared/guides/live-music.jpg')}
.hero-bike-rentals{background-image:url('../images/shared/guides/bike-rentals.jpg')}
.hero-dolphin-cruises{background-image:url('../images/shared/guides/dolphin-cruises.jpg')}
.hero-boat-rentals{background-image:url('../images/shared/guides/boat-rentals.jpg')}
.hero-fishing-charters{background-image:url('../images/shared/guides/fishing-charters.jpg')}
.hero-mini-golf{background-image:url('../images/shared/guides/mini-golf.jpg')}
.hero-family-fun{background-image:url('../images/shared/guides/family-fun.jpg')}
.hero-water-parks{background-image:url('../images/shared/guides/water-parks.jpg')}
.hero-golf{background-image:url('../images/shared/guides/golf.jpg');background-position:center 60%}
.hero-local-attractions{background-image:url('../images/shared/guides/local-attractions.jpg')}
.hero-mobile-day-trips{background-image:url('../images/shared/guides/mobile-day-trips.jpg')}
.hero-pensacola-day-trips{background-image:url('../images/shared/guides/pensacola-day-trips.jpg')}

/* Keep page content visually distinct below the photo hero. */
.photo-page-hero + .section,
.photo-page-hero + .section.tight{position:relative}
@media(max-width:760px){
  .photo-page-hero{min-height:350px;padding-top:88px;padding-bottom:42px}
  .photo-page-hero h1{font-size:clamp(40px,13vw,60px)}
}


/* v25: cleaner header, larger JPG navigation, no card orbs */
.site-header{padding:10px clamp(16px,2.6vw,42px);gap:22px}
.brand-image{flex:0 1 520px;max-width:520px;min-width:310px}
.brand-image img{width:100%;height:auto;display:block}
.site-nav{flex:1 1 auto;gap:12px;flex-wrap:nowrap;justify-content:flex-end}
.site-nav .nav-image-link{padding:5px 5px 11px;flex:0 0 auto;background:transparent}
.site-nav .nav-image-link img{height:48px;width:auto;max-width:none;object-fit:contain}
.site-nav .nav-book-direct img{height:72px}
.site-nav .nav-image-link.active,.site-nav .nav-image-link[aria-current=page]{background:rgba(255,255,255,.9)}
.guide-hub-card.photo-card::before{
  inset:0 !important;left:0 !important;right:0 !important;top:0 !important;bottom:0 !important;
  width:auto !important;height:auto !important;border-radius:0 !important;
  background:linear-gradient(180deg,rgba(6,28,40,.05) 4%,rgba(6,28,40,.32) 55%,rgba(6,28,40,.82) 100%) !important;
}
.guide-hub-card.photo-card:nth-child(3n+2)::before,.guide-hub-card.photo-card:nth-child(3n)::before{
  width:auto !important;height:auto !important;border-radius:0 !important;
  background:linear-gradient(180deg,rgba(6,28,40,.05) 4%,rgba(6,28,40,.32) 55%,rgba(6,28,40,.82) 100%) !important;
}
@media(max-width:1450px){
  .brand-image{flex-basis:440px;max-width:440px}.site-nav{gap:8px}
  .site-nav .nav-image-link img{height:41px}.site-nav .nav-book-direct img{height:64px}
}
@media(max-width:1180px){
  .brand-image{flex-basis:360px;max-width:360px;min-width:260px}.site-nav{gap:5px}
  .site-nav .nav-image-link img{height:34px}.site-nav .nav-book-direct img{height:56px}
}
@media(max-width:900px){
  .brand-image{max-width:390px;min-width:0}.site-nav{flex-wrap:wrap;gap:8px}
  .site-nav .nav-image-link img{height:46px}.site-nav .nav-book-direct img{height:68px}
}
@media(max-width:560px){
  .brand-image{max-width:300px}.site-nav .nav-image-link img{height:40px}.site-nav .nav-book-direct img{height:62px}
}

/* v26 — text header navigation + transparent logo */
.site-header{
  min-height:126px;
  gap:28px;
  padding:12px clamp(20px,3.2vw,54px);
  align-items:center;
}
.site-header .brand-image{
  flex:0 1 520px;
  min-width:350px;
  max-width:520px;
  padding:0;
  background:transparent;
}
.site-header .brand-image img{
  display:block;
  width:100%;
  height:auto;
  max-height:104px;
  object-fit:contain;
  object-position:left center;
  background:transparent;
}
.site-header .text-site-nav{
  flex:1 1 auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:clamp(8px,1.15vw,20px);
  flex-wrap:nowrap;
}
.site-header .text-site-nav .text-nav-link{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:8px 7px 10px;
  color:var(--navy);
  font-size:clamp(14px,1.02vw,17px);
  font-weight:800;
  line-height:1.16;
  text-align:center;
  white-space:nowrap;
  text-decoration:none;
  position:relative;
}
.site-header .text-site-nav .text-nav-link span{
  display:block;
  text-align:center;
}
.site-header .text-site-nav .text-nav-link:hover{text-decoration:none;color:var(--blue)}
.site-header .text-site-nav .text-nav-link:after{
  content:'';
  position:absolute;
  left:50%;
  right:50%;
  bottom:3px;
  height:3px;
  border-radius:999px;
  background:var(--coral);
  transition:left .18s ease,right .18s ease;
}
.site-header .text-site-nav .text-nav-link:hover:after,
.site-header .text-site-nav .text-nav-link.active:after,
.site-header .text-site-nav .text-nav-link[aria-current=page]:after{
  left:18%;
  right:18%;
}
.site-header .header-book-direct{
  flex:0 0 auto;
  min-width:118px;
  min-height:52px;
  padding:12px 18px;
  font-size:16px;
  text-align:center;
  line-height:1.1;
}
/* neutralize the old image-navigation rules */
.site-header .site-nav .nav-image-link{display:none!important}

@media(max-width:1180px){
  .site-header{gap:18px;padding-left:24px;padding-right:24px}
  .site-header .brand-image{flex-basis:430px;min-width:300px;max-width:430px}
  .site-header .text-site-nav{gap:7px}
  .site-header .text-site-nav .text-nav-link{font-size:14px;padding-left:4px;padding-right:4px}
  .site-header .header-book-direct{min-width:104px;padding-left:14px;padding-right:14px;font-size:14px}
}
@media(max-width:900px){
  .site-header{min-height:92px}
  .site-header .brand-image{flex:0 1 430px;min-width:0;max-width:calc(100% - 64px)}
  .site-header .brand-image img{max-height:78px}
  .site-header .text-site-nav{
    display:none;
    position:absolute;
    left:14px;
    right:14px;
    top:88px;
    background:white;
    border:1px solid var(--line);
    border-radius:18px;
    padding:14px;
    box-shadow:var(--shadow);
    flex-direction:column;
    align-items:stretch;
    gap:2px;
  }
  .site-header .text-site-nav.open{display:flex}
  .site-header .text-site-nav .text-nav-link{
    width:100%;
    min-height:46px;
    font-size:16px;
    white-space:normal;
    padding:8px 12px;
  }
  .site-header .text-site-nav .text-nav-link br{display:none}
  .site-header .header-book-direct{width:100%;margin-top:6px}
}
@media(max-width:520px){
  .site-header{padding-left:14px;padding-right:14px}
  .site-header .brand-image{max-width:calc(100% - 56px)}
  .site-header .brand-image img{max-height:66px}
}

/* v26.1 — v21-based header only: no Home link, current logo, centered wrapped labels */
.site-header.v21-custom-header{
  min-height:auto;
  gap:clamp(18px,2.2vw,34px);
  padding:12px clamp(18px,4vw,48px);
  align-items:center;
}
.site-header.v21-custom-header .brand.brand-logo{
  display:flex;
  align-items:center;
  flex:0 1 430px;
  width:auto;
  max-width:430px;
  min-width:300px;
  padding:0;
  margin:0;
  background:transparent;
  text-decoration:none;
}
.site-header.v21-custom-header .brand.brand-logo img{
  display:block;
  width:100%;
  height:auto;
  max-height:88px;
  object-fit:contain;
  object-position:left center;
  background:transparent;
}
.site-header.v21-custom-header .site-nav{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(10px,1.35vw,22px);
  flex-wrap:nowrap;
}
.site-header.v21-custom-header .site-nav .nav-text-link{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:8px 1px;
  color:var(--navy);
  font-weight:700;
  font-size:inherit;
  line-height:1.18;
  text-align:center;
  white-space:nowrap;
  text-decoration:none;
  position:relative;
  background:transparent;
  box-shadow:none;
  border-radius:0;
}
.site-header.v21-custom-header .site-nav .nav-text-link span{
  display:block;
  text-align:center;
}
.site-header.v21-custom-header .site-nav .nav-text-link:hover{
  color:var(--blue);
  text-decoration:none;
  transform:none;
}
.site-header.v21-custom-header .site-nav .nav-text-link:after{
  content:'';
  position:absolute;
  left:0;
  right:100%;
  bottom:2px;
  height:2px;
  background:var(--coral);
  transition:right .2s ease;
}
.site-header.v21-custom-header .site-nav .nav-text-link:hover:after,
.site-header.v21-custom-header .site-nav .nav-text-link.active:after,
.site-header.v21-custom-header .site-nav .nav-text-link[aria-current=page]:after{
  right:0;
}
.site-header.v21-custom-header .site-nav .button.small{
  flex:0 0 auto;
}

@media(max-width:1100px){
  .site-header.v21-custom-header .brand.brand-logo{
    flex-basis:360px;
    max-width:360px;
    min-width:260px;
  }
  .site-header.v21-custom-header .site-nav{gap:9px}
  .site-header.v21-custom-header .site-nav .nav-text-link{font-size:13px}
}
@media(max-width:900px){
  .site-header.v21-custom-header{
    min-height:auto;
    align-items:center;
  }
  .site-header.v21-custom-header .brand.brand-logo{
    max-width:390px;
    min-width:0;
    flex:0 1 390px;
  }
  .site-header.v21-custom-header .brand.brand-logo img{max-height:78px}
  .site-header.v21-custom-header .site-nav{
    display:none;
    position:absolute;
    left:14px;
    right:14px;
    top:88px;
    background:white;
    border:1px solid var(--line);
    border-radius:18px;
    padding:16px;
    box-shadow:var(--shadow);
    flex-direction:column;
    align-items:stretch;
    gap:2px;
  }
  .site-header.v21-custom-header .site-nav.open{display:flex}
  .site-header.v21-custom-header .site-nav .nav-text-link{
    width:100%;
    min-height:44px;
    font-size:16px;
    text-align:center;
    white-space:normal;
    padding:8px 12px;
  }
  .site-header.v21-custom-header .site-nav .nav-text-link br{display:none}
  .site-header.v21-custom-header .site-nav .button.small{width:100%;margin-top:6px}
}
@media(max-width:520px){
  .site-header.v21-custom-header .brand.brand-logo{
    max-width:calc(100% - 58px);
  }
  .site-header.v21-custom-header .brand.brand-logo img{max-height:68px}
}


/* v29: restaurant listing website photos */
.listing-photo-link{display:block;margin:-24px -24px 16px -24px;overflow:hidden;border-radius:22px 22px 0 0;background:#eef6f8;border-bottom:1px solid var(--line)}
.listing-photo{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center center;background:#e8f3f5}
.guide-card .listing-photo-link:hover{text-decoration:none}
.guide-card .listing-photo-link:hover .listing-photo{transform:scale(1.02);transition:transform .25s ease}
@media(max-width:700px){.listing-photo-link{margin:-20px -20px 14px -20px}}


/* v41: full-width restaurant photos; preserve each image's natural aspect ratio */
.restaurant-card-head{display:block;margin:0 0 12px}
.restaurant-thumb-wrap{display:block;width:100%;height:auto;border-radius:14px;overflow:hidden;border:1px solid rgba(18,59,85,.12);box-shadow:0 5px 14px rgba(18,59,85,.10);background:var(--aqua2);margin:0 0 16px}
.restaurant-thumb{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;border:0;margin:0;background:var(--aqua2)}
.restaurant-title-block{display:block;min-width:0;width:100%}
.restaurant-title-block h3{margin:0 0 4px}
.restaurant-title-block .guide-meta{margin:0!important}
/* old v29 preview classes are no longer used */
.listing-photo-link{display:none!important}
@media(max-width:560px){
 .restaurant-card-head{display:block}
 .restaurant-thumb-wrap{width:100%;height:auto;margin-bottom:14px}
 .restaurant-title-block h3{font-size:21px}
}
