/* Naxos Balcony Apartments — κοινό σύγχρονο stylesheet.
   Μόνο εμφάνιση: κανένα κείμενο δεν αλλάζει (τα κείμενα έρχονται από το lang-system.js). */

:root{
  --ink:#16232e;
  --muted:#5b6b7a;
  --accent:#c2703f;
  --accent-dark:#a85c30;
  /* --accent is only safe as a fill behind large text; white on it is 3.70:1.
     These darker shades carry the buttons that have white labels. */
  --accent-cta:#a85c30;
  --accent-cta-dark:#8f4a24;
  --accent-2:#2c5282;
  --soft:#f6f8fb;
  --line:rgba(16,32,48,.08);
  --radius:16px;
  --shadow:0 10px 30px rgba(16,32,48,.10);
  --shadow-lg:0 18px 44px rgba(16,32,48,.16);
  --maxw:1140px;
  --nav-h:74px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);background:#fff;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3{letter-spacing:-.01em;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px;}

/* ================= NAVBAR (σκούρο, ώστε λευκό logo/links να φαίνονται) ================= */
.navbar{
  position:sticky;top:0;z-index:100;
  background:rgba(12,24,34,.72);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.10);
  color:#fff;
  transition:background .25s ease;
}
.navbar.scrolled{background:rgba(10,20,29,.92);}
.navbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--nav-h);}
.logo{display:flex;align-items:center;text-decoration:none;}
.logo img{height:56px;width:auto;}
.nav-links{list-style:none;display:flex;align-items:center;gap:2px;margin:0;padding:0;}
.nav-links a,.nav-links button{
  font:inherit;font-size:15px;color:#fff;text-decoration:none;
  background:none;border:0;cursor:pointer;
  padding:9px 12px;border-radius:10px;white-space:nowrap;
  transition:background .18s ease,color .18s ease,opacity .18s ease;
}
.nav-links a:hover,.nav-links button:hover{background:rgba(255,255,255,.14);}
.nav-links a.active{background:rgba(255,255,255,.16);font-weight:600;}
.lang-group{display:flex;align-items:center;gap:2px;}
.lang-group .sep{opacity:.5;}
.lang-group button{font-weight:600;padding:9px 8px;}
.call-btn{
  /* --accent-dark, not --accent: white on --accent is only 3.7:1,
     which fails WCAG AA (4.5:1) for text this size. --accent-dark gives 4.95:1. */
  background:var(--accent-dark) !important;color:#fff !important;font-weight:600;
  padding:10px 18px !important;border-radius:999px;
  box-shadow:0 6px 18px rgba(194,112,63,.42);
}
.call-btn:hover{background:var(--accent-dark) !important;}

.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;border-radius:10px;}
.nav-toggle span{display:block;width:26px;height:2px;background:#fff;margin:5px 0;border-radius:2px;transition:.25s;}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ================= HERO (αρχική) ================= */
.hero{
  position:relative;min-height:min(88svh,860px);
  margin-top:calc(var(--nav-h) * -1);
  padding-top:var(--nav-h);
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:#fff;overflow:hidden;
}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,27,.42),rgba(8,18,27,.58));}
.hero-content{position:relative;z-index:2;padding:60px 20px;max-width:820px;}
.hero h1{font-size:clamp(2rem,6vw,3.4rem);line-height:1.08;margin:0 0 10px;font-weight:700;}
.hero h2{font-size:clamp(1.05rem,3vw,1.6rem);font-weight:400;margin:0 0 16px;opacity:.95;}
.hero p{font-size:clamp(1rem,2.4vw,1.15rem);margin:0;opacity:.92;}

/* ================= PAGE HERO (εσωτερικές σελίδες) ================= */
.page-hero{
  position:relative;min-height:min(46svh,380px);
  margin-top:calc(var(--nav-h) * -1);
  padding-top:var(--nav-h);
  display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;
}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,27,.40),rgba(8,18,27,.62));}
.page-hero-inner{position:relative;z-index:2;width:100%;padding:0 20px 32px;}
.page-hero-inner h1{margin:0;font-size:clamp(1.5rem,4.4vw,2.3rem);}
.page-hero-inner p{margin:8px 0 0;opacity:.92;font-size:clamp(.9rem,2.2vw,1rem);max-width:820px;}

/* ================= SECTIONS ================= */
section{padding:clamp(46px,7vw,84px) 0;}
.section-title{font-size:clamp(1.5rem,3.6vw,2.1rem);font-weight:700;text-align:center;margin:0 0 12px;}
.section-sub{text-align:center;color:var(--muted);margin:0 auto 8px;max-width:700px;}

.intro p{max-width:780px;margin:0 auto;text-align:center;font-size:1.05rem;color:var(--muted);}
.naxos-info{background:linear-gradient(180deg,#f0f7ff,#f8fbff);}

.grid-3{display:grid;gap:24px;margin-top:36px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.grid-4{display:grid;gap:22px;margin-top:36px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));}
.cards{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));}
.card.full{grid-column:1/-1;}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);
}
.card h2{margin:0 0 12px;font-size:1.15rem;color:var(--accent-2);}
.card h3{color:var(--accent-2);margin:0 0 14px;font-size:1.12rem;}
.card ul{padding-left:18px;margin:0;}
.card li{margin-bottom:9px;line-height:1.55;font-size:.96rem;color:#3d4a56;}
.note{color:var(--muted);font-size:.95rem;}
.list{padding-left:18px;margin:0;line-height:1.75;color:#3d4a56;font-size:.96rem;}
.list li{margin-bottom:6px;}
.cols2{columns:2;column-gap:28px;}
@media (max-width:760px){.cols2{columns:1;}}

.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;}
.pill{border:1px solid var(--line);background:var(--soft);border-radius:999px;padding:8px 14px;font-size:.86rem;color:#33414e;}

.rooms{background:var(--soft);}
.room{position:relative;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease;}
.room:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.room picture{display:contents;}
.room img{width:100%;height:190px;object-fit:cover;}
.room h3{padding:16px 18px 6px;margin:0;font-size:1.05rem;color:var(--accent-2);}
.room p{padding:0 18px 18px;margin:0;color:var(--muted);font-size:.92rem;}

/* Room title links to that room's photos. The ::after overlay makes the whole
   card clickable while the accessible name stays just the room title. */
.room-link{text-decoration:none;color:inherit;}
.room-link::after{content:"";position:absolute;inset:0;border-radius:inherit;}
.room-link:hover{text-decoration:underline;}

/* ================= BUTTONS ================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 18px;border-radius:999px;font-weight:600;font-size:.95rem;
  text-decoration:none;background:var(--soft);color:var(--ink);
  border:1px solid var(--line);cursor:pointer;
  transition:transform .15s ease,background .18s ease,box-shadow .18s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-primary{background:var(--accent-cta);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(168,92,48,.35);}
.btn-primary:hover{background:var(--accent-cta-dark);}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;}

/* ================= GALLERY ================= */
.wrap{max-width:1140px;margin:0 auto;padding:28px 20px 64px;}
/* scroll-margin keeps the tabs clear of the sticky navbar when the room cards
   deep-link to #tabs. */
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;scroll-margin-top:calc(var(--nav-h) + 16px);}
.tab-btn{
  font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;
  padding:9px 16px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:#33414e;transition:background .18s ease,color .18s ease,transform .15s ease;
}
.tab-btn:hover{transform:translateY(-2px);background:var(--soft);}
.tab-btn.active{background:var(--accent-2);color:#fff;border-color:transparent;}
.grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));}
.tile{position:relative;border-radius:12px;overflow:hidden;background:#eef2f6;box-shadow:var(--shadow);aspect-ratio:4/3;}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.tile:hover img{transform:scale(1.05);}
.tile a{display:block;width:100%;height:100%;}
.room-info{color:var(--muted);font-size:.95rem;min-height:1.4em;margin:0 0 14px;}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:rgba(6,12,18,.92);padding:20px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:min(1100px,94vw);max-height:86vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6);}
.lb-btn{position:absolute;background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:50%;width:48px;height:48px;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease;}
.lb-btn:hover{background:rgba(255,255,255,.28);}
.lb-prev{left:18px;top:50%;transform:translateY(-50%);}
.lb-next{right:18px;top:50%;transform:translateY(-50%);}
.lb-close{top:18px;right:18px;}

/* ================= WEATHER ================= */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:12px;}
.kpi{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:16px;}
.kpi .label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.kpi .value{font-size:1.7rem;font-weight:700;color:var(--ink);line-height:1.15;}
.kpi .sub{font-size:.75rem;color:var(--muted);margin-top:4px;}
.temp-cold{color:#007bff !important;}
.temp-hot{color:#e74c3c !important;}
.temp-normal{color:var(--ink) !important;}
.status-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-top:20px;font-size:.9rem;color:var(--muted);}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#bbb;margin-right:6px;}
.dot.ok{background:#2ecc71;box-shadow:0 0 0 4px rgba(46,204,113,.18);}
.dot.bad{background:#e74c3c;}
#wind_arrow{display:inline-block;transition:transform .8s ease-in-out;margin-left:8px;font-size:1.1em;vertical-align:middle;}
.card-header-flex{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.btn-pro{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:.85rem;font-weight:700;color:#fff;background:var(--accent-2);border:1px solid var(--accent-2);padding:10px 18px;min-height:44px;border-radius:999px;letter-spacing:.3px;box-shadow:0 2px 8px rgba(44,82,130,.22);transition:background .25s ease,transform .25s ease,box-shadow .25s ease;}
.btn-pro:hover{background:var(--accent-cta-dark);border-color:var(--accent-cta-dark);transform:translateY(-1px);box-shadow:0 6px 16px rgba(44,82,130,.28);}
.btn-pro:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.pro-hint{margin:0 0 6px;}
.tips{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:12px;}
.tip{background:var(--soft);padding:14px;border-radius:12px;font-size:.9rem;border:1px solid var(--line);}
.tip.warm{background:#fff8e1;}

/* ================= CONTACT ================= */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:18px;align-items:start;}
.line{margin-top:16px;}
.line:first-child{margin-top:0;}
.row{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:.95rem;}
.row a{color:var(--accent-2);text-decoration:none;font-weight:600;}
.social{display:flex;flex-wrap:wrap;gap:10px;}
.social a{text-decoration:none;font-weight:600;color:var(--accent-2);}
.info-line{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;font-size:.92rem;}
.info-line .ic{color:var(--accent);}
.map{width:100%;height:420px;border:0;border-radius:var(--radius);box-shadow:var(--shadow);}

/* ================= FOOTER ================= */
footer{background:#0f1720;color:#e8eef4;padding:48px 0 26px;}
/* The floating booking button is fixed to the bottom-right, so the last rows
   of the footer would sit underneath it. Reserve that corner. */
footer{padding-bottom:calc(26px + var(--fab-clearance,84px));}
.footer-inner{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:flex-start;}
footer p{margin:4px 0;}
footer a{color:#fff;text-decoration:none;}
footer a:hover{color:var(--accent);}
.socials{display:flex;gap:18px;margin-top:6px;}
.license-number{margin-top:28px;font-size:11px;opacity:.6;letter-spacing:.4px;color:#c9d4de;text-align:center;}

/* ================= MOBILE ================= */
@media (max-width:980px){
  .cards,.contact-grid{grid-template-columns:1fr;}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:900px){
  .nav-toggle{display:block;}
  .logo img{height:44px;}
  .nav{
    position:absolute;top:100%;left:0;right:0;
    background:rgba(11,22,31,.97);
    border-bottom:1px solid rgba(255,255,255,.10);
    box-shadow:0 20px 40px rgba(0,0,0,.35);
    max-height:0;overflow:hidden;transition:max-height .32s ease;
  }
  .nav.open{max-height:82svh;overflow:auto;}
  .nav-links{flex-direction:column;align-items:stretch;gap:2px;padding:12px 16px 20px;}
  .nav-links a,.nav-links button{width:100%;text-align:left;padding:13px 14px;font-size:16px;}
  .lang-group{align-self:flex-start;padding:6px 4px;}
  .call-btn{text-align:center !important;margin-top:8px;}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .tips{grid-template-columns:1fr;}
  .map{height:340px;}
}
@media (max-width:560px){
  .grid{grid-template-columns:1fr;}
  .wrap{padding:22px 16px 48px;}
  .card{padding:20px;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important;scroll-behavior:auto !important;}
}

/* ---------- Weather Station Pro (forecast-pro) ---------- */
.pro-wrap{position:relative;z-index:1;}
.bg-fix{position:fixed;inset:0;background:url('images/gallery/exterior/ai-exterior.jpg') 30% center/cover no-repeat;z-index:-2;transition:background-image 1.5s ease-in-out;}
.overlay-fix{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:-1;}
.pro-card{background:rgba(10,22,30,.65);padding:20px;border-radius:20px;margin-bottom:20px;border:1px solid rgba(255,255,255,.14);}
.pro-card h2{font-size:1.15rem;margin:0 0 14px;}
.pro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.pro-grid .value{font-size:22px;font-weight:700;}
.pro-grid .label{font-size:11px;color:#ccc;text-transform:uppercase;}
.pro-updated{margin-top:10px;font-size:11px;color:#dbe3ea;}
.pro-loading{text-align:center;width:100%;color:#dbe3ea;}
.pro-copyright{margin-top:20px;font-size:12px;}
#wind_arrow{display:inline-block;font-size:24px;transition:.5s;}
.chart-container-scroll{width:100%;overflow-x:auto;background:rgba(0,0,0,.3);border-radius:20px;padding:10px;margin-top:15px;}
.chart-inner{height:350px;min-width:100%;}
.chart-box-static{background:rgba(0,0,0,.3);padding:10px;border-radius:20px;height:300px;margin-top:15px;position:relative;}
.cta-footer{margin-top:40px;padding:30px;background:rgba(0,0,0,.6);border-radius:20px;text-align:center;}
.btn-book{display:inline-block;background:#fff;color:#000;padding:12px 25px;border-radius:30px;text-decoration:none;font-weight:700;}
/* Six days side by side, scrolling sideways when they do not fit. A fixed
   150px floor keeps the readings legible on a phone instead of squashing all
   six; flex-grow lets them fill the row on a wide screen. */
#forecast-grid{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;
  -webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;}
.forecast-item{flex:1 0 150px;scroll-snap-align:start;text-align:center;padding:15px 10px;background:rgba(255,255,255,.05);border-radius:15px;border:1px solid rgba(255,255,255,.1);}
.forecast-icon{width:50px;height:50px;margin:5px 0;}
.fc-date{font-weight:700;margin-bottom:5px;text-transform:capitalize;font-size:14px;color:#00d4ff;}
.fc-temp-max{color:#ff4d4d;font-size:18px;font-weight:700;}
.fc-temp-min{color:#00d4ff;font-size:14px;margin-left:4px;}
.fc-details{margin-top:10px;font-size:11px;color:#ddd;display:flex;flex-direction:column;gap:4px;border-top:1px solid rgba(255,255,255,.1);padding-top:8px;}
.fc-pct{margin-left:5px;color:#9fb3c8;font-weight:600;}
.fc-wind-dir{color:#00d4ff;font-weight:700;}
.seo-intro{background:rgba(255,255,255,.1);padding:20px;border-radius:20px;text-align:center;margin-bottom:20px;border:1px solid rgba(255,255,255,.1);}
.seo-intro h1{font-size:1.25rem;margin:0 0 12px;color:#fff;}
.seo-intro p{margin:0;font-size:.94rem;line-height:1.6;color:#e8eef2;}
/* Η σελίδα Pro έχει σκούρο φόντο: το navbar δεν χρειάζεται επιπλέον φόντο */
body.pro-page{color:#fff;background:#16232e;}
@media (min-width:600px){.pro-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}.pro-grid .value{font-size:28px;}}

/* ============================================================
   Cookie consent banner (Consent Mode v2)
   ============================================================ */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:1200;
  background:rgba(12,24,34,.97);color:#fff;
  border-top:1px solid rgba(255,255,255,.14);
  box-shadow:0 -8px 30px rgba(0,0,0,.28);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.cookie-banner[hidden]{display:none;}
.cookie-inner{
  max-width:var(--maxw);margin:0 auto;padding:16px 20px;
  display:flex;gap:18px;align-items:center;flex-wrap:wrap;
}
.cookie-copy{flex:1 1 320px;min-width:0;}
.cookie-copy strong{display:block;font-size:1rem;margin-bottom:4px;}
.cookie-copy p{margin:0;font-size:.88rem;line-height:1.55;color:#cfd9e2;}
.cookie-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.cookie-btn{
  font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;
  border-radius:999px;padding:10px 22px;border:1px solid transparent;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
/* --accent-dark, not --accent: white on --accent is 3.70:1, which fails
   WCAG AA (4.5:1). --accent-dark gives 4.95:1, matching .call-btn. */
.cookie-accept{background:var(--accent-dark);color:#fff;}
.cookie-accept:hover{background:var(--accent-dark);}
.cookie-reject{background:transparent;color:#fff;border-color:rgba(255,255,255,.45);}
.cookie-reject:hover{border-color:#fff;background:rgba(255,255,255,.1);}
.cookie-more{color:#cfd9e2;font-size:.86rem;text-decoration:underline;}
.cookie-more:hover{color:#fff;}
.footer-legal{margin-top:14px;font-size:.82rem;opacity:.75;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.footer-legal a{color:inherit;text-decoration:underline;}
.linklike{
  background:none;border:0;padding:0;font:inherit;font-size:.82rem;color:inherit;
  opacity:1;cursor:pointer;text-decoration:underline;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:2000;
  background:var(--accent);color:#fff;padding:10px 18px;border-radius:0 0 10px 0;
  font-weight:600;text-decoration:none;
}
.skip-link:focus{left:0;}
.linklike:focus-visible,.cookie-btn:focus-visible,.cookie-more:focus-visible,
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* Prose (privacy / cookies / 404) */
.prose{max-width:760px;margin:0 auto;padding:8px 0 40px;}
.prose h2{font-size:1.15rem;margin:26px 0 8px;color:var(--ink);}
.prose p{margin:0 0 12px;color:#33414d;}
.prose .muted{font-size:.85rem;color:var(--muted);margin-top:24px;}

/* Language links (were buttons before the English tree existed) */
.lang-link{text-decoration:none;color:inherit;}
.lang-link.active{font-weight:700;opacity:1;}
.lang-link:not(.active){opacity:.7;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}
@media (max-width:600px){
  .cookie-inner{padding:14px 16px;gap:12px;}
  .cookie-actions{width:100%;}
  .cookie-btn{flex:1 1 auto;text-align:center;}
}

/* Hero / page-hero background photos are real <img> elements (srcset + preload
   friendly) instead of CSS backgrounds, which could not be sized or preloaded. */
/* display:contents keeps the <img> a direct flex child of .hero / .page-hero
   even though it now sits inside a <picture> for the WebP source. */
.hero picture,.page-hero picture{display:contents;}
.hero-bg,.page-hero-bg{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;z-index:0;
}
.page-hero-bg{object-position:center 35%;}

/* ---------------------------------------------------------- booking button
   Floating, bottom-right, direct contact only (no Booking.com / Airbnb).
   Built on <details> so it opens with JavaScript disabled: the browser
   toggles it natively and every entry inside is a plain link.

   It sits above the cookie banner's z-index while the banner is visible, so
   the two never fight; cookie-consent.js adds .fab-lifted once the visitor
   has answered, which clears the banner's space. */
.book-fab{
  position:fixed;right:20px;bottom:var(--fab-bottom,20px);z-index:1300;
  font-size:1rem;line-height:1;
}
.book-fab[hidden]{display:none;}

.book-fab>summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;gap:9px;
  min-height:52px;padding:0 22px;
  border-radius:999px;
  background:var(--accent-dark);color:#fff;font-weight:700;
  letter-spacing:.4px;
  box-shadow:0 10px 26px rgba(168,92,48,.45);
  transition:transform .18s ease,box-shadow .18s ease;
}
.book-fab>summary::-webkit-details-marker{display:none;}
.book-fab>summary:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(168,92,48,.52);}
.book-fab>summary:focus-visible{outline:3px solid #fff;outline-offset:3px;}
.book-fab-ico{font-size:1.15rem;}

/* The menu opens upwards, out of the bottom-right corner. */
.book-fab-menu{
  position:absolute;right:0;bottom:calc(100% + 10px);
  min-width:210px;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-lg);padding:8px;
  display:flex;flex-direction:column;gap:2px;
}
.book-fab-item{
  display:flex;align-items:center;gap:10px;
  min-height:48px;padding:0 14px;border-radius:10px;
  color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;
}
.book-fab-item:hover{background:var(--soft);}
.book-fab-item:focus-visible{outline:2px solid var(--accent-dark);outline-offset:-2px;}

/* Keep clear of the cookie banner. cookie-consent.js measures the banner and
   raises --fab-bottom; if the script never runs, the plain 20px above applies. */
.book-fab.fab-lifted{--fab-bottom:20px;}
@media (max-width:600px){
  .book-fab{right:14px;--fab-bottom:14px;}
  .book-fab>summary{min-height:48px;padding:0 18px;gap:0;}
  .book-fab-txt{display:none;}      /* icon only on narrow phones */
  .book-fab-ico{font-size:1.35rem;}
  .book-fab>summary{min-width:48px;justify-content:center;}
}
@media (prefers-reduced-motion:reduce){
  .book-fab>summary{transition:none;}
  .book-fab>summary:hover{transform:none;}
}

/* ------------------------------------------------------- touch target sizes
   Small text links measured under the minimum hit area. Each one gets real
   padding for the thumb, cancelled by an equal negative margin, so the hit area
   grows while the layout stays pixel-identical. Touch screens get 44px; a mouse
   is more precise, so desktop only needs WCAG 2.2 AA's 24px. */
.socials a,.footer-legal a,.linklike,.row a,.social a{
  display:inline-flex;align-items:center;min-height:24px;
  padding:1px 2px;margin:-1px -2px;
}
@media (pointer:coarse),(max-width:900px){
  .nav-toggle{padding:12px;margin:-4px;}
  .socials a,.footer-legal a,.linklike,.row a,.social a{
    min-height:44px;padding:0 2px;margin:-11px -2px;
  }
  .call-btn{padding:12px 18px !important;}
  .btn-pro{padding:12px 14px;}
  .tab-btn{min-height:46px;}
}

/* Two links were missing from the lists above, so they stayed the only controls
   under the 24px minimum: the footer's weather link (alone in a <p>, 20px tall)
   and the cookie banner's "Πολιτική Cookies" (23px). The padding is picked per
   element so the margin box keeps exactly the old height - the hit area grows,
   the flow does not move. The banner link is a flex item, where a taller box
   would raise the whole row, so it gets an absolute overlay instead: the same
   trick .room-link::after already uses to make a whole card clickable. */
footer p a{
  display:inline-flex;align-items:center;min-height:24px;
  padding:2px;margin:-2px;
}
.cookie-more{position:relative;}
.cookie-more::after{
  content:"";position:absolute;left:-4px;right:-4px;top:50%;
  height:24px;transform:translateY(-50%);
}
@media (pointer:coarse),(max-width:900px){
  footer p a{min-height:44px;padding:12px 2px;margin:-12px -2px;}
  .cookie-more::after{height:44px;}
}
