/**
 * Προσθήκες μόνο για το WordPress. Το main.css είναι ίδιο με τη Φάση 1.
 * 1. Admin bar  2. Επιλογή γλώσσας  3. Φόρμα επικοινωνίας  4. HBook  5. Κλάσεις WordPress
 */

/* 1. Admin bar (μόνο για συνδεδεμένους χρήστες)
   ========================================================================== */

.admin-bar .site-header { top: 32px; }
.admin-bar .nav { top: calc(var(--header-h) + 32px); }
@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .admin-bar .nav { top: calc(var(--header-h) + 46px); }
}
@media (min-width: 1100px) { .admin-bar .nav { top: auto; } }


/* 2. Επιλογή γλώσσας (σημαίες)
   ========================================================================== */

.lang-switch {
  display: flex;
  align-items: center;
  gap: .1rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: .78rem;
  font-weight: 600;
}
.lang-switch__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 40px;
  color: inherit;
  text-decoration: none;
  opacity: .75;
  transition: opacity .15s ease;
}
.lang-switch__link:hover { opacity: 1; }
.lang-switch__link:focus-visible { opacity: 1; outline: 2px solid var(--ochre); outline-offset: 1px; border-radius: 4px; }
.lang-switch__link.is-current { opacity: 1; }
.lang-switch .flag {
  display: block;
  width: 26px;
  height: 18px;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(16, 44, 68, .22);
}
.lang-switch__link.is-current .flag { box-shadow: 0 0 0 2px var(--ochre); }

/* Πάντα στο header, και στο κινητό: δεξιά, πριν από το «Κράτηση». */
.lang-switch--header { order: 2; margin-left: auto; }
.lang-switch--header + .header-book { margin-left: .35rem; }
@media (min-width: 1100px) {
  .lang-switch--header { margin-left: 1.25rem; }
  .lang-switch--header + .header-book { margin-left: 1rem; }
}


/* 3. Φόρμα επικοινωνίας
   ========================================================================== */

.form__alert {
  margin: 1rem 0;
  padding: .75rem 1rem;
  border-left: 4px solid var(--danger);
  border-radius: var(--radius);
  background: rgba(176, 58, 46, .08);
  color: var(--ink);
}
.form.is-sending button[type="submit"] { opacity: .6; cursor: progress; }


/* 4. HBook μέσα στο πλαίσιο .booking
   ========================================================================== */

/* Εσωτερικό περιθώριο: 20px στο κινητό, 32px στην επιφάνεια εργασίας. Τίποτα δεν βγαίνει από το κουτί. */
.booking--hbook .booking__form--hbook { padding: 20px; }
@media (min-width: 900px) { .booking--hbook .booking__form--hbook { padding: 32px; } }
.booking--hbook,
.booking--hbook *,
.booking--hbook *::before,
.booking--hbook *::after { box-sizing: border-box; }
.booking--hbook .booking__hbook { min-width: 0; max-width: 100%; }

/* Ο τόνος του κεφαλαίου («Έλεγχος») κάθεται αριστερά και πάνω από το γράμμα: χρειάζεται χώρο. */
.booking--hbook .booking__title { line-height: 1.3; padding-top: .1em; overflow: visible; }

/* Κλάσεις του HBook 2.2 (front-end/booking-form/search-form.php, details-form.php, css/hbook.css).
   Κανόνας: κανένα display στα βήματα του HBook (.hb-searched-summary, .hb-search-fields-and-submit,
   .hb-multi-accom-people-selection-wrapper, .hb-accom-list, .hb-booking-details-form, μηνύματα).
   Τα δείχνει και τα κρύβει μόνο το HBook. */

/* Μέσα στο πλαίσιο όλα πιάνουν το πλάτος του (το HBook βάζει max-width 800px και margin auto). */
.booking__hbook .hb-booking-search-form,
.booking__hbook .hb-accom-list,
.booking__hbook .hb-booking-details-form { max-width: none; margin: 0; }

/* --- Εμφάνιση πεδίων και κουμπιών (όλα τα βήματα) ------------------------------------------- */
.booking__hbook input[type="text"],
.booking__hbook input[type="email"],
.booking__hbook input[type="tel"],
.booking__hbook input[type="number"],
.booking__hbook select,
.booking__hbook textarea {
  height: 48px;
  padding: 0 .85rem;
  border: 1px solid var(--sandstone);
  border-radius: var(--radius);
  background-color: var(--white);
  font: inherit;
  font-size: 1rem;
  color: var(--ink);
}
.booking__hbook textarea { padding: .7rem .85rem; line-height: 1.5; }
.booking__hbook select {
  appearance: none;
  padding-right: 2.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E5448' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  background-size: 1rem;
}
.booking__hbook input:focus,
.booking__hbook select:focus,
.booking__hbook textarea:focus { outline: none; border-color: var(--sea); box-shadow: 0 0 0 3px rgba(31, 90, 133, .18); }
.booking__hbook label { font-size: .85rem; font-weight: 500; color: var(--ink); }

/* Search, Change search, Select, Book now: σκούρο μπλε. «Previous»: με περίγραμμα. */
.booking__hbook input[type="submit"],
.booking__hbook button[type="submit"],
.booking__hbook .hb-button-wrapper input,
.booking__hbook input[type="button"] {
  min-height: 48px;
  padding: 0 1.4rem;
  border: 1px solid var(--navy);
  border-radius: var(--radius);
  background: var(--navy);
  color: var(--white);
  font: inherit;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}
.booking__hbook input[type="submit"]:hover,
.booking__hbook button[type="submit"]:hover,
.booking__hbook .hb-button-wrapper input:hover,
.booking__hbook input[type="button"]:hover { background: var(--sea); border-color: var(--sea); color: var(--white); }
/* utils.php: <p class="hb-step-button hb-button-wrapper hb-previous-step hb-previous-step-N"><input …></p> */
.booking__hbook .hb-previous-step input,
.booking__hbook .hb-previous-step input:hover {
  min-height: 40px;
  border-color: var(--sandstone);
  background: var(--white);
  color: var(--ink);
  font-weight: 500;
}

/* --- Βήμα αναζήτησης: .hb-search-fields ----------------------------------------------------- */
/* Το HBook στοιχίζει τα πεδία με float και πλάτη 22% / 14% / 20%. Εδώ grid, μόνο σε αυτό το στοιχείο
   (το HBook δεν το κρύβει ποτέ· κρύβει το γονικό .hb-search-fields-and-submit μετά την αναζήτηση). */
.booking__hbook .hb-search-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem .75rem;
  align-items: end;
}
.booking__hbook .hb-search-fields::after { content: none; } /* το clearfix (.hb-clearfix) δεν χρειάζεται στο grid */
.booking__hbook .hb-search-fields > p {
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
}
.booking__hbook .hb-search-fields > .hb-search-submit-wrapper { grid-column: 1 / -1; }
.booking__hbook .hb-search-fields > p:not(.hb-search-submit-wrapper) > label {
  display: block;
  height: 16px;
  margin: 0 0 6px;
  font-size: .75rem;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.booking__hbook .hb-search-fields input[type="text"],
.booking__hbook .hb-search-fields select {
  display: block;
  width: 100% !important;
  height: 48px !important;
  margin: 0;
}
.booking__hbook .hb-search-fields .hb-search-submit-wrapper input { width: 100% !important; height: 48px; }
/* Στην κάθετη μορφή το label του κουμπιού (&nbsp;) δεν χρειάζεται· το HBook το κρύβει μόνο του στο .hb-vertical-search-form. */

/* Αρχική, από 900px: τίτλος αριστερά (main.css: .booking-dock .booking__form), δίπλα 4 πεδία και κουμπί
   σε μία γραμμή. Ημερομηνίες φαρδύτερες, άτομα στενότερα, κουμπί όσο το κείμενό του. */
@media (min-width: 900px) {
  .booking-dock .booking__hbook .hb-search-fields {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  }
  .booking-dock .booking__hbook .hb-search-form-no-children .hb-search-fields,
  .booking-dock .booking__hbook .hb-search-form-multiple-accom .hb-search-fields {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.6fr) minmax(0, 1fr) auto;
  }
  .booking-dock .booking__hbook .hb-search-form-no-people:not(.hb-search-form-multiple-accom) .hb-search-fields {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  }
  .booking-dock .booking__hbook .hb-search-fields > .hb-search-submit-wrapper { grid-column: auto; }
  .booking-dock .booking__hbook .hb-search-fields .hb-search-submit-wrapper input { width: auto !important; }

  /* Μετά την αναζήτηση (main.js → .is-searched): τίτλος πάνω, σύνοψη, αποτελέσματα και στοιχεία από κάτω
     σε όλο το πλάτος. Αφορά μόνο το δικό μας .booking__form, όχι στοιχεία του HBook. */
  .booking-dock .booking__form--hbook.is-searched { display: block; }
  .booking-dock .booking__form--hbook.is-searched .booking__head { margin-bottom: 1.25rem; }
}

/* Σελίδα καταλύματος: η στήλη κράτησης είναι sticky (main.css). Όταν γίνει ψηλότερη από την οθόνη, το main.js
   την καρφώνει στο σημείο όπου φαίνεται (margin-top + αυτή η κλάση), ώστε να κυλά ως το «Book now». */
.property__sticky.is-pinned { position: static; }

/* --- Σύνοψη αναζήτησης (.hb-searched-summary) ------------------------------------------------ */
.booking__hbook .hb-searched-summary { margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid var(--stone); }
.booking__hbook .hb-searched-summary p { margin-bottom: .5rem; font-size: .92rem; color: var(--ink-soft); }
.booking__hbook .hb-searched-summary p span { color: var(--ink); font-weight: 600; }

/* --- Στοιχεία πελάτη (.hb-details-fields) --------------------------------------------------- */
/* Τα πεδία χωρίς στήλη στις ρυθμίσεις του HBook είναι <p> μέσα στο .hb-details-fields: 2 στήλες από 600px,
   1 στο κινητό. Όσα έχουν στήλη στο HBook (.hb-column-half / -third) ακολουθούν τις ρυθμίσεις του. */
.booking__hbook .hb-details-fields { margin-bottom: 1rem; }
.booking__hbook .hb-details-fields::after { content: ""; display: table; clear: both; }
.booking__hbook .hb-details-fields p > label:first-child {
  display: block;
  margin: 0 0 6px;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.booking__hbook .hb-details-fields .hb-detail-field { width: 100%; }
.booking__hbook .hb-details-fields > p { margin: 0 0 1rem; }
@media (min-width: 600px) {
  .booking__hbook .hb-details-fields > p { float: left; width: calc(50% - .5rem); }
  .booking__hbook .hb-details-fields > p:nth-of-type(odd) { clear: left; margin-right: 1rem; }
  .booking__hbook .hb-details-fields > p:has(textarea),
  .booking__hbook .hb-details-fields > p.hb-explanation { float: none; clear: both; width: 100%; margin-right: 0; }
  .booking__hbook .hb-details-fields > :not(p) { clear: both; }
}


/* 6. Ισορροπημένα grids (οποιοσδήποτε αριθμός καταλυμάτων)
   ==========================================================================
   Κάθε στοιχείο ξέρει από την PHP (chs_bal_attrs) πόσα στοιχεία έχει η σειρά του σε κάθε πλάτος
   (--k-xs/sm/md/lg). Το πλάτος του είναι ακριβώς 1/k της σειράς, άρα οι σειρές γεμίζουν πάντα. */

.chs-bal {
  --bal-gap: 1.75rem;
  display: flex !important;
  flex-wrap: wrap;
  gap: var(--bal-gap);
}
.chs-bal > * {
  --k: var(--k-xs, 1);
  flex: 0 0 calc((100% - (var(--k) - 1) * var(--bal-gap)) / var(--k) - .02px);
  min-width: 0;
  grid-column: auto !important;
}
@media (min-width: 600px) { .chs-bal > * { --k: var(--k-sm, 2); } }
@media (min-width: 900px) { .chs-bal > * { --k: var(--k-md, 2); } }
@media (min-width: 1100px) { .chs-bal > * { --k: var(--k-lg, 3); } }

/* Κάρτες καταλυμάτων: φαρδιά κάρτα (1–2 στη σειρά) → πιο πανοραμική φωτογραφία, όπως οι 2 πάνω κάρτες της Φάσης 1. */
.card-grid.chs-bal > .card .card__media { aspect-ratio: 4 / 3; }
@media (min-width: 600px) and (max-width: 1099px) {
  .card-grid.chs-bal > .card[data-k-sm="1"] .card__media { aspect-ratio: 16 / 7; }
}
@media (min-width: 900px) and (max-width: 1099px) {
  .card-grid.chs-bal > .card[data-k-md="1"] .card__media { aspect-ratio: 16 / 7; }
}
@media (min-width: 1100px) {
  .card-grid.chs-bal > .card[data-k-lg="2"] .card__media { aspect-ratio: 16 / 10; }
  .card-grid.chs-bal > .card[data-k-lg="1"] .card__media { aspect-ratio: 16 / 7; }
  .card-grid.chs-bal > .card[data-k-lg="4"] .card__teaser { display: none; }
}

/* Βαθμολογίες ανά κατάλυμα (κριτικές αρχικής) και διευθύνσεις (Επικοινωνία). */
.reviews__list.chs-bal { --bal-gap: 1px; }
.addresses.chs-bal { --bal-gap: 1rem; }

/* Σχηματικός χάρτης: κατάλυμα χωρίς θέση στον χάρτη → στη λίστα χωρίς αριθμό. */
.smap__num--none { background: transparent !important; border: 1px dashed currentColor; opacity: .45; }


/* 5. Κλάσεις WordPress
   ========================================================================== */

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text { font-size: .85rem; color: var(--ink-soft); }


/* Νομικά: σημείωση τέλους ανθεκτικότητας στη σύνοψη του HBook, links αποδοχής όρων, γραμμή επιχείρησης στο footer. */
.chs-fee-note {
  margin: .75rem 0 .25rem;
  padding: .7rem .85rem;
  background: var(--paper);
  border: 1px solid var(--sandstone);
  border-radius: var(--radius);
  font-size: .85rem;
  line-height: 1.5;
  color: var(--ink-soft);
}
.chs-fee-note p { margin: 0; }
.chs-fee-note__amount { margin-top: .35rem !important; color: var(--ink); font-weight: 600; }
.hb-terms-and-cond a { color: var(--sea); text-decoration: underline; }
.site-footer__legal { flex-basis: 100%; color: rgba(255, 255, 255, .6); }


/* Cookies: μήνυμα αποδοχής/απόρριψης, χάρτης πριν την αποδοχή, κουμπί στο footer. */
.cookie-banner {
  position: fixed;
  z-index: 70;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1rem var(--gutter);
  background: var(--paper);
  border-top: 1px solid var(--sandstone);
  box-shadow: var(--shadow-md);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner__text { margin: 0 0 .75rem; font-size: .88rem; line-height: 1.5; color: var(--ink); }
.cookie-banner__text a { color: var(--sea); text-decoration: underline; }
.cookie-banner__actions { display: flex; gap: .6rem; }
.cookie-banner__actions .btn { flex: 1; }
@media (min-width: 900px) {
  .cookie-banner { left: 1.25rem; right: auto; bottom: 1.25rem; width: 440px; border: 1px solid var(--sandstone); border-radius: var(--radius-lg); }
}
.map-embed__consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 1.25rem; text-align: center; }
.map-embed__consent p { margin: 0; max-width: 32ch; font-size: .92rem; color: var(--ink-soft); }
.site-footer__cookies { padding: 0; border: 0; background: none; font: inherit; color: rgba(255, 255, 255, .78); text-decoration: underline; cursor: pointer; }
.site-footer__cookies:hover { color: var(--white); }
@media print { .cookie-banner { display: none; } }
