.port-guide-reviews{margin:3rem 0}.no-reviews{text-align:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:3rem}.no-reviews p{color:#6b7280;margin:0;font-size:1.125rem}.rating-summary{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;margin-bottom:2rem;padding:2rem}.rating-overview{grid-template-columns:200px 1fr;align-items:center;gap:2rem;display:grid}.rating-score{text-align:center}.score-number{margin-bottom:.5rem;font-size:4rem;font-weight:700;line-height:1;display:block}.score-stars{justify-content:center;gap:.25rem;margin-bottom:.5rem;display:flex}.score-count{opacity:.9;margin:0;font-size:.875rem}.rating-breakdown{flex-direction:column;gap:.5rem;display:flex}.rating-bar{grid-template-columns:50px 1fr 40px;align-items:center;gap:.75rem;display:grid}.rating-bar-label{font-size:.875rem;font-weight:500}.rating-bar-track{background:#ffffff4d;border-radius:999px;height:8px;overflow:hidden}.rating-bar-fill{background:#fff;border-radius:999px;height:100%;transition:width .3s}.rating-bar-count{text-align:right;font-size:.875rem;font-weight:500}.verified-badge{background:#fff3;border-radius:999px;align-items:center;gap:.5rem;margin-top:1rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.reviews-list{margin-top:3rem}.reviews-list h3{color:#111827;margin:0 0 1.5rem;font-size:1.5rem;font-weight:600}.review-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem;transition:box-shadow .2s}.review-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.review-card.featured{background:#fffbeb;border:2px solid #fbbf24;position:relative}.featured-badge{color:#78350f;text-transform:uppercase;letter-spacing:.05em;background:#fbbf24;border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;position:absolute;top:-12px;left:1.5rem}.review-header{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.review-rating{gap:.25rem;display:flex}.verified-tag{color:#065f46;background:#d1fae5;border-radius:999px;align-items:center;gap:.25rem;padding:.25rem .75rem;font-size:.75rem;font-weight:500;display:inline-flex}.review-title{color:#111827;margin:0 0 .75rem;font-size:1.125rem;font-weight:600}.review-text{color:#374151;margin:0 0 1rem;font-size:1rem;line-height:1.6}.review-meta{color:#6b7280;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1rem;padding:.75rem 0;font-size:.875rem;display:flex}.reviewer-name{color:#111827;font-weight:500}.reviewer-location:before,.visit-date:before,.cruise-line:before{content:"•";margin-right:.5rem}.review-helpful{align-items:center;gap:1rem;display:flex}.helpful-label{color:#6b7280;font-size:.875rem}.helpful-buttons{gap:.5rem;display:flex}.helpful-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;transition:all .2s;display:inline-flex}.helpful-btn:hover{border-color:var(--primary);color:var(--primary);background:#f9fafb}.helpful-btn svg{flex-shrink:0}.voted-message{color:#10b981;font-size:.875rem;font-weight:500}@media (max-width:768px){.rating-overview{text-align:center;grid-template-columns:1fr}.rating-score{margin-bottom:1.5rem}.review-meta{flex-direction:column;gap:.5rem}.reviewer-location:before,.visit-date:before,.cruise-line:before{content:"";margin-right:0}}@media (max-width:640px){.rating-summary{padding:1.5rem}.score-number{font-size:3rem}.review-card{padding:1rem}.featured-badge{left:1rem}.review-helpful{flex-direction:column;align-items:flex-start}.helpful-buttons{width:100%}.helpful-btn{flex:1;justify-content:center}}
.sticky-port-cta{z-index:100;background:var(--clr-primary,#2c344c);color:#fff;padding:var(--space-3,.75rem)var(--space-4,1rem);justify-content:space-between;align-items:center;gap:var(--space-3,.75rem);animation:.3s ease-out slideUp;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #00000026}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.sticky-port-cta{animation:none}}.sticky-port-cta__content{align-items:center;gap:var(--space-3,.75rem);flex:1;min-width:0;display:flex}.sticky-port-cta__text{font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sticky-port-cta__actions{align-items:center;gap:var(--space-2,.5rem);flex-shrink:0;display:flex}.sticky-port-cta__phone{color:#fff;background:#ffffff26;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;text-decoration:none;transition:background .2s;display:inline-flex}.sticky-port-cta__phone:hover{background:#ffffff40}.sticky-port-cta__btn{min-height:44px;padding:var(--space-2,.5rem)var(--space-4,1rem);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-semibold,600);color:var(--clr-primary,#2c344c);background:var(--clr-secondary,#d4b86a);border-radius:var(--radius-md,8px);white-space:nowrap;align-items:center;text-decoration:none;transition:background .2s;display:inline-flex}.sticky-port-cta__btn:hover{background:#c5a958}.sticky-port-cta__close{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.25rem;transition:color .2s,background .2s;display:inline-flex}.sticky-port-cta__close:hover{color:#fff;background:#ffffff1a}.sticky-port-cta__close:focus-visible{outline:2px solid var(--clr-secondary,#d4b86a);outline-offset:2px}@media (max-width:639px){.sticky-port-cta__text{font-size:var(--font-size-xs,.75rem)}.sticky-port-cta__btn{font-size:var(--font-size-xs,.75rem);padding:var(--space-2,.5rem)var(--space-3,.75rem)}}
.back-to-top{bottom:calc(60px + var(--space-4,1rem));right:var(--space-4,1rem);z-index:99;color:#fff;cursor:pointer;opacity:.7;background:#2c344c99;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .2s,opacity .2s;animation:.2s ease-out fadeIn;display:inline-flex;position:fixed}@keyframes fadeIn{0%{opacity:0}to{opacity:.7}}@media (prefers-reduced-motion:reduce){.back-to-top{animation:none}}.back-to-top:hover{opacity:1;background:#2c344ce6}.back-to-top:focus-visible{outline:2px solid var(--clr-secondary,#d4b86a);outline-offset:2px;opacity:1}
.nearby-places-section .section-intro{color:var(--text-muted,#6b7280);margin-bottom:1.25rem;font-size:.95rem}.nearby-categories{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.nearby-category-btn{border:1px solid var(--border-color,#e5e7eb);background:var(--bg-card,#fff);color:var(--text-secondary,#4b5563);cursor:pointer;border-radius:100px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.85rem;font-weight:500;transition:all .15s;display:inline-flex}.nearby-category-btn:hover{border-color:var(--primary,#0288d1);color:var(--primary,#0288d1)}.nearby-category-btn--active{background:var(--primary,#0288d1);color:#fff;border-color:var(--primary,#0288d1)}.nearby-category-count{opacity:.7;font-size:.72rem}.nearby-places-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.nearby-place-card{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:.75rem;transition:box-shadow .15s;overflow:hidden}.nearby-place-card:hover{box-shadow:0 2px 12px #0000000f}.nearby-place-photo{background-position:50%;background-size:cover;background-color:var(--bg-muted,#f3f4f6);width:100%;height:140px}.nearby-place-body{padding:.85rem 1rem}.nearby-place-walk-badge{color:var(--primary,#0288d1);background:var(--primary-light,#e0f2fe);border-radius:100px;align-items:center;gap:.3rem;margin-bottom:.4rem;padding:.2rem .55rem;font-size:.75rem;font-weight:500;display:inline-flex}.nearby-place-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.35rem;display:flex}.nearby-place-name{color:var(--text-primary,#1f2937);margin:0;font-size:.95rem;font-weight:600;line-height:1.3}.nearby-place-name-link{color:inherit;text-decoration:none}.nearby-place-name-link:hover{color:var(--primary,#0288d1);text-decoration:underline}.nearby-place-rating{color:#f59e0b;white-space:nowrap;flex-shrink:0;align-items:center;gap:.2rem;font-size:.82rem;font-weight:600;display:inline-flex}.nearby-place-reviews{color:var(--text-muted,#9ca3af);font-size:.75rem;font-weight:400}.nearby-place-address{color:var(--text-muted,#6b7280);align-items:flex-start;gap:.3rem;margin:.25rem 0 .4rem;font-size:.8rem;line-height:1.4;display:flex}.nearby-place-address svg{flex-shrink:0;margin-top:2px}.nearby-place-summary{color:var(--text-secondary,#4b5563);margin:.35rem 0;font-size:.82rem;line-height:1.5}.nearby-place-footer{border-top:1px solid var(--border-color,#f3f4f6);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;padding-top:.5rem;display:flex}.nearby-place-price{color:var(--text-secondary,#4b5563);letter-spacing:-.5px;font-size:.85rem;font-weight:500}.nearby-place-link{color:var(--primary,#0288d1);align-items:center;gap:.25rem;font-size:.78rem;font-weight:500;text-decoration:none;display:inline-flex}.nearby-place-link:hover{text-decoration:underline}.nearby-places-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.nearby-places-meta{color:var(--text-muted,#9ca3af);margin:0;font-size:.75rem}.nearby-places-attribution{margin:0}.nearby-places-attribution .google-logo{opacity:.6;transition:opacity .15s}.nearby-places-attribution .google-logo:hover{opacity:1}@media (max-width:640px){.nearby-places-grid{grid-template-columns:1fr}.nearby-categories{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.nearby-categories::-webkit-scrollbar{display:none}.nearby-category-btn{flex-shrink:0}}
