/* Home page v4 (owner 21/10/2026: «σαν τα mockups, φτιάξε καλύτερα τα πάντα και τα banners»).
   Navy titles, soft logo tones for surfaces, one accent (turquoise) for buttons, pink only for offers.
   Radius: banners and hero 24px, cards 16px, circles 50%, buttons and chips full pill. Banners (.pbanner) live in pages.css. */
:root { --t-pink: #fde7ef; --t-yellow: #fff3cf; --t-green: #e3f5e5; --t-cyan: #dff4f7; --t-purple: #ece6f6; --t-red: #fde4e1;
        --offer: #e0245e; --navy: #17284a; }
.pk h2 { font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; letter-spacing: -.01em; color: var(--navy); }

/* ---------- hero: the photo on the right fading into a light background, words left, a yellow sticker ---------- */
.hero4 { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(100deg, #f3f9fb 0%, #fdf6ee 100%); }
.hero4-bg { position: absolute; z-index: -1; top: 0; right: 0; height: 100%; width: 100%; object-fit: cover; object-position: 78% 40%; }
.hero4.has-photo::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, .95) 0%, rgba(255, 255, 255, .82) 38%, rgba(255, 255, 255, 0) 66%); }
.hero4-in { position: relative; z-index: 1; min-height: 380px; display: flex; align-items: center; padding-block: 28px 44px; }
.hero4-copy { max-width: 62%; display: grid; justify-items: start; gap: 12px; }
.hero4 h1 { font-size: clamp(30px, 8.4vw, 60px); font-weight: 800; line-height: 1.04; letter-spacing: -.025em; color: var(--navy); }
.hero4 .lead { font-size: clamp(14px, 1.5vw, 19px); line-height: 1.45; color: #34425a; max-width: 40ch; }
.btn-main { display: inline-flex; align-items: center; gap: 10px; background: var(--accent); color: #fff; font-weight: 800; font-size: 15px;
  border-radius: 999px; padding: 12px 20px; box-shadow: 0 8px 20px rgba(14, 116, 144, .25); transition: background .15s ease, transform .15s ease; }
.btn-main .cico, .sec-head a .cico, .budget > a > .cico { width: 16px; height: 16px; }
.btn-main:hover { background: var(--accent-ink); }
.btn-main:active { transform: scale(.98); }
.sticker { position: absolute; right: 14px; top: 16px; width: 104px; height: 104px; border-radius: 50%; background: #ffd23f; color: var(--navy);
  display: grid; place-items: center; text-align: center; padding: 14px; font-size: 13px; font-weight: 800; line-height: 1.15;
  transform: rotate(-12deg); box-shadow: 0 8px 22px rgba(160, 110, 0, .25); }
@media (min-width: 900px) {
  .hero4-bg { width: 66%; object-position: 50% 40%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%); mask-image: linear-gradient(90deg, transparent 0, #000 30%); }
  .hero4.has-photo::after { display: none; }
  .hero4-in { min-height: 540px; padding-block: 48px 72px; }
  .hero4-copy { max-width: 46%; gap: 16px; }
  .btn-main { font-size: 16px; padding: 14px 24px; }
  .sticker { right: 4%; top: 40px; width: 138px; height: 138px; font-size: 16px; padding: 18px; }
}

/* ---------- the gift finder (a white card over the bottom of the hero) and the trust strip ---------- */
.under-hero { position: relative; z-index: 2; margin-top: -26px; }
.finder { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; background: #fff; border-radius: 20px; padding: 14px 16px;
  box-shadow: 0 12px 30px rgba(23, 40, 74, .12); font-size: 16px; font-weight: 700; color: var(--navy); }
.finder select { font: 700 15px var(--font); color: var(--accent-ink); background: var(--tint); border: 0; border-radius: 999px; padding: 9px 12px; max-width: 100%; }
.finder select:focus-visible { outline: 2px solid var(--accent); }
.finder button { margin-left: auto; font: 800 15px var(--font); background: var(--accent); color: #fff; border: 0; border-radius: 999px;
  padding: 10px 18px; cursor: pointer; white-space: nowrap; }
.finder button:hover { background: var(--accent-ink); }
@media (min-width: 900px) { .finder { max-width: 860px; padding: 16px 22px; font-size: 18px; } }
.trust { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.trust > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tico { flex: none; width: 44px; height: 44px; border-radius: 50%; background: #e3f3f8; color: var(--accent-ink); display: grid; place-items: center; }
.tico .cico { width: 24px; height: 24px; }
.trust b, .budget b { display: block; font-size: 14px; color: var(--navy); line-height: 1.25; }
.trust small, .budget small { display: block; font-size: 12.5px; color: var(--muted); line-height: 1.3; }
@media (max-width: 899px) {
  .trust { gap: 6px; }
  .trust > div { flex-direction: column; text-align: center; gap: 6px; }
  .tico { width: 38px; height: 38px; }
  .trust b { font-size: 12.5px; }
  .trust small { display: none; }
}

/* ---------- sections ---------- */
.circles-sec, .banners-sec, .popular, .duo-sec, .themes-sec, .budget-sec { padding-block: 16px; }
@media (min-width: 900px) { .circles-sec, .banners-sec, .popular, .duo-sec, .themes-sec, .budget-sec { padding-block: 26px; } }
.circles-sec { padding-top: 24px; }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.sec-head a { flex: none; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 14px; color: var(--accent-ink); }
.sec-sub { margin-top: 4px; color: var(--muted); font-size: 14px; }
.themes-sec h2 { margin-bottom: 14px; }

/* ---------- category circles: illustrated objects on pastel circles, 5 per row on phones, 10 on computers ---------- */
.circles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px 8px; }
@media (min-width: 900px) { .circles { grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 16px; } }
.circle { display: grid; justify-items: center; align-content: start; gap: 7px; text-align: center; min-width: 0; }
.cimg { width: 100%; max-width: 112px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; overflow: visible; transition: transform .2s ease; }
.cimg img { width: 92%; height: 92%; object-fit: contain; mix-blend-mode: multiply; }
.cimg .cico { width: 48%; height: 48%; }
.cimg.t-yellow { color: #a16207; } .cimg.t-cyan { color: #0e7490; } .cimg.t-pink { color: #be185d; }
.cimg.t-green { color: #15803d; } .cimg.t-purple { color: #6d28d9; } .cimg.t-red { color: #b91c1c; }
.cname { font-size: 12.5px; font-weight: 800; color: var(--navy); line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 900px) { .cname { font-size: 13.5px; } }
@media (prefers-reduced-motion: no-preference) { .circle:hover .cimg, .theme:hover .timg { transform: translateY(-3px) scale(1.03); } }

/* ---------- banners: two per row on computers ---------- */
.banners { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
@media (min-width: 900px) { .banners { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (prefers-reduced-motion: no-preference) { a.pbanner { transition: transform .2s ease, box-shadow .2s ease; } a.pbanner:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(23, 40, 74, .12); } }

/* ---------- compare prices: white cards with a border ---------- */
.popular .hrow { margin-top: 0; }
.popular .hcard { background: #fff; border: 1px solid var(--rule); border-radius: 16px; padding: 10px; }
.popular .hpic { border: 0; }

/* ---------- «Δώρα για κάθε ηλικία» + «Προσφορές» ---------- */
.duo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
@media (min-width: 900px) { .duo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
.age-chips { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.age-chips a { background: #fff; color: var(--navy); border-radius: 999px; padding: 7px 13px; font-weight: 800; font-size: 14px; white-space: nowrap;
  box-shadow: 0 2px 8px rgba(23, 40, 74, .08); transition: background .15s ease, color .15s ease; }
.age-chips a:hover { background: var(--accent); color: #fff; }
.ages-card .pb-text { max-width: 64%; }
.offers-card h2 { color: var(--offer); }
.offer-cta { background: var(--offer); color: #fff; }
.pct { position: absolute; z-index: 1; right: 40%; top: 14px; width: 54px; height: 54px; border-radius: 50%; background: var(--offer); color: #fff;
  display: grid; place-items: center; font-size: 26px; font-weight: 800; transform: rotate(-10deg); box-shadow: 0 6px 16px rgba(224, 36, 94, .35); }
@media (max-width: 899px) { .pct { right: 8px; top: 10px; width: 44px; height: 44px; font-size: 21px; } }

/* ---------- themes: rounded tiles with a product of each ---------- */
.themes { display: grid; grid-auto-flow: column; grid-auto-columns: 86px; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; padding-bottom: 4px; }
.themes::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .themes { grid-auto-flow: row; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 14px; overflow: visible; } }
.theme { scroll-snap-align: start; display: grid; justify-items: center; gap: 7px; text-align: center; min-width: 0; }
.timg { width: 100%; aspect-ratio: 1; border-radius: 18px; display: grid; place-items: center; overflow: hidden; transition: transform .2s ease; }
.timg img { width: 78%; height: 78%; object-fit: contain; background: #fff; border-radius: 12px; padding: 7%; box-shadow: 0 6px 16px rgba(30, 60, 70, .10); }  /* a white card: white toys stay visible */

/* ---------- budgets ---------- */
.budget { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@media (min-width: 900px) { .budget { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
.budget > a { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--rule); border-radius: 18px; padding: 12px 16px;
  transition: border-color .15s ease; }
.budget > a:hover { border-color: var(--accent); }
.budget > a > span:nth-child(2) { flex: 1; min-width: 0; }
.budget .tico { background: var(--t-pink); color: var(--offer); }
.budget > a > .cico { color: var(--accent-ink); }

/* ---------- phones: smaller hero, everything a little tighter ---------- */
@media (max-width: 899px) {
  .hero4-copy { max-width: 66%; gap: 10px; }
  .hero4 .lead { font-size: 14px; }
  .btn-main { font-size: 14px; padding: 11px 16px; }
  .finder { font-size: 15px; padding: 12px; gap: 8px; }
  .finder select { font-size: 14px; padding: 8px 10px; }
  .finder button { padding: 9px 16px; font-size: 14px; }
}

/* the handwritten line over the photo (owner 21/10: «στο mockup είναι καλύτερο από τον κύκλο»): Mansalva (OFL), cut to
   the phrase's letters (7 KB), white with yellow brush strokes, where the photo is calm; not on phones */
@font-face { font-family: "PK Hand"; src: url("fonts/mansalva-sticker.woff2") format("woff2"); font-display: swap; }
.hand { position: absolute; z-index: 2; right: 1.5%; top: 52px; width: 320px; height: 230px; transform: rotate(-7deg); pointer-events: none;
  color: #fff; font-family: "PK Hand", "Comic Sans MS", cursive; font-size: 40px; line-height: 1.12; text-shadow: 0 2px 14px rgba(23, 40, 74, .38); }
.hand svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.hand span { position: relative; display: block; padding: 16px 0 0 58px; }
/* phones (owner 21/10: «το mockup το κατάφερε μαζί»): words and photo together, the child close on the right (its own
   photo, hero-m), the motto in a yellow bubble at the top right as in the mock-up */
@media (max-width: 899px) {
  .hero4.has-photo .hero4-bg { object-position: 60% 0%; }
  .hero4.has-photo::after { background: linear-gradient(90deg, rgba(255, 255, 255, .94) 0%, rgba(255, 255, 255, .82) 44%, rgba(255, 255, 255, 0) 68%); }
  .hero4-copy { max-width: 62%; }
  .hero4.has-photo .lead-more { display: none; }
  .hand { top: 8px; right: 6px; width: 118px; height: 110px; padding: 10px; display: grid; place-items: center; text-align: center;
    background: #ffd23f; color: var(--navy); text-shadow: none; font-size: 14px; line-height: 1.12; transform: rotate(-9deg);
    border-radius: 48% 52% 46% 54% / 56% 44% 56% 44%; box-shadow: 0 8px 20px rgba(160, 110, 0, .25); }
  .hand svg { display: none; }
  .hand span { padding: 0; }
  .hero4.has-photo .lead { max-width: 88%; }
}
/* a hero's close portrait fills its tile (owner 21/10, like the mock-up) */
.timg.has-portrait img { width: 84%; height: 84%; object-fit: contain; padding: 0; background: none; box-shadow: none; border-radius: 0; }  /* owner 22/10: on the pastel tile, not filling it */
