/* Styles communs des pages sur téléphone. */
html:not(.ve-phone-page) .ve-page-mobile {
  display:none !important;
}
html.ve-phone-page {
  --ve-page-edge:clamp(14px,4.5vw,22px);
}

/* En-tête et menu. */
html.ve-phone-page .ve-page-mobile[hidden] {
  display:block !important;
}
html.ve-phone-page #contenu > .mobile-poster-fold, html.ve-phone-page #contenu > .mobile-only-intro {
  display:none !important;
}
html.ve-phone-page body {
  padding-top:var(--ve-page-header-height,76px) !important;
}
html.ve-phone-page .site-header {
  position:fixed !important;
  inset:0 0 auto !important;
  width:100% !important;
  z-index:10000 !important;
}
html.ve-phone-page .menu-toggle {
  display:block;
}
html.ve-phone-page .nav-cta {
  display:none;
}
html.ve-phone-page .main-nav {
  position:fixed;
  inset:var(--ve-page-header-height,76px) 0 auto;
  display:none;
  max-height:calc(100vh - var(--ve-page-header-height,76px));
  max-height:calc(100dvh - var(--ve-page-header-height,76px));
  overflow:auto;
  align-items:stretch;
  padding:14px 20px 24px;
  background:#fff;
  border-bottom:1px solid var(--line,#dbe5ec);
  box-shadow:var(--shadow,0 20px 60px #10253f20);
}
html.ve-phone-page .main-nav.open {
  display:grid;
}
html.ve-phone-page .main-nav .nav-link, html.ve-phone-page .main-nav .nav-button {
  text-align:left;
  width:100%;
  padding:.85rem;
}
html.ve-phone-page .main-nav .nav-item {
  position:static;
}
html.ve-phone-page .main-nav .dropdown {
  position:static;
  width:auto;
  min-width:0;
  max-width:none;
  margin:0 0 8px 12px;
  box-shadow:none;
  border:0;
  border-left:2px solid var(--aqua,#dff5f5);
  border-radius:0;
}
html.ve-phone-page .main-nav .dropdown a {
  white-space:normal;
}

/* Présentation de la page. */
html.ve-phone-page .ve-page-mobile {
  --ve-page-blue:#087aa8;
  --ve-page-ink:#10253f;
  --ve-page-edge:clamp(14px,4.5vw,22px);
  display:block;
  margin:0;
  padding:0 0 22px;
  color:var(--ve-page-ink);
  background:linear-gradient(155deg,#f5fbfe,#edf6fb 65%,#fff);
  font-family:var(--font-sans,system-ui,sans-serif);
}
html.ve-phone-page .ve-page-mobile *, html.ve-phone-page .ve-page-mobile *::before, html.ve-phone-page .ve-page-mobile *::after {
  box-sizing:border-box;
}
html.ve-phone-page .ve-page-photo {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1800/945;
  object-fit:contain;
  margin:0;
  border:0;
  border-radius:0;
  filter:none;
}
html.ve-phone-page .ve-page-mobile > .ve-page-search {
  padding:10px var(--ve-page-edge) 0;
}
html.ve-phone-page .ve-page-content {
  padding:16px var(--ve-page-edge) 0;
  min-width:0;
}
html.ve-phone-page .ve-page-kicker {
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 7px;
  color:var(--ve-page-blue);
  font-size:.75rem;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.075em;
  text-transform:uppercase;
}
html.ve-phone-page .ve-page-kicker::before {
  content:"";
  width:28px;
  height:3px;
  border-radius:2px;
  background:#ff7657;
}
html.ve-phone-page .ve-page-title,
html.ve-phone-page .ve-page-mobile-heading {
  margin:0;
  padding:0;
  color:var(--ve-page-blue);
  font-size:clamp(1.1rem,5.6vw,1.45rem) !important;
  line-height:1.2 !important;
  letter-spacing:-.035em !important;
  font-weight:850 !important;
  text-transform:uppercase;
  text-wrap:pretty;
}
html.ve-phone-page .ve-page-title:has(+ .ve-page-mobile-heading) {
  display:none;
}
html.ve-phone-page .ve-page-mobile-heading br {
  display:block;
}
html.ve-phone-page .ve-page-mobile-heading em {
  color:inherit;
  font-family:inherit;
  font-size:inherit;
  font-style:normal;
  font-weight:inherit;
  line-height:inherit;
  letter-spacing:inherit;
}
html.ve-phone-page .ve-page-description {
  margin:8px 0 14px;
  font-size:1rem;
  line-height:1.4;
  color:#5c6f82;
}

/* Introduction et choix réunis dans un seul bloc. */
html.ve-phone-page body:is(.page-itineraires-europe,.page-angleterre,.page-belgique,.page-chypre,.page-guides,.page-top10) .ve-page-content {
  margin:12px var(--ve-page-edge) 0;
  padding:18px;
  border:1px solid #dbeaf2;
  border-radius:20px;
  background:linear-gradient(145deg,#f4fbff,#fff 58%,#fff7f3);
  box-shadow:0 12px 30px #10253f12;
}
html.ve-phone-page body:is(.page-itineraires-europe,.page-angleterre,.page-belgique,.page-chypre,.page-guides,.page-top10) .ve-page-description {
  margin-bottom:0;
}
html.ve-phone-page body:is(.page-itineraires-europe,.page-angleterre,.page-belgique,.page-chypre) .ve-page-content .route-select {
  display:block;
  margin:16px 0 0;
  padding:16px 0 0;
  border:0;
  border-top:1px solid #dbeaf2;
  border-radius:0;
  background:none;
  box-shadow:none;
}
html.ve-phone-page body:is(.page-itineraires-europe,.page-angleterre,.page-belgique,.page-chypre) .ve-page-content .route-select > div {
  display:none;
}
html.ve-phone-page body:is(.page-itineraires-europe,.page-angleterre,.page-belgique,.page-chypre) .ve-page-content .route-select select {
  margin-top:0;
}
html.ve-phone-page body.page-guides .ve-page-content .guide-country-nav {
  display:block;
  margin:16px 0 0;
  padding:16px 0 0;
  border:0;
  border-top:1px solid #dbeaf2;
  border-radius:0;
  background:none;
  box-shadow:none;
}
html.ve-phone-page body.page-guides .ve-page-content .guide-country-control {
  margin-top:14px;
  grid-template-columns:minmax(0,1fr);
}
html.ve-phone-page body.page-guides .ve-page-content .guide-country-control > div {
  display:none;
}
html.ve-phone-page .ve-grouped-action {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:50px;
  margin-top:16px;
  padding:12px 16px;
  border-radius:25px;
  background:linear-gradient(115deg,#0094b2,#076087);
  color:#fff;
  font-weight:800;
  text-decoration:none;
}
html.ve-phone-page .top10-country-jump {
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #dbeaf2;
}
html.ve-phone-page .top10-country-jump label {
  display:block;
  margin:0 0 10px;
  color:#10253f;
  font-size:1rem;
  line-height:1.3;
  font-weight:850;
}
html.ve-phone-page .top10-country-jump select {
  width:100%;
  min-height:54px;
  padding:10px 48px 10px 14px;
  border:2px solid #94dcf4;
  border-radius:16px;
  background:#fff;
  color:#10253f;
  font:inherit;
  font-weight:750;
  cursor:pointer;
}
html.ve-phone-page .top10-country-jump select:focus-visible {
  border-color:#087aa8;
  outline:3px solid #ff7657;
  outline-offset:2px;
}
html.ve-phone-page body.page-top10 .ranking {
  padding-top:18px;
}
html.ve-phone-page body.page-top10 .ranking-head {
  display:none;
}

/* Recherche. */
html.ve-phone-page .ve-page-search:empty {
  display:none;
}
html.ve-phone-page .ve-page-search .search-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) 46px;
  align-items:stretch;
  gap:8px;
  width:100%;
  min-width:0;
  margin:0;
  padding:13px;
  border:1px solid #dce9f1;
  border-radius:17px;
  background:#fff;
  box-shadow:0 8px 25px #10253f08;
}
html.ve-phone-page .ve-page-search .search-card label {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  min-height:46px;
  padding:0 10px;
  margin:0;
  border:1px solid #dce9f1;
  border-radius:10px;
  background:#fff;
  color:var(--ve-page-blue);
  font-size:1rem;
  font-weight:400;
}
html.ve-phone-page .ve-page-search .search-card .ve-page-search-caption {
  grid-column:1 / -1;
  display:block;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  color:#4c6074;
  font-size:.875rem;
  font-weight:650;
  line-height:1.4;
}
html.ve-phone-page .ve-page-search .search-card label > svg {
  width:20px;
  height:20px;
  flex:0 0 20px;
}
html.ve-phone-page .ve-page-search .search-card input {
  width:100%;
  min-width:0;
  height:44px;
  min-height:44px;
  padding:0;
  border:0;
  border-radius:0;
  color:#10253f;
  background:transparent;
  font:inherit;
  font-size:1rem;
  box-shadow:none;
}
html.ve-phone-page .ve-page-search .search-card input::placeholder {
  color:#65798a;
  opacity:1;
}
/* Bouton de recherche. */
html.ve-phone-page .ve-page-search .search-card button {
  display:grid;
  place-items:center;
  justify-self:end;
  width:46px;
  min-width:46px;
  max-width:46px;
  min-height:46px;
  margin:0;
  padding:10px;
  border:0;
  border-radius:11px;
  background:#ff7657;
  color:#fff;
  font:inherit;
  line-height:1;
  box-shadow:none;
  cursor:pointer;
}
html.ve-phone-page .ve-page-search .search-card button svg {
  width:23px;
  height:23px;
}
html.ve-phone-page .ve-page-mobile :focus-visible {
  outline:3px solid #ff7657;
  outline-offset:3px;
}
html.ve-phone-page #contenu [id] {
  scroll-margin-top:var(--ve-page-header-height,76px);
}
/* Choix du parcours à Paphos. */
html:not(.ve-phone-page) .city-visit-selector {
  display:none !important;
}

html.ve-phone-page .city-page-nav:not(.city-visit-selector) {
  display:none !important;
}
html.ve-phone-page .city-visit-selector {
  display:block !important;
  margin:0 !important;
  padding:24px var(--ve-page-edge,clamp(14px,4.5vw,22px)) 28px !important;
  border-block:1px solid #d9e9f1;
  background:linear-gradient(145deg,#f2fbff,#fff8f5) !important;
}
html.ve-phone-page .city-visit-selector .container {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
html.ve-phone-page .city-choice-head {
  margin:0 0 15px;
  text-align:left;
}
html.ve-phone-page .city-choice-kicker {
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 6px;
  color:var(--ve-page-blue);
  font-size:.75rem;
  line-height:1.4;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
}
html.ve-phone-page .city-choice-kicker::before {
  content:"";
  width:28px;
  height:3px;
  border-radius:2px;
  background:#ff7657;
}
html.ve-phone-page .city-choice-head > strong {
  display:block;
  margin:0;
  color:var(--ve-page-ink);
  font-size:clamp(1.25rem,6vw,1.55rem);
  line-height:1.15;
  letter-spacing:.01em;
  font-weight:900;
  text-transform:uppercase;
}
html.ve-phone-page .city-choice-head p {
  margin:8px 0 0;
  color:#5c6f82;
  font-size:.95rem;
  line-height:1.45;
}
html.ve-phone-page .city-choice-overview {
  margin:0 0 10px
}
html.ve-phone-page .city-choice-grid {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:10px;
  width:100%;
}
html.ve-phone-page .city-choice-card {
  position:relative;
  display:grid !important;
  grid-template-columns:68px minmax(0,1fr);
  gap:2px 13px;
  min-width:0;
  min-height:108px;
  padding:15px 16px;
  overflow:hidden;
  border:1px solid #cfe1ea;
  border-radius:18px;
  background:#fff;
  color:var(--ve-page-ink);
  text-decoration:none;
  box-shadow:0 8px 22px #10253f0d;
}
html.ve-phone-page .city-choice-card::after {
  content:"›";
  position:absolute;
  right:15px;
  top:50%;
  translate:0 -50%;
  color:var(--ve-page-blue);
  font-size:1.8rem;
  line-height:1;
}
html.ve-phone-page .city-choice-duration {
  grid-row:1 / 4;
  display:grid;
  place-items:center;
  align-self:stretch;
  min-height:76px;
  padding:8px;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(145deg,#0098b4,#08658a);
  font-size:.82rem;
  line-height:1.15;
  font-weight:900;
  text-align:center;
  text-transform:uppercase;
}
html.ve-phone-page .city-choice-symbol svg {
  width:34px;
  height:34px
}
html.ve-phone-page .city-choice-card > strong {
  align-self:end;
  padding-right:23px;
  font-size:1rem;
  line-height:1.22;
  font-weight:900;
  text-transform:uppercase;
}
html.ve-phone-page .city-choice-card > small {
  padding-right:23px;
  color:#65798a;
  font-size:.78rem;
  line-height:1.35;
}
html.ve-phone-page .city-choice-action {
  align-self:start;
  margin-top:3px;
  padding-right:23px;
  color:var(--ve-page-blue);
  font-size:.72rem;
  line-height:1.3;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}
html.ve-phone-page .city-choice-card[aria-current="page"] {
  border:2px solid #ff7657;
  background:linear-gradient(145deg,#fff,#fff5f1);
  box-shadow:0 10px 26px #ff765724;
}
html.ve-phone-page .city-choice-card[aria-current="page"] .city-choice-duration {
  background:#ff7657;
}
html.ve-phone-page .city-choice-card[aria-current="page"] .city-choice-action {
  color:#d84628;
}
@media (max-width:360px) {
  html.ve-phone-page .ve-page-content {
    padding-top:13px;
  }
  html.ve-phone-page .ve-page-search .search-card {
    gap:8px;
    padding:10px;
  }
  html.ve-phone-page .ve-page-search .search-card label {
    gap:5px;
    padding-inline:8px;
  }
  html.ve-phone-page .ve-page-search .search-card .ve-page-search-caption {
    padding:0;
  }
}
/* Titres en majuscules sur téléphone. */
@media (max-width:700px) {
  .ve-home-title,  .ve-home-inspiration > h3,  .ve-home-tile > span,  .ve-page-title,  .ve-page-mobile-heading,  .editorial-heading > h2,  .heading.wide > h2 {
    text-transform:uppercase !important;
  }
}
@media (orientation:landscape) and (max-height:600px) {
  html.ve-phone-page .ve-page-mobile {
    display:grid !important;
    grid-template-columns:minmax(0,44fr) minmax(0,56fr);
    align-items:start;
  }
  html.ve-phone-page .ve-page-content {
    padding-top:12px;
  }
  html.ve-phone-page .ve-page-description {
    margin-block:6px 10px;
  }
}
