/* Shared language controls and responsive refinements for public pages. */
html { -webkit-text-size-adjust:100%; scroll-padding-top:24px; }
body { line-height:1.55; }
*, *::before, *::after { box-sizing:border-box; }
.shell > *, .nav-row > *, .tour-page-main > *, .form-row > * { min-width:0; }
.language-row { position:absolute; z-index:35; top:64px; right:max(24px, calc((100vw - 1180px) / 2)); display:flex; justify-content:flex-end; padding:0; pointer-events:none; }
.language-switch { display:flex; flex-wrap:wrap; gap:3px; width:max-content; max-width:100%; padding:3px; border:1px solid #ffffff35; border-radius:11px; background:#061a22eb; box-shadow:0 4px 16px #0003; pointer-events:auto; }
.language-button { display:inline-flex; align-items:center; justify-content:center; gap:4px; min-height:30px; padding:5px 8px; border-radius:8px; color:#fff; font:600 11px/1.15 'Segoe UI',Arial,sans-serif; text-decoration:none; white-space:nowrap; }
.language-code { font-size:11px; letter-spacing:.03em; opacity:.72; }
.language-button:hover { background:#ffffff1a; }
.language-button[aria-current="true"] { background:#24d7cc; color:#042724; box-shadow:0 2px 9px #0002; }
a:focus-visible, button:focus-visible { outline:3px solid #24d7cc; outline-offset:3px; }
.nav-row { gap:22px; }
.desktop-nav { gap:20px; }
.desktop-nav a { white-space:nowrap; }
.hero { padding-top:190px; }
.catalog-hero, .packages-catalog-hero, .yacht-catalog-hero, .services-catalog-hero { padding-top:190px; }
.tour-page-hero .shell { padding-top:185px; }
.button { height:auto; text-align:center; white-space:normal; padding-block:13px; }
.button svg { flex-shrink:0; }
.package-head, .package-full-head { gap:16px; }
.package-head > span, .package-full-head > span { min-width:0; }
.package-head strong, .package-full-head strong { flex-shrink:0; }
.package-card, .package-full-card { height:auto; }
.tour-info h3, .catalog-tour-copy h3, .service-info h3, .yacht-offer-copy h3 { overflow-wrap:break-word; }
.booking-form input, .booking-form select { width:100%; min-width:0; font-size:16px !important; }
.booking-form select option { background:#061a22; color:#fff; }
.mobile-menu:not(.open) { visibility:hidden; pointer-events:none; }
.mobile-menu.open { visibility:visible; pointer-events:auto; }
.mobile-menu { overflow-y:auto; overscroll-behavior:contain; }
.mobile-bottom-nav [aria-current="page"] { color:#077e79; background:#e2f7f3; border-radius:10px; }
@media (min-width:721px) and (max-width:1100px) {
  .nav-row, .tour-page-header .shell:not(.language-row) { gap:16px; flex-wrap:wrap; height:auto; min-height:90px; padding-block:16px; }
  .desktop-nav { order:3; flex-basis:100%; justify-content:center; margin:0; gap:22px; }
  .header-contact { margin-left:auto; }
  .catalog-hero, .packages-catalog-hero, .yacht-catalog-hero, .services-catalog-hero { padding-top:220px; }
  .hero { padding-top:220px; }
  .tour-page-hero .shell { padding-top:220px; }
}
@media (max-width:720px) {
  .shell { width:calc(100% - 32px); max-width:600px; }
  .nav-row, .tour-page-header .shell:not(.language-row) { min-height:68px; height:auto; gap:12px; padding-block:10px; }
  .brand { gap:9px; }
  .brand-copy strong { font-size:12px; letter-spacing:.09em; }
  .brand-copy small { font-size:10px; letter-spacing:.1em; }
  .brand-mark { font-size:28px; }
  .menu-button { min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; margin-left:auto; }
  .desktop-nav, .header-contact { display:none; }
  .language-row, .tour-page-header .shell.language-row { top:10px; right:62px; width:auto; height:auto; min-height:0; justify-content:flex-end; padding:0; }
  .language-switch { display:flex; width:max-content; gap:2px; padding:2px; border-radius:9px; }
  .language-button { min-width:28px; min-height:28px; padding:5px 6px; font-size:0; gap:0; border-radius:7px; }
  .language-code { font-size:10px; }
  .hero { min-height:740px; min-height:100svh; padding:190px 0 64px; }
  .hero-content { padding-top:0; padding-bottom:0; }
  .hero h1 { font-size:clamp(34px,9.5vw,52px); line-height:1.08; overflow-wrap:break-word; }
  .hero-content > p, .tour-page-hero p { font-size:16px; line-height:1.6; }
  .hero-badge { font-size:11px; letter-spacing:.08em; }
  .hero-actions { display:flex; flex-direction:column; gap:12px; }
  .hero-actions .button { width:100%; min-height:52px; }
  .hero-proof { gap:16px; flex-wrap:wrap; margin-top:26px; }
  .hero-proof small { font-size:12px; }
  .catalog-hero, .packages-catalog-hero, .yacht-catalog-hero, .services-catalog-hero { min-height:0; padding:178px 0 44px; }
  .catalog-back { margin-bottom:24px; min-height:44px; }
  .catalog-hero h1, .packages-catalog-hero h1, .yacht-catalog-hero h1, .services-catalog-hero h1, .tour-page-hero h1 { font-size:clamp(32px,9vw,44px); line-height:1.12; overflow-wrap:break-word; }
  .catalog-hero p, .packages-catalog-hero p, .yacht-catalog-hero p, .services-catalog-hero p { font-size:16px; line-height:1.6; }
  .tour-page-hero { min-height:0; }
  .tour-page-hero .shell { padding-top:178px; padding-bottom:42px; }
  .tour-page-hero .shell > a { margin-bottom:24px; display:inline-flex; min-height:44px; align-items:center; }
  .section-heading { align-items:flex-start; gap:16px; flex-direction:column; }
  .section-heading h2, .trust-intro h2, .booking-copy h2, .faq-intro h2 { font-size:clamp(28px,8vw,38px); line-height:1.15; }
  .section-heading > span { font-size:14px; line-height:1.5; }
  .section { padding-block:48px; }
  .tour-grid, .package-grid, .service-grid, .catalog-grid, .package-full-grid, .yacht-offer-grid, .booking-layout, .reviews-grid, .trust-layout, .faq-layout, .secondary-services, .form-row { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
  .tour-grid, .package-grid, .service-grid { margin-inline:0; width:100%; overflow:visible; }
  .tour-card { width:100%; min-width:0; min-height:440px; }
  .tour-info { padding:22px; }
  .tour-info h3 { font-size:27px; line-height:1.15; }
  .tour-info small { font-size:14px; line-height:1.5; }
  .service-info { padding:22px; }
  .service-info h3 { font-size:28px; }
  .service-info p { font-size:15px; }
  .service-card { min-height:390px; }
  .package-head, .package-full-head { flex-wrap:wrap; }
  .package-card, .package-full-card { padding:26px 22px; min-height:0; }
  .popular-label { max-width:calc(100% - 32px); font-size:11px; white-space:normal; text-align:center; }
  .category-tabs { display:flex; flex-wrap:wrap; gap:8px; overflow:visible; }
  .category-tabs a { min-height:44px; padding:10px 14px; }
  .catalog-controls { margin-top:20px; }
  .catalog-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .catalog-categories a { min-width:0; min-height:48px; font-size:13px; padding:12px; }
  .catalog-group-head { flex-wrap:wrap; gap:12px; }
  .catalog-tour-image { height:230px; }
  .catalog-tour-copy { padding:22px; }
  .catalog-tour-copy h3 { font-size:25px; }
  .catalog-tour-copy p { font-size:15px; line-height:1.6; }
  .service-full-card, .service-full-card.reverse, .yacht-offer { display:flex; flex-direction:column; }
  .service-full-image, .yacht-offer-image { min-height:240px; height:240px; width:100%; }
  .service-full-copy, .yacht-offer-copy { padding:24px 20px; width:100%; }
  .service-full-copy h2, .service-full-copy h3 { font-size:30px; }
  .service-jump { display:flex; flex-wrap:wrap; gap:8px; }
  .service-jump a { padding:10px 14px; min-height:44px; }
  .yacht-benefits { display:grid; grid-template-columns:1fr; gap:18px; }
  .tour-page-main { grid-template-columns:1fr; gap:28px; padding-top:16px; padding-bottom:48px; }
  .tour-page-facts { grid-template-columns:1fr; }
  .tour-page-facts article { min-height:110px; padding:20px; }
  .tour-page-block { margin-top:36px; }
  .tour-page-block p { font-size:16px !important; line-height:1.7; }
  .tour-page-block > ol, .tour-includes { grid-template-columns:1fr; }
  .tour-booking { position:static; padding:24px; }
  .tour-booking > p, .tour-includes article > span { font-size:15px; }
  .booking-form { padding:22px; }
  .booking-submit { width:100%; padding:14px 16px; }
  .steps-booking-top { grid-template-columns:1fr; margin-bottom:32px; }
  .steps-booking-top > div { padding:22px; min-height:0; }
  .footer-top, .footer-bottom { display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
  .footer-top > div { flex-wrap:wrap; }
  .footer-top > div a { min-height:44px; display:inline-flex; align-items:center; }
  .footer { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
  .mobile-bottom-nav { z-index:45; height:auto; min-height:72px; padding:6px 4px calc(6px + env(safe-area-inset-bottom)); gap:2px; }
  .mobile-bottom-nav a { min-height:56px; min-width:0; font-size:11px; text-align:center; overflow-wrap:break-word; line-height:1.2; }
  .mobile-bottom-nav .mobile-wa { margin:0; box-shadow:none; border-radius:10px; }
  .floating-whatsapp { display:none !important; }
  .floating-whatsapp span { display:none; }
  .mobile-menu { z-index:70; width:min(90vw,370px); padding:20px 24px calc(24px + env(safe-area-inset-bottom)); }
  .mobile-menu-head { margin-bottom:20px; }
  .mobile-menu-head button { min-width:44px; min-height:44px; }
  .mobile-menu > a:not(.mobile-menu-contact) { font-size:20px; padding:14px 0; }
  .mobile-menu-contact { margin-top:24px; min-height:52px; flex-shrink:0; }
  .menu-backdrop { z-index:65; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}
