/* =====================================================================================================
   Aphrodite Apartments: modern retro.
   A 1960s Riviera poster set in a clean modern grid. Cream paper, Aegean blue, terracotta, sun yellow;
   Noto Serif Display for headlines (italic second lines), Commissioner for text and UI.
   Imagery is illustration only: the sunset poster, the painted views and the painted objects.
   ===================================================================================================== */

:root {
	--aph-cream: #f3ecdf;
	--aph-paper: #fbf7f0;
	--aph-sand: #e7d9c0;
	--aph-line: #cdbfa6;
	--aph-ink: #1e2a36;
	--aph-ink-2: #3a4651;
	--aph-muted: #5b6670;
	--aph-blue: #1d5a85;
	--aph-blue-deep: #143f5e;
	--aph-blue-soft: #d6e2ea;
	--aph-terra: #b9481f;
	--aph-terra-deep: #9a3a17;
	--aph-coral: #d8613c;
	--aph-sun: #ecb23f;
	--aph-glass: #a9cfc8;
	--aph-peach: #f0a98a;
	--aph-display: 'Noto Serif Display', 'Iowan Old Style', Georgia, serif;
	--aph-text: 'Commissioner', 'Segoe UI', system-ui, sans-serif;
	--aph-measure: 64ch;
	--aph-gutter: clamp(20px, 4vw, 48px);
	--aph-section: clamp(80px, 9vw, 120px);
	--aph-wide: 1240px;
	--aph-page: min(100% - 2 * var(--aph-gutter), var(--aph-wide));
	--aph-edge: max(var(--aph-gutter), (100% - var(--aph-wide)) / 2);
	--aph-radius: 28px;
	--aph-border: 2px solid var(--aph-ink);
	/* Awning stripes and the striped half-sun, drawn once. */
	--aph-awning: repeating-linear-gradient(90deg, var(--aph-blue) 0 34px, var(--aph-cream) 34px 68px);
	--aph-halfsun: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200'%3E%3Cpath d='M0 200A200 200 0 0 1 400 200Z' fill='%23ecb23f'/%3E%3Cg fill='%23b9481f'%3E%3Crect y='120' width='400' height='10'/%3E%3Crect y='148' width='400' height='12'/%3E%3Crect y='176' width='400' height='14'/%3E%3C/g%3E%3C/svg%3E");
	--aph-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'%3E%3Ccircle cx='22' cy='22' r='21' fill='%23ecb23f'/%3E%3Cpath d='M1 22a21 21 0 0 0 42 0Z' fill='%23d8613c'/%3E%3Cg fill='%23f3ecdf'%3E%3Crect y='27' width='44' height='2.4'/%3E%3Crect y='32.5' width='44' height='2.4'/%3E%3Crect y='38' width='44' height='2.4'/%3E%3C/g%3E%3Ccircle cx='22' cy='22' r='21' fill='none' stroke='%231e2a36' stroke-width='1.5'/%3E%3C/svg%3E");
}

/* ---------- Page, type, browser surfaces ---------- */

html, body { overflow-x: clip; }
/* Anchors and form errors land below the sticky header, not under it. */
html { scroll-padding-top: 120px; }
.admin-bar { scroll-padding-top: 152px; }
body.aph-retro {
	background: var(--aph-cream);
	color: var(--aph-ink);
	font: 400 1.0625rem/1.6 var(--aph-text);
	-webkit-font-smoothing: antialiased;
	font-kerning: normal;
}
.aph-retro :is(h1, h2, h3, h4),
.aph-retro .elementor-widget-heading .elementor-heading-title {
	font-family: var(--aph-display);
	font-weight: 600;
	color: var(--aph-ink);
	letter-spacing: -0.02em;
	line-height: 1.04;
	text-wrap: balance;
}
.aph-retro :is(h1, h2) em, .aph-retro .elementor-heading-title em { font-style: italic; font-weight: 500; color: var(--aph-blue); }
.aph-retro h1, .aph-retro h1.elementor-heading-title { font-size: clamp(2.8rem, 6vw, 5.6rem); line-height: .98; letter-spacing: -0.025em; }
.aph-retro h2, .aph-retro h2.elementor-heading-title { font-size: clamp(2.3rem, 4vw, 3.6rem); }
.aph-retro h3, .aph-retro h3.elementor-heading-title { font-size: clamp(1.4rem, 2vw, 1.75rem); line-height: 1.12; letter-spacing: -0.01em; }
.aph-retro h4, .aph-retro h4.elementor-heading-title { font: 700 .82rem/1.2 var(--aph-text) !important; letter-spacing: .14em; text-transform: uppercase; }
.aph-retro .elementor-heading-title a { color: inherit; text-decoration: none; }
.aph-retro .elementor-heading-title a:hover { color: var(--aph-blue); }
.aph-retro p { margin: 0 0 1em; }
body.aph-retro .elementor-widget-text-editor, body.aph-retro .elementor-widget-icon-list, body.aph-retro .elementor-icon-box-description { font-family: var(--aph-text); }
.aph-retro .elementor-widget-text-editor { color: var(--aph-ink-2); }
.aph-retro .elementor-widget-text-editor p { max-width: var(--aph-measure); }
.aph-retro .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.aph-retro a { color: var(--aph-blue); text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.aph-retro a:hover { color: var(--aph-blue-deep); }
::selection { background: var(--aph-sun); color: var(--aph-ink); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--aph-blue); outline-offset: 3px; border-radius: 6px; }
.aph-retro { accent-color: var(--aph-blue); caret-color: var(--aph-blue); scrollbar-color: var(--aph-line) var(--aph-cream); }
.aph-nw { white-space: nowrap; }

/* Lead paragraph under a section heading. */
.aph-lede p { font-size: 1.15rem; color: var(--aph-ink-2); max-width: 46ch; }

/* ---------- Buttons: pills ---------- */

.aph-retro .elementor-button,
.aph-retro .aph-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	min-height: 50px;
	font: 600 1rem/1.2 var(--aph-text);
	letter-spacing: 0.01em;
	border-radius: 999px;
	padding: 14px 26px;
	background: var(--aph-terra);
	color: #fff;
	border: 2px solid var(--aph-terra);
	box-shadow: none;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s cubic-bezier(.2, .8, .2, 1);
}
.aph-retro .elementor-button:hover { background: var(--aph-terra-deep); border-color: var(--aph-terra-deep); color: #fff; }
.aph-retro .elementor-button:active { transform: translateY(1px); }
.aph-retro :is(.aph-btn--pencil, .aph-btn--outline) .elementor-button,
.aph-retro .aph-apt__foot .elementor-button { background: transparent; color: var(--aph-ink); border-color: var(--aph-ink); }
.aph-retro :is(.aph-btn--pencil, .aph-btn--outline) .elementor-button:hover,
.aph-retro .aph-apt__foot .elementor-button:hover { background: var(--aph-ink); color: var(--aph-cream); border-color: var(--aph-ink); }
.aph-retro :is(.aph-btn--paper, .aph-btn--sand) .elementor-button { background: var(--aph-paper); color: var(--aph-ink); border-color: var(--aph-paper); }
.aph-retro :is(.aph-btn--paper, .aph-btn--sand) .elementor-button:hover { background: #fff; color: var(--aph-ink); border-color: #fff; }
.aph-retro :is(.aph-btn--onsea, .aph-btn--light) .elementor-button { background: transparent; color: #fff; border-color: #fff; }
.aph-retro :is(.aph-btn--onsea, .aph-btn--light) .elementor-button:hover { background: rgb(255 255 255 / 0.14); color: #fff; }
.aph-retro .elementor-button:focus-visible { outline-color: var(--aph-ink); outline-offset: 4px; border-radius: 999px; }
.aph-buttons { gap: 12px; flex-wrap: wrap; }

/* ---------- Header ---------- */

.aph-retro .site-header.dynamic-header {
	position: sticky; top: 0; z-index: 999;
	background: rgb(243 236 223 / 0.94);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	padding-block: 14px;
	padding-inline: 0; /* the inner box carries the gutter, like every section */
	box-shadow: none;
	border: 0;
	border-bottom: 1.5px solid var(--aph-ink);
	max-width: none;
}
.admin-bar .site-header.dynamic-header { top: 32px; }
.aph-retro .site-header .header-inner { width: 100%; max-width: calc(var(--aph-wide) + 2 * var(--aph-gutter)); margin-inline: auto; padding-inline: var(--aph-gutter); box-sizing: border-box; display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 16px; }
.aph-retro .site-header .site-branding { flex: 0 1 auto; min-width: 0; }
.aph-retro .site-header .site-navigation-toggle-holder { flex: none; padding: 0; }
/* The lockup: sun badge, "Aphrodite" in the display serif, "Apartments · Mytikas" in small blue capitals.
   The link keeps its real text (the site name) for search engines and screen readers; the two lines are drawn. */
.aph-retro .site-header .site-title a {
	--aph-badge: 44px;
	display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
	min-height: var(--aph-badge); padding-left: calc(var(--aph-badge) + 12px);
	background: var(--aph-logo) left center / var(--aph-badge) no-repeat;
	font-size: 0; line-height: 1; color: var(--aph-ink); text-decoration: none; white-space: nowrap;
}
.aph-retro .site-header .site-title a::before { content: 'Aphrodite' / ''; font: 600 1.6rem/1 var(--aph-display); letter-spacing: -0.01em; color: var(--aph-ink); }
.aph-retro .site-header .site-title a::after { content: 'Apartments · Mytikas' / ''; font: 600 .72rem/1 var(--aph-text); letter-spacing: .22em; text-transform: uppercase; color: var(--aph-blue); }
html:not([lang^='en']) .aph-retro .site-header .site-title a::after { letter-spacing: .14em; } /* the words come from aphrodite-site.php */
.aph-retro .site-header .site-navigation ul.menu { align-items: center; gap: 4px; }
.aph-retro .site-header .site-navigation ul.menu li a { font: 500 1rem/1 var(--aph-text); color: var(--aph-ink); padding: 12px 14px; border-radius: 999px; position: relative; }
.aph-retro .site-header .site-navigation ul.menu li a:hover { color: var(--aph-blue); background: transparent; }
.aph-retro .site-header .site-navigation ul.menu li.current-menu-item > a::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 5px; height: 3px; border-radius: 3px; background: var(--aph-coral); }
.aph-retro .site-header .site-navigation ul.menu li.aph-menu-cta > a { background: var(--aph-terra); color: #fff; padding: 14px 22px; margin-left: 10px; font-weight: 600; }
.aph-retro .site-header .site-navigation ul.menu li.aph-menu-cta > a:hover { background: var(--aph-terra-deep); color: #fff; }
.aph-retro .site-header .site-navigation ul.menu li.aph-menu-cta > a::after { display: none; }
/* Order as in the concept: page links, the language switch, then Book as its own pill at the far end. */
.aph-retro .site-header ul.menu li.aph-lang { order: 50; margin-left: 6px; }
.aph-retro .site-header ul.menu li.aph-menu-cta { order: 60; }
/* Desktop: the links sit centred between the logo and the Book pill, which keeps the far right. */
.aph-retro .site-header .site-navigation { flex: 1 1 auto; }
.aph-retro .site-header .site-navigation ul.menu { width: 100%; justify-content: flex-end; }
.aph-retro .site-header .site-navigation ul.menu li.aph-menu-cta > a { margin-left: 22px; }
/* The header uses its own switch (aphrodite-site.php); Polylang's items stay in the footer. */
.aph-retro .site-header ul.menu li.lang-item { display: none; }
.aph-lang { position: relative; }
.aph-lang__box > summary { list-style: none; }
.aph-lang__box > summary::-webkit-details-marker { display: none; }
.aph-lang__btn { display: flex; align-items: center; gap: 6px; padding: 9px 12px; border: 1.5px solid var(--aph-line); border-radius: 999px; font: 600 .9rem/1 var(--aph-text); letter-spacing: .04em; color: var(--aph-ink); cursor: pointer; }
.aph-lang__btn::after { content: ''; width: 6px; height: 6px; margin: -3px 0 0 2px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; rotate: 45deg; transition: rotate .2s ease; }
.aph-lang__box[open] > .aph-lang__btn::after { rotate: -135deg; margin-top: 3px; }
.aph-lang__btn:hover, .aph-lang__box[open] > .aph-lang__btn { border-color: var(--aph-ink); }
.aph-lang__btn:focus-visible { outline: 2px solid var(--aph-blue); outline-offset: 2px; }
.aph-lang__globe { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.aph-retro .site-header ul.menu .aph-lang__list { position: absolute; right: 0; top: calc(100% + 8px); z-index: 20; display: grid; min-width: 210px; margin: 0; padding: 6px; list-style: none; background: var(--aph-paper); border: var(--aph-border); border-radius: 18px; box-shadow: 5px 5px 0 rgb(30 42 54 / .18); }
.aph-retro .site-header .site-navigation:not(.site-navigation-dropdown) .aph-lang__box:not([open]) > .aph-lang__list { display: none; }
.aph-retro .site-header ul.menu .aph-lang__list a { display: flex; gap: 12px; align-items: baseline; padding: 10px 12px; border-radius: 12px; font: 500 1rem/1.2 var(--aph-text); color: var(--aph-ink); white-space: nowrap; }
.aph-retro .site-header ul.menu .aph-lang__list a::after { display: none; }
.aph-retro .site-header ul.menu .aph-lang__list a b { width: 2em; font-size: .78rem; letter-spacing: .06em; color: var(--aph-muted); }
.aph-retro .site-header ul.menu .aph-lang__list a:hover { background: var(--aph-cream); color: var(--aph-blue); }
.aph-retro .site-header ul.menu .aph-lang__list a[aria-current] { background: var(--aph-sand); font-weight: 700; }
/* Menu button focus: one ring (the border turns blue and thickens) instead of an outline around the border. */
.aph-retro .site-navigation-toggle-holder .site-navigation-toggle:focus { outline: none; }
.aph-retro .site-navigation-toggle-holder .site-navigation-toggle:focus-visible { border-color: var(--aph-blue); box-shadow: 0 0 0 2px var(--aph-blue); }
.aph-retro .site-navigation-toggle-holder .site-navigation-toggle,
.aph-retro .site-navigation-toggle-holder .site-navigation-toggle:is(:hover, :focus, :active, [aria-expanded=true]) { background: transparent; color: var(--aph-ink); border: var(--aph-border); border-radius: 999px; min-width: 46px; min-height: 46px; box-shadow: none; }
/* Phone menu: the pages as quiet rows, then Book as a full-width button, then the languages as a small panel. */
/* The open phone menu fits the screen below the header and scrolls on its own; the page behind it stays put. */
.aph-retro .site-header .site-navigation-toggle-holder.elementor-active + .site-navigation-dropdown ul.menu { max-height: calc(100dvh - var(--aph-menu-top, 110px)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
html:has(.aph-retro .site-navigation-toggle-holder.elementor-active) { overflow: hidden; }
.aph-retro .site-header .site-navigation-dropdown ul.menu { display: flex; flex-direction: column; padding: 6px 0 24px; background: var(--aph-cream); box-shadow: none; border-top: 0; border-bottom: 1.5px solid var(--aph-ink); }
.aph-retro .site-header .site-navigation-dropdown ul.menu li a { position: relative; display: flex; align-items: center; justify-content: space-between; margin: 0 var(--aph-gutter); padding: 17px 0; background: none; color: var(--aph-ink); font: 600 1.12rem/1.2 var(--aph-text); border-bottom: 1px solid var(--aph-line); box-shadow: none; }
.aph-retro .site-header .site-navigation-dropdown ul.menu > li:not(.aph-menu-cta, .aph-lang) > a::after { content: ''; position: static; width: 8px; height: 8px; border: solid var(--aph-muted); border-width: 1.5px 1.5px 0 0; rotate: 45deg; background: none; }
.aph-retro .site-header .site-navigation-dropdown ul.menu li.current-menu-item > a { color: var(--aph-blue); }
.aph-retro .site-header .site-navigation-dropdown ul.menu li.current-menu-item > a::before { content: ''; position: absolute; left: calc(-1 * var(--aph-gutter)); top: 14px; bottom: 14px; width: 3px; border-radius: 0 3px 3px 0; background: var(--aph-coral); }
.aph-retro .site-header .site-navigation-dropdown ul.menu li a:hover { background: none; color: var(--aph-blue); }
.aph-retro .site-header .site-navigation-dropdown ul.menu li.aph-menu-cta { order: 55; margin: 22px 0 0; padding: 0 var(--aph-gutter); }
.aph-retro .site-header .site-navigation-dropdown ul.menu li.aph-menu-cta > a { justify-content: center; margin: 0; padding: 16px; border: 0; border-radius: 999px; background: var(--aph-terra); color: #fff; font-weight: 700; }
.aph-retro .site-header .site-navigation-dropdown ul.menu li.aph-menu-cta > a:hover { background: var(--aph-terra-deep); color: #fff; }
.aph-retro .site-header .site-navigation-dropdown ul.menu li.aph-lang { order: 60; margin: 26px 0 0; padding: 0 var(--aph-gutter); background: none; border: 0; }
.aph-lang__label { display: none; }
.aph-retro .site-header .site-navigation-dropdown .aph-lang__label { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; font: 700 .76rem/1 var(--aph-text); letter-spacing: .14em; text-transform: uppercase; color: var(--aph-muted); }
.aph-retro .site-header .site-navigation-dropdown .aph-lang__label .aph-lang__globe { width: 15px; height: 15px; }
.aph-retro .site-header .site-navigation-dropdown .aph-lang__btn { display: none; }
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list { position: static; display: grid; grid-template-columns: 1fr 1fr; min-width: 0; padding: 0; overflow: hidden; background: var(--aph-paper); border: 1.5px solid var(--aph-line); border-radius: 16px; box-shadow: none; }
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list li { width: auto; max-height: none; transform: none; border-bottom: 1px solid var(--aph-line); } /* Hello collapses nested menu lists */
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list li:nth-child(odd) { border-right: 1px solid var(--aph-line); }
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list li:last-child,
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list li:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list li:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; } /* an odd count: the last language takes the whole row */
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list a { justify-content: flex-start; gap: 10px; margin: 0; padding: 13px 14px; border: 0; border-radius: 0; font: 500 .98rem/1.2 var(--aph-text); color: var(--aph-ink); }
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list a b { width: 1.9em; font-size: .74rem; letter-spacing: .06em; color: var(--aph-muted); }
.aph-retro .site-header .site-navigation-dropdown ul.menu .aph-lang__list a[aria-current] { background: var(--aph-sand); font-weight: 700; }

/* ---------- Elementor containers: our sections own their rhythm ---------- */

.aph-section, .aph-direct, .aph-prefooter, .aph-hero { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.aph-section {
	width: var(--aph-page) !important;
	margin-inline: auto;
	padding-block: var(--aph-section) 0 !important;
	gap: 0;
}
.aph-section > .elementor-widget-heading:first-child { margin-bottom: 16px; }
.aph-section > .aph-lede { margin-bottom: clamp(32px, 5vw, 48px) !important; }

/* ---------- Home hero: copy beside the arched poster, dates strip below, awning stripes under it ---------- */

.aph-hero {
	display: grid !important;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	grid-template-areas: "copy art" "dates dates";
	column-gap: clamp(32px, 5vw, 64px);
	align-items: end;
	padding: clamp(40px, 5vw, 64px) var(--aph-edge) calc(26px + clamp(64px, 8vw, 96px)) !important;
	position: relative;
	z-index: 5; /* above the sections below, so the date picker opens over them (header is 999) */
}
.aph-hero::after { content: ''; position: absolute; inset: auto 0 0; height: 26px; background: var(--aph-awning); border-block: var(--aph-border); }
/* The awning slides sideways as the page scrolls: aphrodite.js swaps the still stripe for a strip it moves (not when motion is reduced). */
.aph-hero.has-awning::after { display: none; }
.aph-awning { position: absolute; inset: auto 0 0; height: 26px; overflow: hidden; border-block: var(--aph-border); pointer-events: none; }
.aph-awning i { position: absolute; inset: 0 auto 0 0; width: calc(100% + 68px); background: var(--aph-awning); will-change: transform; backface-visibility: hidden; }
.aph-hero__art { grid-area: art; position: relative; }
.aph-hero__copy { grid-area: copy; width: auto !important; gap: 22px; padding: 0 0 clamp(32px, 4vw, 56px) !important; text-align: left; }
.aph-hero__title .elementor-heading-title { font-size: clamp(2.9rem, 6vw, 5.8rem) !important; }
.aph-hero__sub p { font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.55; max-width: 36ch; color: var(--aph-ink-2); }
.aph-hero__dates { grid-area: dates; width: auto !important; margin-top: -28px; padding: 0 !important; position: relative; z-index: 2; }

/* The poster: an arch of flat colour with grain; the sun settles in, the boats bob. */
.aph-poster { margin: 0; position: relative; }
.aph-poster svg { display: block; width: 100%; height: auto; }
/* The arch's bottom edge: on wide screens the search bar overlaps the poster and closes it, so the line shows only once they stack. */
@media (min-width: 901px) {
	.aph-poster__base { display: none; }
	/* ...and the right side runs on behind the bar until it meets the bar's rounded corner. */
	.aph-poster svg { overflow: visible; }
}
@media (max-width: 900px) { .aph-poster__leg { display: none; } }
.aph-stamp {
	position: absolute; left: -32px; top: 56px;
	width: 132px; height: 132px; border-radius: 50%;
	display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	background: var(--aph-paper); border: var(--aph-border); color: var(--aph-ink);
	rotate: -8deg; text-decoration: none; line-height: 1.15;
	transition: rotate .4s cubic-bezier(.2, .8, .2, 1);
}
.aph-retro a.aph-stamp:hover { rotate: 0deg; color: var(--aph-ink); }
.aph-stamp__score { font: 700 2.5rem/1 var(--aph-display); color: var(--aph-blue); }
.aph-stamp__word { font: 700 .7rem/1.2 var(--aph-text); letter-spacing: .14em; text-transform: uppercase; margin-top: 6px; }
.aph-stamp__src { max-width: 96px; margin-top: 2px; font-size: .66rem; line-height: 1.2; color: var(--aph-muted); text-wrap: balance; }
@media (prefers-reduced-motion: no-preference) {
	.aph-poster__sun { animation: aph-sunset 2.4s cubic-bezier(.16, 1, .3, 1) both; }
	.aph-poster__boat { animation: aph-bob 5s ease-in-out infinite; transform-box: fill-box; }
	.aph-poster__boat--far { animation-delay: -2.2s; animation-duration: 6s; }
	.aph-hero__copy { animation: aph-rise 1s cubic-bezier(.16, 1, .3, 1) .15s both; }
	.aph-stamp { animation: aph-stamp .7s cubic-bezier(.34, 1.56, .64, 1) 1.1s both; }
}
@keyframes aph-sunset { from { transform: translateY(-40px); opacity: .4; } to { transform: none; opacity: 1; } }
@keyframes aph-bob { 50% { transform: translateY(4px) rotate(1.5deg); } }
@keyframes aph-rise { from { opacity: 0; translate: 0 14px; } to { opacity: 1; translate: 0 0; } }
@keyframes aph-stamp { from { opacity: 0; scale: .6; } to { opacity: 1; scale: 1; } }

/* ---------- JetBookIn widgets ---------- */

.aph-retro .jbi-widget {
	--jbi-primary: var(--aph-blue);
	--jbi-on-primary: #fff;
	--jbi-accent: var(--aph-blue);
	--jbi-stamp: var(--aph-terra);
	--jbi-good: var(--aph-blue);
	--jbi-surface: var(--aph-paper);
	--jbi-surface-2: var(--aph-cream);
	--jbi-text: var(--aph-ink);
	--jbi-muted: var(--aph-muted);
	--jbi-border: var(--aph-line);
	--jbi-radius: 16px;
	--jbi-shadow: none;
	--jbi-slip: var(--aph-cream);
	--jbi-figures: 'Commissioner', var(--aph-text);
	font-family: var(--aph-text);
	font-variant-numeric: tabular-nums lining-nums;
}
.aph-retro .jbi-btn { border-radius: 999px; font-weight: 600; }
/* Booking actions in the action colour (terracotta); search, calendar and selection stay sea blue. */
.aph-retro :is(.jbi-rate .jbi-btn, .jbi-btn[data-book], .jbi-btn[data-reserve], .jbi-checkout button[type=submit].jbi-btn) { background: var(--aph-terra); border-color: var(--aph-terra); color: #fff; }
.aph-retro :is(.jbi-rate .jbi-btn, .jbi-btn[data-book], .jbi-btn[data-reserve], .jbi-checkout button[type=submit].jbi-btn):hover:not(:disabled) { background: var(--aph-terra-deep); border-color: var(--aph-terra-deep); }
/* Small caps labels only on field and stepper labels (CHECK-IN, GUESTS, AGE 13+); other small text in the widgets
   (notes, nights, calendar prices) keeps JetBookIn's own case and size, at least 14px outside the calendar. */
.aph-retro :is(.jbi-field-btn__btn, .jbi-stepper) small { font: 600 .875rem/1.15 var(--aph-text); letter-spacing: .06em; text-transform: uppercase; color: var(--aph-muted); }
.aph-retro .jbi-widget small:not(.jbi-cal__day small, .jbi-field-btn__btn small, .jbi-stepper small) { font-size: max(.875rem, 1em); }

/* The dates strip: one bordered bar of fixed cells, the action a full-height blue cell. */
.aph-retro .jbi-search { background: var(--aph-paper); border: var(--aph-border); border-radius: 22px; box-shadow: none; padding: 0; gap: 0; overflow: visible; }
.aph-retro .jbi-search > .jbi-field-btn + .jbi-field-btn::before { left: 0; top: 0; bottom: 0; width: 1.5px; background: var(--aph-line); }
.aph-retro .jbi-search .jbi-field-btn__btn { border-radius: 0; min-height: 76px; padding: 12px 24px; font: 600 1.1rem/1.2 var(--aph-text); }
/* Hover and focus stay inside the strip's rounded frame (inner radius = 22px - 2px border). */
.aph-retro .jbi-search > .jbi-field-btn:first-child .jbi-field-btn__btn { border-radius: 20px 0 0 20px; }
.aph-retro .jbi-search .jbi-field-btn__btn:hover { background: var(--aph-cream); }
.aph-retro .jbi-search .jbi-field-btn__btn:focus-visible { outline: 2px solid var(--aph-blue); outline-offset: -5px; }
.aph-retro .jbi-search > .jbi-btn:focus-visible { outline: 2px solid #fff; outline-offset: -6px; }
.aph-retro .jbi-search > .jbi-btn { border-radius: 0 20px 20px 0; margin: 0; background: var(--aph-blue); color: #fff; border: 0; min-height: 76px; padding-inline: 36px; font: 600 1.1rem/1 var(--aph-text); }
.aph-retro .jbi-search > .jbi-btn:hover { background: var(--aph-blue-deep); }
.aph-retro .jbi-popover { border: var(--aph-border); border-radius: 20px; }
@media (max-width: 720px) {
	.aph-retro .jbi-search > .jbi-field-btn { border-bottom: 1.5px solid var(--aph-line); }
	.aph-retro .jbi-search > .jbi-btn { margin: 0; border-radius: 0 0 20px 20px; }
	.aph-retro .jbi-search > .jbi-field-btn:first-child .jbi-field-btn__btn { border-radius: 20px 20px 0 0; }
}

/* ---------- Intro: text and "at a glance" ---------- */

.aph-intro { gap: clamp(40px, 7vw, 110px) !important; align-items: flex-start; }
.aph-intro__text { flex: 1 1 58%; gap: 18px; padding: 0 !important; }
.aph-intro__text .elementor-widget-button { margin-top: 10px; }
.aph-intro__notes { flex: 0 1 36%; padding: 28px 30px !important; margin-top: 8px; background: var(--aph-paper); border: var(--aph-border); border-radius: var(--aph-radius); }
.aph-notes-title .elementor-heading-title { font: 700 .82rem/1.2 var(--aph-text) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--aph-blue) !important; margin-bottom: 6px; }
.aph-ruled ul, .aph-intro__notes ul { list-style: none; margin: 0; padding: 0; }
.aph-ruled li, .aph-intro__notes li { padding: 11px 0; border-bottom: 1.5px dashed var(--aph-line); font: 500 1.02rem/1.4 var(--aph-text); color: var(--aph-ink); }
.aph-ruled li:last-child, .aph-intro__notes li:last-child { border-bottom: 0; }

/* ---------- The two apartments: two cards ---------- */

.aph-pair { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px !important; padding: 0 !important; }
.aph-apt {
	gap: 14px; padding: 0 0 30px !important; width: auto !important;
	background: var(--aph-paper); border: var(--aph-border); border-radius: var(--aph-radius); overflow: hidden;
}
.aph-apt > .elementor-element:not(:first-child) { padding-inline: 30px; }
.aph-apt__view { margin-bottom: 14px; border-bottom: var(--aph-border); }
.aph-apt .aph-view__canvas { aspect-ratio: 16 / 10; }
.aph-apt .aph-view__canvas img { filter: saturate(1.25) contrast(1.06); }
.aph-apt--balcony .aph-view__canvas { background: var(--aph-sun); }
.aph-apt--terrace .aph-view__canvas { background: var(--aph-glass); }
.aph-apt__view .aph-view::after { position: absolute; left: 18px; top: 18px; padding: 6px 14px; border-radius: 999px; border: 1.5px solid var(--aph-ink); font: 700 .78rem/1.2 var(--aph-text); letter-spacing: .1em; text-transform: uppercase; color: var(--aph-ink); }
.aph-apt--balcony .aph-apt__view .aph-view::after { content: 'Balcony'; background: var(--aph-sun); }
.aph-apt--terrace .aph-apt__view .aph-view::after { content: 'Terrace'; background: var(--aph-glass); }
.aph-apt__title .elementor-heading-title { font-size: clamp(1.6rem, 2.3vw, 2rem) !important; }
/* The whole card opens the apartment: the title link is stretched over it; price and button stay on top. */
.aph-apt { position: relative; transition: transform .25s cubic-bezier(.2, .8, .2, 1); }
.aph-apt > .aph-apt__title, .aph-apt__title .elementor-widget-container, .aph-apt__title .elementor-heading-title { position: static; }
.aph-apt__title .elementor-heading-title a::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: var(--aph-radius); }
.aph-apt__title .elementor-heading-title a:focus-visible { outline: none; }
.aph-apt:has(.aph-apt__title a:focus-visible) { outline: 3px solid var(--aph-blue); outline-offset: 4px; }
.aph-apt > .aph-apt__foot { position: relative; z-index: 2; pointer-events: none; }
.aph-apt > .aph-apt__foot .elementor-button { pointer-events: auto; }
@media (hover: hover) {
	.aph-apt:hover { transform: translateY(-3px); }
	.aph-apt:hover .aph-apt__title .elementor-heading-title a { color: var(--aph-blue); }
	.aph-apt:hover .aph-view__canvas img { filter: saturate(1.35) contrast(1.08); }
}
@media (prefers-reduced-motion: reduce) { .aph-apt, .aph-apt:hover { transform: none; } }
.aph-apt__desc p { color: var(--aph-ink-2); }
.aph-apt__sleeps ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.aph-apt__sleeps li { padding: 5px 13px; border: 1.5px solid var(--aph-line); border-radius: 999px; font-size: .92rem; color: var(--aph-ink-2); }
.aph-apt__foot { margin-top: auto; padding-top: 20px !important; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-top: 1.5px dashed var(--aph-line); margin-inline: 30px; padding-inline: 0 !important; --padding-left: 0px; --padding-right: 0px; }
.aph-apt > .aph-apt__foot { padding-inline: 0 !important; width: auto !important; }
.aph-apt__view .aph-view__caption { margin: 0; padding: 8px 30px; border-top: 1.5px solid var(--aph-ink); background: var(--aph-cream); font-size: .85rem; }
.aph-apt__view { border-bottom: 0; }
.aph-apt__price { width: auto !important; }
.aph-apt__price .jbi-widget { font: 400 1rem/1.3 var(--aph-text); color: var(--aph-muted); }
.aph-apt__price .jbi-widget :is(strong, b, .jbi-price__amount, [class*='amount']) { font: 600 1.9rem/1 var(--aph-display); color: var(--aph-ink); }

/* ---------- What's inside: painted objects on arched colour tiles, on a blue band ---------- */

.aph-inside {
	margin-top: var(--aph-section);
	padding-block: clamp(72px, 8vw, 104px) !important;
	background: var(--aph-blue);
	box-shadow: 0 0 0 100vmax var(--aph-blue);
	clip-path: inset(0 -100vmax);
	color: var(--aph-cream);
}
.aph-inside :is(h2, h3, .elementor-heading-title) { color: var(--aph-cream) !important; }
.aph-inside h2 em, .aph-inside .elementor-heading-title em { color: var(--aph-sun); }
.aph-inside .elementor-widget-text-editor, .aph-inside p { color: var(--aph-blue-soft); }
.aph-inside a { color: #fff; }
.aph-objects { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(32px, 4vw, 48px) clamp(20px, 3vw, 32px) !important; padding: 0 !important; }
.aph-obj { gap: 8px; padding: 0 !important; width: auto !important; }
.aph-retro img.aph-object { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; padding: 6% 7% 2%; box-sizing: border-box; margin-bottom: 10px; background: var(--tile, var(--aph-sun)); border: 2px solid #0f2c40; border-radius: 999px 999px 20px 20px / 70% 70% 20px 20px; }
.aph-obj:nth-child(6n + 2) { --tile: var(--aph-glass); }
.aph-obj:nth-child(6n + 3) { --tile: var(--aph-peach); }
.aph-obj:nth-child(6n + 4) { --tile: var(--aph-sand); }
.aph-obj:nth-child(6n + 6) { --tile: var(--aph-glass); }
.aph-obj__title .elementor-heading-title { font-size: 1.5rem !important; }
.aph-obj__text p { font-size: 1rem; }
.aph-inside__also { margin-top: clamp(48px, 6vw, 72px); padding-top: 24px; border-top: 1.5px dashed rgb(243 236 223 / 0.4); }
.aph-inside__also p { font-size: 1.1rem; color: var(--aph-cream); max-width: 64ch; }

/* ---------- Guest reviews ---------- */

.aph-reviews__head { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px 56px; align-items: center; margin-bottom: 44px; }
.aph-reviews__title { display: flex; align-items: center; gap: 28px; }
.aph-reviews__title h2 { margin: 0; }
.aph-reviews__score { flex: none; margin: 0 !important; width: 148px; height: 148px; border-radius: 50%; background: var(--aph-sun); border: var(--aph-border); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.aph-reviews__score span { font: 700 3.3rem/1 var(--aph-display); color: var(--aph-ink); }
.aph-reviews__score small { font: 700 .72rem/1.2 var(--aph-text); letter-spacing: .14em; text-transform: uppercase; margin-top: 4px; }
.aph-reviews__cats { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; }
.aph-reviews__cats div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1.5px dashed var(--aph-line); }
.aph-reviews__cats dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.aph-reviews__quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.aph-quote { margin: 0; padding: 28px; display: flex; flex-direction: column; gap: 18px; background: var(--aph-paper); border: var(--aph-border); border-radius: 24px; }
.aph-quote:nth-child(2) { background: var(--aph-sand); }
.aph-quote blockquote { margin: 0; padding: 0; border: 0; font: 500 1.3rem/1.38 var(--aph-display); color: var(--aph-ink); }
.aph-quote figcaption { margin-top: auto; font-size: .95rem; color: var(--aph-muted); }
.aph-quote figcaption strong { color: var(--aph-ink); }
.aph-reviews__src { margin: 18px 0 0 !important; font-size: .9rem; color: var(--aph-muted); }

/* ---------- Getting here: text beside the route card ---------- */

.aph-area { gap: clamp(36px, 6vw, 80px) !important; align-items: center; }
.aph-area__text { flex: 1 1 44%; gap: 18px; padding: 0 !important; }
.aph-area__text ul { list-style: none; margin: 0; padding: 0; }
.aph-area__text li { padding: 10px 0; border-bottom: 1.5px dashed var(--aph-line); }
.aph-area__route { flex: 1 1 52%; padding: 0 !important; }
.aph-route { margin: 0; position: relative; overflow: hidden; background: var(--aph-glass); border: var(--aph-border); border-radius: var(--aph-radius); }
.aph-route svg { display: block; width: 100%; height: auto; overflow: hidden; }
.aph-route__land { fill: var(--aph-cream); stroke: var(--aph-ink); stroke-width: 2.5; stroke-linejoin: round; }
.aph-route__places text { font: italic 500 20px/1 var(--aph-display); fill: var(--aph-blue-deep); opacity: .75; }
.aph-route__road { fill: none; stroke: var(--aph-ink); stroke-width: 5; stroke-linecap: round; }
.aph-route__sea { fill: none; stroke: var(--aph-blue); stroke-width: 4; stroke-dasharray: .01 .03; stroke-linecap: round; }
.aph-route__stop { fill: var(--aph-paper); stroke: var(--aph-ink); stroke-width: 3; }
.aph-route__stop--here { fill: var(--aph-coral); }
.aph-route.is-waiting .aph-route__road { stroke-dasharray: 1; stroke-dashoffset: 1; }
.aph-route.is-waiting .aph-route__labels li { opacity: 0; }
.aph-route.is-drawn .aph-route__road { transition: stroke-dashoffset 2s cubic-bezier(.45, 0, .2, 1); stroke-dashoffset: 0; }
.aph-route.is-drawn .aph-route__labels li { opacity: 1; transition: opacity .5s ease .3s; }
.aph-route.is-drawn .aph-route__label--road { transition-delay: 1s; }
.aph-route.is-drawn .aph-route__label--to { transition-delay: 1.8s; }
.aph-route.is-drawn .aph-route__label--boat { transition-delay: 2.2s; }
.aph-route__labels { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.aph-route__label { position: absolute; font: 500 .95rem/1.25 var(--aph-text); color: var(--aph-ink-2); white-space: nowrap; }
.aph-route__label strong { display: block; font: 600 1.35rem/1.15 var(--aph-display); color: var(--aph-ink); }
.aph-route__label em { font-style: normal; font-weight: 600; }
.aph-route__label { padding: 4px 10px; background: var(--aph-paper); border: 1.5px solid var(--aph-ink); border-radius: 12px; }
.aph-route__label--road { padding: 2px 8px; border-radius: 999px; }
.aph-route__label--from { left: 4%; top: 9%; }
.aph-route__label--road { left: 64%; top: 30%; }
.aph-route__label--to { right: 4%; top: 52%; text-align: right; }
.aph-route__label--boat { right: 3%; top: 80%; text-align: right; color: var(--aph-blue-deep); }
.aph-route__label--boat strong { font-size: 1.15rem; }

/* ---------- Book direct: a terracotta band with a striped sun ---------- */

.aph-direct, .aph-cta {
	margin-top: var(--aph-section);
	padding: clamp(80px, 9vw, 112px) var(--aph-edge) !important;
	background: var(--aph-terra) var(--aph-halfsun) right -40px bottom -2px / min(460px, 70vw) auto no-repeat !important;
	color: #fff;
	text-align: left;
	align-items: flex-start;
	gap: 18px;
}
.aph-direct::before, .aph-cta::before { display: none; }
.aph-direct .elementor-heading-title, .aph-cta .elementor-heading-title { color: #fff !important; max-width: 16ch; }
.aph-direct .elementor-heading-title em, .aph-cta .elementor-heading-title em { color: #fff; }
.aph-direct p, .aph-cta p { color: #fbe9df; max-width: 50ch; }
.aph-direct .elementor-widget-text-editor, .aph-cta .elementor-widget-text-editor { color: #fbe9df; }
.aph-direct .aph-buttons, .aph-cta .aph-buttons { justify-content: flex-start; margin-top: 8px; }
.aph-direct .elementor-button, .aph-cta .elementor-button { background: var(--aph-paper); color: var(--aph-ink); border-color: var(--aph-paper); }
.aph-direct .elementor-button:hover, .aph-cta .elementor-button:hover { background: #fff; color: var(--aph-ink); border-color: #fff; }
.aph-direct .elementor-widget-button + .elementor-widget-button .elementor-button,
.aph-cta .elementor-widget-button + .elementor-widget-button .elementor-button { background: transparent; color: #fff; border-color: #fff; }
.aph-direct .elementor-widget-button + .elementor-widget-button .elementor-button:hover,
.aph-cta .elementor-widget-button + .elementor-widget-button .elementor-button:hover { background: rgb(255 255 255 / 0.14); }

/* ---------- Painted views (cards, bands, side pictures) ---------- */

.aph-view { margin: 0; position: relative; }
.aph-view__canvas { position: relative; aspect-ratio: 2400 / 1100; overflow: hidden; }
.aph-view__canvas img { display: block; width: 100%; height: 100%; object-fit: cover; }
.aph-view__caption { font-size: .92rem; color: var(--aph-muted); margin-top: 10px; }

/* Notes on a painting: small labelled pins. */
.aph-notes { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; pointer-events: none; }
.aph-note { position: absolute; display: flex; flex-direction: column; align-items: flex-start; color: var(--aph-ink); font: 600 .95rem/1.15 var(--aph-text); white-space: nowrap; padding-bottom: var(--lead, 48px); translate: -8px -100%; }
.aph-note::after { content: ''; position: absolute; left: 7px; bottom: 8px; width: 2px; height: calc(var(--lead, 48px) - 12px); background: var(--aph-ink); }
.aph-note::before { content: ''; position: absolute; left: 2px; bottom: 0; width: 8px; height: 8px; border: 2px solid var(--aph-ink); background: var(--aph-coral); border-radius: 50%; }
.aph-note__name { padding: 4px 12px; background: var(--aph-paper); border: 2px solid var(--aph-ink); border-radius: 999px; }
.aph-note__sub { display: none; }
.aph-note--kalamos { left: 75%; top: 45%; --lead: 56px; }
.aph-note--kastos { left: 13%; top: 52%; --lead: 40px; }
.aph-note--harbour { left: 30%; top: 75%; --lead: 36px; }
.aph-view--shore .aph-note--kastos { display: none; }

/* ---------- Inner pages: a framed painted band, then the page ---------- */

.aph-bandwrap { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; padding: clamp(24px, 3vw, 40px) 0 0 !important; }
.aph-band { width: var(--aph-page); margin-inline: auto; }
.aph-band .aph-view { height: clamp(240px, 36svh, 400px); overflow: hidden; border: var(--aph-border); border-radius: 999px 999px var(--aph-radius) var(--aph-radius) / 220px 220px var(--aph-radius) var(--aph-radius); background: var(--aph-sun); }
.aph-band .aph-view__canvas { position: absolute; left: 50%; top: 50%; width: max(100%, calc(clamp(240px, 36svh, 400px) * 2400 / 1100)); height: auto; aspect-ratio: 2400 / 1100; translate: -50% -50%; }
.aph-band .aph-view__canvas img { object-position: center; filter: saturate(1.2) contrast(1.05); }
.aph-band .aph-note--kalamos { top: 46%; }
.aph-band .aph-view__caption { position: static; text-align: center; }
.aph-view--shore .aph-view__canvas { translate: -50% -58%; }
.aph-view__print { display: block; width: 100%; height: 100%; }
.aph-band .aph-view--print .aph-view__canvas { translate: -50% -57%; }
.aph-view--print .aph-note--kalamos, .aph-band .aph-view--print .aph-note--kalamos { left: 80%; top: 58%; }
.aph-view--print .aph-note--kastos { left: 11%; top: 53%; }
.aph-view--print .aph-note--harbour, .aph-band .aph-view--print .aph-note--harbour { left: 29%; top: 69%; }
.aph-page-hero { width: var(--aph-page) !important; margin-inline: auto; padding: clamp(36px, 5vw, 56px) 0 0 !important; gap: 16px; --padding-left: 0px; --padding-right: 0px; }
.aph-page-hero .elementor-widget-text-editor p { font-size: 1.2rem; line-height: 1.55; color: var(--aph-ink-2); max-width: 56ch; }
.aph-side-view .aph-view__canvas { aspect-ratio: 4 / 3; border: var(--aph-border); border-radius: var(--aph-radius); }

/* Older Elementor sections on inner pages fall into the same rhythm. */
.aph-retro .elementor > .e-con:not(.aph-hero, .aph-bandwrap, .aph-direct, .aph-cta, .aph-prefooter, .aph-section) { --content-width: var(--aph-wide); --padding-top: 0px; --padding-bottom: 0px; padding-top: clamp(40px, 6vw, 80px); }
.aph-retro .elementor-widget-spacer .elementor-spacer-inner { height: 20px !important; }
.aph-row { gap: clamp(32px, 6vw, 80px) !important; }
.aph-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 28px) !important; }
.aph-grid.aph-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aph-grid > .e-con { width: auto !important; }
.aph-card { box-shadow: none !important; background: var(--aph-paper) !important; border: var(--aph-border) !important; border-radius: 24px !important; padding: 26px 28px !important; transform: none !important; }
.aph-card .elementor-icon-box-wrapper { text-align: left; }
.aph-card .elementor-icon-box-title { font: 600 1.4rem/1.2 var(--aph-display) !important; color: var(--aph-ink) !important; margin-top: 0; }
.aph-card .elementor-icon-box-description { color: var(--aph-ink-2) !important; font-size: 1rem; }
.aph-grid > .aph-card:nth-child(3n + 2) { background: var(--aph-sand) !important; }

/* No glyph icons: lists are dashed-ruled entries. */
.aph-retro .elementor-icon-box-icon, .aph-retro .elementor-icon-list-icon { display: none !important; }
.aph-retro .elementor-icon-list-text { padding-left: 0 !important; color: var(--aph-ink); font-family: var(--aph-text) !important; }
.aph-retro .elementor-icon-list-items:not(.elementor-inline-items) > .elementor-icon-list-item { padding: 10px 0 9px !important; margin: 0 !important; border-bottom: 1.5px dashed var(--aph-line); }
.aph-map iframe { border-radius: var(--aph-radius); border: var(--aph-border); filter: saturate(.8); }
/* The live map ([aphrodite_map]): framed like the other cards, with the Google links in a bar underneath. */
.aph-livemap { margin: 0; overflow: hidden; border: var(--aph-border); border-radius: var(--aph-radius); background: var(--aph-glass); }
.aph-livemap__map { height: clamp(300px, 40vw, 420px); }
.aph-livemap__map .maplibregl-ctrl-group { border: 1.5px solid var(--aph-ink); border-radius: 12px; box-shadow: none; overflow: hidden; }
.aph-livemap__map .maplibregl-ctrl-attrib { font: .7rem/1.3 var(--aph-text); background: rgb(251 247 240 / .85); }
/* The pin: MapLibre positions the element with transform, so the teardrop turns on ::before, not on the element. */
.aph-livemap__pin { width: 34px; height: 34px; } /* the teardrop tip lands on the bottom edge, which MapLibre anchors on the spot */
.aph-livemap__pin::before { content: ''; position: absolute; left: 3px; top: 0; width: 28px; height: 28px; box-sizing: border-box; border-radius: 50% 50% 50% 0; rotate: -45deg; background: var(--aph-terra); border: 2.5px solid var(--aph-ink); box-shadow: -3px 3px 0 rgb(30 42 54 / .25); }
.aph-livemap__pin::after { content: ''; position: absolute; left: 11px; top: 8px; width: 12px; height: 12px; box-sizing: border-box; border-radius: 50%; background: var(--aph-sun); border: 1.5px solid var(--aph-ink); }
.aph-livemap__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 14px 18px; border-top: var(--aph-border); background: var(--aph-paper); }
.aph-livemap__name { margin-right: auto; font: 500 .92rem/1.3 var(--aph-text); color: var(--aph-muted); }
.aph-livemap__name strong { display: block; font: 600 1.1rem/1.2 var(--aph-display); color: var(--aph-ink); }
.aph-retro .aph-livemap__btn { padding: 10px 16px; border-radius: 999px; background: var(--aph-terra); border: 1.5px solid var(--aph-terra); color: #fff; font: 600 .9rem/1 var(--aph-text); text-decoration: none; }
.aph-retro .aph-livemap__btn:hover { background: var(--aph-terra-deep); border-color: var(--aph-terra-deep); color: #fff; }
.aph-retro .aph-livemap__btn--ghost { background: transparent; border-color: var(--aph-ink); color: var(--aph-ink); }
.aph-retro .aph-livemap__btn--ghost:hover { background: var(--aph-sand); border-color: var(--aph-ink); color: var(--aph-ink); }

/* Apartment page: the booking column is a card that stays in view. */
.aph-apt-body .aph-row > .aph-col:last-child { background: var(--aph-paper) !important; border: var(--aph-border) !important; border-radius: var(--aph-radius) !important; padding: clamp(20px, 2.6vw, 30px) !important; box-shadow: none !important; }
.aph-apt-body .aph-row > .aph-col:last-child { align-self: flex-start; }
@media (max-width: 1024px) { .aph-apt-body .aph-row { flex-direction: column !important; } .aph-apt-body .aph-row > .aph-col { width: 100% !important; } .aph-apt-body .aph-row > .aph-col:last-child { order: -1; align-self: stretch; } }

/* ---------- Pre-footer and footer: ink ---------- */

.aph-prefooter { margin-top: var(--aph-section); padding: clamp(56px, 7vw, 80px) var(--aph-gutter) 32px !important; background: var(--aph-ink) !important; color: #d3dae0 !important; }
.aph-direct + .aph-prefooter, .aph-cta + .aph-prefooter { margin-top: 0; }
.aph-prefooter > .e-con-inner { max-width: var(--aph-wide) !important; width: 100%; margin-inline: auto; padding: 0 !important; }
.aph-prefooter .aph-row { width: 100% !important; max-width: var(--aph-wide); margin-inline: auto; padding-inline: 0 !important; --padding-left: 0px; --padding-right: 0px; }
.aph-prefooter .elementor-heading-title { color: var(--aph-cream) !important; }
.aph-prefooter h3.elementor-heading-title { font-size: 1.7rem !important; }
.aph-prefooter h4.elementor-heading-title { color: var(--aph-sun) !important; }
.aph-prefooter p, .aph-prefooter .elementor-widget-text-editor, .aph-prefooter .elementor-icon-list-text { color: #d3dae0 !important; }
.aph-prefooter a:hover .elementor-icon-list-text { color: #fff !important; text-decoration: underline; }
.aph-prefooter .elementor-icon-list-items:not(.elementor-inline-items) > .elementor-icon-list-item { border-bottom: 0; padding: 5px 0 !important; }
.aph-retro .site-footer.dynamic-footer { background: var(--aph-ink); color: #aeb8c1; padding-block: 22px 32px; padding-inline: 0; max-width: none; border-top: 1px solid rgb(243 236 223 / 0.14); }
.aph-retro .site-footer .footer-inner { width: 100%; max-width: calc(var(--aph-wide) + 2 * var(--aph-gutter)); margin-inline: auto; padding-inline: var(--aph-gutter); box-sizing: border-box; gap: 16px; }
.aph-retro .site-footer, .aph-retro .site-footer :is(a, p, li) { font-family: var(--aph-text); }
.aph-retro .site-footer .footer-inner > * { max-width: 100%; }
.aph-retro .site-footer .footer-inner { justify-content: space-between; }
.aph-retro .site-footer .site-navigation { margin-right: auto; }
.aph-retro .site-footer .site-branding { display: none; } /* footer logo is switched off in the theme; its empty slot only adds a gap */
.aph-retro .site-footer .site-navigation ul.menu { justify-content: flex-start; }
.aph-retro .site-footer .site-navigation ul.menu { flex-wrap: wrap; gap: 4px 18px; }
.aph-retro .site-footer .site-navigation ul.menu li a { color: #d3dae0; padding: 8px 0; font: 500 .95rem/1.3 var(--aph-text); }
.aph-retro .site-footer .site-navigation ul.menu li a:hover { color: #fff; text-decoration: underline; }
.aph-retro .site-footer .copyright p { color: #aeb8c1; font: 400 .92rem/1.5 var(--aph-text); }
/*
 * The bottom of the footer in three tiers: legal links; the languages on their own quieter line; then a hairline with
 * the copyright on the left and the credits on the right (stacked on phones).
 */
.aph-retro .site-footer .footer-inner { flex-direction: column; align-items: stretch; gap: 0; }
.aph-retro .site-footer .site-navigation { width: 100%; margin: 0; }
.aph-retro .site-footer .site-navigation ul.menu::after { content: ''; flex-basis: 100%; order: 1; }
.aph-retro .site-footer .site-navigation ul.menu > li.lang-item { order: 2; }
.aph-retro .site-footer .site-navigation ul.menu > li.lang-item a { padding: 4px 0; color: #8d99a5; font-size: .84rem; font-weight: 400; }
.aph-retro .site-footer .site-navigation ul.menu > li.lang-item a:hover { color: #fff; }
.aph-retro .site-footer .site-navigation ul.menu > li.lang-item.current-lang a { color: #d3dae0; font-weight: 600; }
.aph-retro .site-footer .copyright { width: 100%; margin-top: 18px; padding-top: 18px; border-top: 1px solid rgb(243 236 223 / 0.12); }
.aph-retro .site-footer .copyright p { display: flex; flex: 1; width: 100%; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 32px; margin: 0; font-size: .86rem; }
.aph-retro .site-footer .copyright p br { display: none; }
.aph-retro .site-footer .aph-credit { color: #8d99a5; font-size: .82rem; }
.aph-retro .site-footer .aph-credit a { color: #c9d1d8; font-weight: 600; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .25s ease, color .2s; }
.aph-retro .site-footer .aph-credit a:hover, .aph-retro .site-footer .aph-credit a:focus-visible { color: #fff; background-size: 100% 1px; }
.aph-retro .site-footer .aph-credit__sep { margin-inline: 8px; opacity: .5; }
@media (prefers-reduced-motion: reduce) { .aph-retro .site-footer .aph-credit a { transition: none; } }

/* ---------- Book & confirmation pages ---------- */

.aph-book { width: var(--aph-page) !important; margin-inline: auto; --padding-left: 0px; --padding-right: 0px; padding-inline: 0 !important; }
.aph-book > .e-con-inner { padding-inline: 0 !important; max-width: none !important; }

/* Search results: each apartment is a site card, picture on the left behind an ink rule.
   Scoped to .jbi-results: the booking box reuses .jbi-room--compact for its rate list. */
.aph-retro .jbi-results { gap: 24px; }
.aph-retro .jbi-results .jbi-room { background: var(--aph-paper); border: var(--aph-border); border-radius: var(--aph-radius); overflow: hidden; box-shadow: none; }
.aph-retro .jbi-results .jbi-room__img { border-right: var(--aph-border); background: var(--aph-sun); }
.aph-retro .jbi-room__img img { filter: saturate(1.1); }
.aph-retro .jbi-room__title { font: 600 clamp(1.5rem, 2.2vw, 1.9rem)/1.1 var(--aph-display); letter-spacing: -0.01em; }
.aph-retro .jbi-room__title a { color: var(--aph-ink); text-decoration: none; }
.aph-retro .jbi-room__title a:hover { color: var(--aph-blue); }
.aph-retro .jbi-chips-list li { border: 1.5px solid var(--aph-line); background: transparent; border-radius: 999px; }
.aph-retro .jbi-rate + .jbi-rate { border-top: 1.5px dashed var(--aph-line); }
@media (max-width: 720px) { .aph-retro .jbi-results .jbi-room__img { border-right: 0; border-bottom: var(--aph-border); } }

/* ---------- Tablets and phones ---------- */

@media (max-width: 1024px) {
	.aph-objects, .aph-reviews__quotes, .aph-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.aph-hero__title .elementor-heading-title { font-size: clamp(2.5rem, 6.4vw, 3.4rem) !important; }
	.aph-pair { grid-template-columns: 1fr; }
	.aph-intro, .aph-area { flex-direction: column !important; }
	.aph-intro__text, .aph-intro__notes, .aph-area__text, .aph-area__route { flex-basis: auto; width: 100%; }
}
@media (max-width: 700px) {
	/* Phones: title, then the dates strip (booking stays one tap away), then the poster. */
	.aph-hero { grid-template-columns: 1fr; grid-template-areas: "copy" "dates" "art"; }
	.aph-hero__copy { padding-bottom: 24px !important; }
	.aph-hero__dates { margin-top: 0; }
	.aph-hero__art { width: min(100%, 440px); margin: 36px auto 0; }
}
@media (max-width: 767px) {
	body.aph-retro { font-size: 1.03rem; }
	.aph-retro .site-header .site-title a { --aph-badge: 38px; }
	.aph-retro .site-header .site-title a::before { font-size: 1.4rem; }
	.aph-hero__title .elementor-heading-title { font-size: clamp(2.5rem, 11vw, 3.4rem) !important; }
	.aph-stamp { left: -6px; top: 18px; width: 108px; height: 108px; }
	.aph-stamp__score { font-size: 2rem; }
	.aph-stamp__src { display: none; }
	.aph-apt > .elementor-element:not(:first-child) { padding-inline: 22px; }
	.aph-apt__foot { margin-inline: 22px; }
	.aph-objects { grid-template-columns: 1fr 1fr; gap: 28px 16px !important; }
	.aph-obj__title .elementor-heading-title { font-size: 1.2rem !important; }
	.aph-obj__text p { font-size: .95rem; }
	.aph-reviews__title { flex-direction: column; align-items: flex-start; gap: 20px; }
	.aph-reviews__score { width: 120px; height: 120px; }
	.aph-reviews__score span { font-size: 2.6rem; }
	.aph-reviews__quotes, .aph-grid, .aph-grid.aph-cols-2 { grid-template-columns: 1fr; }
	.aph-reviews__cats { grid-template-columns: 1fr; }
	.aph-buttons .elementor-widget-button, .aph-buttons .elementor-button { width: 100%; justify-content: center; }
	.aph-direct, .aph-cta { background-size: 300px auto !important; background-position: right -60px bottom -2px !important; }
	.aph-band .aph-view__canvas { translate: -56% -50%; }
	.aph-note--kastos { display: none; }
	.aph-note--kalamos { left: 56%; }
	.aph-retro .site-footer .footer-inner { flex-direction: column; align-items: flex-start; text-align: left; }
	.aph-retro .site-footer .site-navigation, .aph-retro .site-footer .copyright { width: 100%; text-align: left; }
	.aph-retro .site-footer .site-navigation ul.menu { justify-content: flex-start; }
	.aph-retro .site-footer .copyright p { text-align: left; }
	.aph-retro .site-header.dynamic-header { padding-block: 10px; }
	.aph-retro .site-header .site-title a { --aph-badge: 36px; gap: 4px; padding-left: calc(var(--aph-badge) + 10px); }
	.aph-retro .site-header .site-title a::before { font-size: 1.3rem; }
	.aph-retro .site-header .site-title a::after { font-size: .62rem; }
	/* Inner-page bands: a gentler arch, and the harbour note kept inside the frame. */
	.aph-band .aph-view { border-radius: 120px 120px 20px 20px / 60px 60px 20px 20px; }
	.aph-band .aph-note--harbour { left: 42%; }
	.aph-band .aph-view--print .aph-view__canvas { translate: -55% -57%; }
	.aph-band .aph-view--print .aph-note--harbour { left: 33%; }
	/* The route: the drawing alone, its labels as a short list underneath. */
	.aph-route { padding-bottom: 20px; }
	.aph-route__labels { position: static; inset: auto; margin: 18px 20px 0; display: grid; gap: 8px; }
	.aph-route__label, .aph-route__label--from, .aph-route__label--road, .aph-route__label--to, .aph-route__label--boat { position: static; translate: none; text-align: left; white-space: normal; font-size: .95rem; padding: 0; background: none; border: 0; }
	.aph-route__label strong { display: inline; font-size: 1.05rem; margin-right: 6px; }
	.aph-route.is-waiting .aph-route__labels li { opacity: 1; }
}
@media (max-width: 340px) {
	.aph-objects { grid-template-columns: 1fr; }
}

/* ---------- Checkout and booking pages ---------- */

/* Checkout: the page title reads "Complete your booking" (aphrodite-site.php) at a size that suits the form; the
   thank-you intro and the Book page's reassurance list wait for the finished booking. */
.jbi-is-checkout .elementor > .e-con:first-child :is(.elementor-widget-heading + .elementor-widget-text-editor, .elementor-widget-icon-list) { display: none; }
.jbi-is-checkout .elementor > .e-con:first-child .elementor-widget-heading .elementor-heading-title,
.jbi-is-booking .elementor > .e-con:first-child .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.2rem, 3.4vw, 3rem); }
/* "Paid at the property" notes (ΤΑΚΚ) read at body size, like the rest of the booking text. */
.aph-retro :is(.jbi-onsite-note, .jbi-rate__onsite) { font-size: .875rem; }

/* Booking page: the "Thank you for booking…" intro belongs to confirmed bookings only, not to one awaiting payment
   ("Payment was not completed") or a cancelled one. */
.jbi-is-booking .elementor > .e-con:first-child:has(.jbi-confirm:not(.jbi-confirm--confirmed)) .elementor-widget-heading + .elementor-widget-text-editor { display: none; }
/* Payment buttons are booking actions, terracotta like Reserve: "Complete your payment" in the resume bar, "Pay balance"
   and a payment request's "Pay €24" on the booking page. */
.aph-retro :is(.jbi-resume .jbi-btn, .jbi-btn[data-act="pay"], .jbi-btn[data-request]) { background: var(--aph-terra); border-color: var(--aph-terra); color: #fff; }
.aph-retro :is(.jbi-resume .jbi-btn, .jbi-btn[data-act="pay"], .jbi-btn[data-request]):hover:not(:disabled) { background: var(--aph-terra-deep); border-color: var(--aph-terra-deep); color: #fff; }
/* Checkout opened inside the search results: the results' own search bar steps aside until Back. */
.jbi-is-checkout .jbi-w-results > .jbi-search { display: none; }
/* Book page on a phone: once results are shown, the title alone leads into them; the intro and the reassurance list
   would push the first apartment a screen and a half down. */
@media (max-width: 767px) {
	body:has(.jbi-w-results .jbi-results) .elementor > .e-con:first-child :is(.elementor-widget-text-editor, .elementor-widget-icon-list) { display: none; }
}

/* ---------- Blog: the posts page and single posts (aphrodite/blog.php, templates/) ---------- */

.aph-retro main.site-main.aph-blog { width: var(--aph-page); max-width: var(--aph-wide); margin-inline: auto; padding: 0 0 var(--aph-section); } /* past Hello's 1140px .site-main */
.aph-blog__band { width: 100%; padding-top: clamp(24px, 3vw, 40px); }
.aph-eyebrow { margin: 0 0 14px; font: 700 .82rem/1.2 var(--aph-text); letter-spacing: .14em; text-transform: uppercase; color: var(--aph-blue); }
.aph-eyebrow a { color: inherit; text-decoration: none; }
.aph-eyebrow a:hover { color: var(--aph-terra); }
.aph-blog__head { padding: clamp(40px, 6vw, 80px) 0 clamp(32px, 4vw, 56px); }
.aph-blog__head h1 { margin: 0; }
.aph-blog__head h1 em { display: block; }
.aph-blog__intro { max-width: 52ch; margin: 32px 0 0; font-size: 1.15rem; color: var(--aph-muted); }
.aph-blog__empty { padding: 32px; border: 2px dashed var(--aph-line); border-radius: var(--aph-radius); text-align: center; color: var(--aph-muted); }

.aph-blog__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 32px; }
.aph-pcard { display: flex; flex-direction: column; overflow: hidden; background: var(--aph-paper); border: var(--aph-border); border-radius: var(--aph-radius); transition: translate .25s ease, box-shadow .25s ease; }
.aph-pcard:hover { translate: 0 -4px; box-shadow: 6px 6px 0 var(--aph-ink); }
.aph-pcard__art { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-bottom: var(--aph-border); background: var(--aph-sun); }
.aph-post-art__img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(1.2) contrast(1.05); }
.aph-post-art__img.is-mirrored { scale: -1 1; }
.aph-pcard__body { display: flex; flex-direction: column; gap: 10px; padding: 24px 26px 26px; flex: 1; }
.aph-pcard__meta { margin: 0; font: 600 .82rem/1.3 var(--aph-text); letter-spacing: .04em; color: var(--aph-muted); }
.aph-retro .aph-pcard__title { margin: 0; font-size: 1.55rem; line-height: 1.12; }
.aph-pcard__title a { color: var(--aph-ink); text-decoration: none; }
.aph-pcard__title a:hover { color: var(--aph-blue); }
.aph-pcard__excerpt { margin: 0; color: var(--aph-ink-2); }
.aph-pcard__more { margin-top: auto; padding-top: 6px; font: 700 .95rem/1 var(--aph-text); color: var(--aph-terra); text-decoration: none; }
.aph-pcard__more:hover { color: var(--aph-terra-deep); }
/* The newest post spans the row on wide screens: picture left, text right. */
@media (min-width: 900px) {
	.aph-pcard--lead { grid-column: 1 / -1; flex-direction: row; }
	.aph-pcard--lead .aph-pcard__art { flex: 0 0 55%; aspect-ratio: auto; min-height: 340px; border-bottom: 0; border-right: var(--aph-border); }
	.aph-pcard--lead .aph-pcard__body { justify-content: center; padding: 40px; }
	.aph-retro .aph-pcard--lead .aph-pcard__title { font-size: clamp(2rem, 3vw, 2.6rem); }
}
.aph-blog__pages { margin-top: 48px; }
.aph-blog__pages .nav-links { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.aph-blog__pages .page-numbers { min-width: 44px; padding: 11px 16px; border: 1.5px solid var(--aph-ink); border-radius: 999px; text-align: center; font: 600 .95rem/1 var(--aph-text); color: var(--aph-ink); text-decoration: none; }
.aph-blog__pages .page-numbers.current { background: var(--aph-ink); color: var(--aph-paper); }

.aph-post__head { max-width: 860px; margin-inline: auto; padding: clamp(40px, 6vw, 72px) 0 32px; }
.aph-retro .aph-post__head h1 { margin: 0 0 18px; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.02; }
.aph-post__art { max-width: 1040px; margin: 0 auto clamp(40px, 5vw, 64px); aspect-ratio: 2 / 1; overflow: hidden; border: var(--aph-border); border-radius: 999px 999px var(--aph-radius) var(--aph-radius) / 240px 240px var(--aph-radius) var(--aph-radius); background: var(--aph-sun); }
.aph-prose { max-width: var(--aph-measure); margin-inline: auto; font-size: 1.12rem; line-height: 1.7; color: var(--aph-ink-2); }
.aph-prose > * + * { margin-top: 1.1em; }
.aph-prose p { margin-bottom: 0; }
.aph-retro .aph-prose :is(h2, h3) { margin: 1.8em 0 .5em; color: var(--aph-ink); }
.aph-retro .aph-prose h2 { font-size: clamp(1.7rem, 2.6vw, 2.1rem); line-height: 1.15; }
.aph-retro .aph-prose h3 { font-size: 1.35rem; line-height: 1.2; }
.aph-prose a { color: var(--aph-blue); text-decoration: underline; text-underline-offset: 3px; }
.aph-prose :is(ul, ol) { padding-left: 1.3em; }
.aph-prose li + li { margin-top: .4em; }
.aph-prose blockquote { margin-inline: 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--aph-coral); font: italic 500 1.35rem/1.4 var(--aph-display); color: var(--aph-ink); }
.aph-prose img { max-width: 100%; height: auto; border: var(--aph-border); border-radius: 20px; }
.aph-post__cta { max-width: 860px; margin: clamp(56px, 7vw, 88px) auto 0; padding: clamp(32px, 4vw, 48px); border-radius: var(--aph-radius); border: var(--aph-border); background: var(--aph-terra) var(--aph-halfsun) right -40px bottom -2px / min(320px, 60%) auto no-repeat; color: #fbe9df; }
.aph-retro .aph-post__cta h2 { margin: 0 0 10px; color: #fff; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.aph-post__cta p { max-width: 44ch; margin: 0 0 22px; }
.aph-retro .aph-post__btn { display: inline-block; padding: 14px 24px; border-radius: 999px; background: var(--aph-paper); color: var(--aph-ink); font: 700 1rem/1 var(--aph-text); text-decoration: none; }
.aph-retro .aph-post__btn:hover { background: #fff; color: var(--aph-ink); }
.aph-post__more { margin-top: clamp(64px, 8vw, 104px); }
.aph-retro .aph-post__more > h2 { margin: 0 0 28px; font-size: clamp(1.8rem, 3vw, 2.4rem); }
@media (max-width: 767px) {
	.aph-post__art { border-radius: 120px 120px 20px 20px / 60px 60px 20px 20px; aspect-ratio: 4 / 3; }
	.aph-prose { font-size: 1.05rem; }
}
@media (prefers-reduced-motion: reduce) {
	.aph-pcard, .aph-pcard:hover { transition: none; translate: none; }
}

/* JetBookIn's terms/privacy sheet over the checkout: its "Back to booking" button as one of our outlined pills. */
.aph-retro .jbi-page-sheet__close { padding: 0 18px; border: 1.5px solid var(--aph-ink); border-radius: 999px; background: var(--aph-paper); color: var(--aph-ink); font: 700 .9rem/1 var(--aph-text); cursor: pointer; }
.aph-retro .jbi-page-sheet__close:hover { background: var(--aph-ink); color: var(--aph-cream); }
.aph-retro .jbi-page-sheet__close:focus:not(:focus-visible) { outline: none; }
.aph-retro .jbi-page-sheet__close:focus-visible { outline: 2px solid var(--aph-blue); outline-offset: 3px; }
/* Long words (German, Finnish, Danish compounds) break with a hyphen instead of running off a phone screen. */
.aph-retro :is(h1, h2, h3, .elementor-heading-title) { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }

.aph-retro .aph-blog__head .aph-blog__intro { margin-top: 28px; } /* clear of the heading's descenders (the theme zeroes p margins) */
/* Page not found: the blog's band and heading, then the ways back as a row of outlined pills (Book in terracotta). */
.aph-404__ways { display: flex; flex-wrap: wrap; gap: 12px; }
.aph-retro a.aph-404__way { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border: var(--aph-border); border-radius: 999px; background: var(--aph-paper); color: var(--aph-ink); font: 700 1rem/1 var(--aph-text); text-decoration: none; transition: translate .2s ease, box-shadow .2s ease, background-color .2s; }
.aph-retro a.aph-404__way:hover { translate: 0 -2px; box-shadow: 4px 4px 0 var(--aph-ink); color: var(--aph-ink); }
.aph-retro a.aph-404__way.is-book { background: var(--aph-terra); border-color: var(--aph-terra); color: #fff; }
.aph-retro a.aph-404__way.is-book:hover { background: var(--aph-terra-deep); box-shadow: 4px 4px 0 var(--aph-ink); color: #fff; }
.aph-404__way span { transition: translate .2s ease; }
.aph-404__way:hover span { translate: 3px 0; }
@media (max-width: 600px) { .aph-404__ways { flex-direction: column; } .aph-404__way { justify-content: space-between; } }
@media (prefers-reduced-motion: reduce) { .aph-404__way, .aph-404__way span { transition: none; } }
