/* DN Tonsorium: animations & διαδραστικά (αντικαθιστούν το framer-motion).
   Το style.css είναι το Tailwind build του σχεδίου· εδώ μόνο ό,τι έκανε η JS. */

:root { --ease: cubic-bezier(.22, 1, .36, 1); --ease-io: cubic-bezier(.76, 0, .24, 1); }

/* τα --y/--d δεν κληρονομούνται από γονείς */
[data-rv], [data-clip], [data-hin], [data-hin-line], [data-hin-fade], [data-mi], [data-mfade] { --d: 0s; }

/* ---------- Preloader ---------- */
.preloader-root { transition: opacity .7s var(--ease); }
.preloader-root.is-done { opacity: 0; pointer-events: none; }
html:not([data-intro=play]) .preloader-root { display: none !important; }
.preloader-root > div > div:first-child { animation: dnt-pre-mark 1s var(--ease) both; }
.preloader-root.is-done > div > div:first-child { transform: scale(1.04); transition: transform .7s var(--ease); }
[data-pre-bar] { width: 0; animation: dnt-pre-bar 1.4s cubic-bezier(.65, 0, .35, 1) .15s forwards; }
@keyframes dnt-pre-mark { from { opacity: 0; transform: scale(.96); filter: blur(8px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes dnt-pre-bar { to { width: 100%; } }

/* ---------- Είσοδος hero (μόλις φορτώσει / τελειώσει το preloader) ---------- */
.js [data-hin] { opacity: 0; transform: translateY(var(--y, 14px)); }
.js [data-hin-line] { transform: translateY(110%); }
.js [data-hin-line=rot] { transform: translateY(110%) rotate(3deg); }
.js [data-hin-zoom] { transform: scale(1.15); }
.js [data-hin-fade] { opacity: 0; }
.js .is-in[data-hin-fade] { opacity: 1; transition: opacity 1s var(--d, 0s); }
.js .is-in[data-hin] { opacity: 1; transform: none; transition: opacity .8s var(--ease) var(--d, 0s), transform .8s var(--ease) var(--d, 0s); }
.js .is-in[data-hin-line] { transform: none; transition: transform 1.2s var(--ease) var(--d, 0s); }
.js .is-in[data-hin-zoom] { transform: none; transition: transform 1.8s var(--ease); }

/* ---------- Reveal κατά το scroll ---------- */
.js [data-rv] { opacity: 0; transform: translateY(var(--y, 28px)); }
.js [data-rv].is-in { opacity: 1; transform: none; transition: opacity .9s var(--ease) var(--d, 0s), transform .9s var(--ease) var(--d, 0s); }
.js [data-line] { transform: translateY(105%); }
.js [data-line].is-in { transform: none; transition: transform 1.1s var(--ease); }
.js [data-clip] { clip-path: inset(100% 0 0 0); }
.js [data-clip] > div { transform: scale(1.25); }
.js [data-clip].is-in { clip-path: inset(0 0 0 0); transition: clip-path 1.2s var(--ease) var(--d, 0s); }
.js [data-clip].is-in > div { transform: none; transition: transform 1.6s var(--ease) var(--d, 0s); }
.js [data-rv-big] { opacity: 0; transform: translateY(35%); }
.js [data-rv-big].is-in { opacity: .12; transform: none; transition: opacity 1.4s var(--ease), transform 1.4s var(--ease); }

/* ---------- Quote band (τιμές από τη JS κατά το scroll) ---------- */
.js [data-word] { opacity: 0; filter: blur(8px); transform: translateY(24px); will-change: opacity, transform, filter; }
.js [data-qclip] { clip-path: inset(10% 0 10% 0); }
.js [data-qscale] { transform: scale(1.18); }
.js [data-qdim], .js [data-qsig] { opacity: 0; }

/* ---------- «Η τέχνη μας»: οριζόντιο scroll μόνο σε μεγάλη οθόνη ---------- */
.intro-d { display: none; }
@media (min-width: 1024px) and (min-height: 600px) {
  .intro-d { display: block; }
  .intro-m { display: none; }
}
[data-htrack] { will-change: transform; }

/* ---------- Header ---------- */
[data-header] [data-logo] { transition: height .5s, background .5s; }
[data-m-open], [data-m-close], [data-m-l1], [data-m-l2] { transition: transform .4s var(--ease); }
[data-m-close] { transform: translateY(100%); }
[data-m-l1] { transform: translateY(-3px); }
[data-m-l2] { transform: translateY(3px); }
.menu-open [data-m-open] { transform: translateY(-100%); }
.menu-open [data-m-close] { transform: none; }
.menu-open [data-m-l1] { transform: rotate(45deg); }
.menu-open [data-m-l2] { transform: rotate(-45deg); }

/* ---------- Πλήρες μενού ---------- */
#site-menu { clip-path: circle(0% at calc(100% - 3rem) 2.6rem); transition: clip-path .6s var(--ease-io); visibility: hidden; }
#site-menu.is-open { clip-path: circle(150% at calc(100% - 3rem) 2.6rem); transition-duration: .9s; visibility: visible; }
#site-menu.is-closing { visibility: visible; }
#site-menu [data-mi] { transform: translateY(100%); }
#site-menu.is-open [data-mi] { transform: none; transition: transform .8s var(--ease) var(--d); }
#site-menu [data-mfade] { opacity: 0; transform: translateY(var(--y, 20px)); }
#site-menu.is-open [data-mfade] { opacity: 1; transform: none; transition: opacity .9s var(--ease) var(--d), transform .9s var(--ease) var(--d); }
#site-menu [data-mimg] img { animation: dnt-mimg .7s var(--ease) both; }
@keyframes dnt-mimg { from { opacity: 0; transform: scale(1.12); } }

/* ---------- Pill θέματος / κατηγοριών ---------- */
.dnt-pill { position: absolute; inset: 0; border-radius: 9999px; background: linear-gradient(135deg, var(--btn-a), var(--btn-b)); transition: transform .35s var(--ease), width .35s var(--ease); }

/* ---------- Popup κράτησης ---------- */
.bk-backdrop { animation: dnt-fade .35s both; }
.bk-panel { animation: dnt-up .6s var(--ease) both; }
.bk-closing .bk-backdrop { animation: dnt-fade-out .35s both; }
.bk-closing .bk-panel { animation: dnt-down .6s var(--ease) both; }
.bk-step-in { animation: dnt-step-in .4s var(--ease) both; }
.bk-item { animation: dnt-item .4s var(--ease) both; }
.bk-slot { animation: dnt-slot .3s var(--ease) both; }
.bk-fadeup { animation: dnt-item .5s var(--ease) both; }
.bk-check circle, .bk-check path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: dnt-draw .8s var(--ease) forwards; }
.bk-check path { animation-duration: .5s; animation-delay: .7s; }
@keyframes dnt-fade { from { opacity: 0; } }
@keyframes dnt-fade-out { to { opacity: 0; } }
@keyframes dnt-up { from { transform: translateY(100%); opacity: .6; } }
@keyframes dnt-down { to { transform: translateY(100%); opacity: .6; } }
@keyframes dnt-step-in { from { opacity: 0; transform: translateX(calc(var(--dir, 1) * 40px)); } }
@keyframes dnt-item { from { opacity: 0; transform: translateY(14px); } }
@keyframes dnt-slot { from { opacity: 0; transform: scale(.94); } }
@keyframes dnt-draw { to { stroke-dashoffset: 0; } }

/* ---------- Κέρσορας (μόνο ποντίκι) ---------- */
.dnt-cursor { position: fixed; left: 0; top: 0; z-index: 120; pointer-events: none; border-radius: 9999px; }
.dnt-cursor-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: #c79d6e; }
.dnt-cursor-ring { width: 40px; height: 40px; margin: -20px 0 0 -20px; border: 1px solid #c79d6e; opacity: .45; transition: opacity .25s, scale .25s; }
.dnt-cursor-ring.is-hover { scale: 1.9; opacity: .9; }
.dnt-cursor-ring.is-down { scale: .8; }

/* ---------- Χωρίς κίνηση ---------- */
@media (prefers-reduced-motion: reduce) {
  .js [data-rv], .js [data-hin], .js [data-hin-fade], .js [data-word], .js [data-qsig] { opacity: 1 !important; transform: none !important; filter: none !important; }
  .js [data-line], .js [data-hin-line], .js [data-hin-zoom], .js [data-clip] > div, .js [data-qscale] { transform: none !important; }
  .js [data-clip], .js [data-qclip] { clip-path: none !important; }
  .js [data-qdim] { opacity: .6 !important; }
  .js [data-rv-big] { opacity: .12 !important; transform: none !important; }
}

/* ---------- Εσωτερικές σελίδες WordPress ---------- */
.h-\[46svh\] { height: 46svh; }
.min-h-\[380px\] { min-height: 380px; }
.dnt-prose { color: rgb(var(--fg) / .82); line-height: 1.75; }
.dnt-prose > * + * { margin-top: 1.1em; }
.dnt-prose h2, .dnt-prose h3, .dnt-prose h4 { color: rgb(var(--fg)); font-weight: 300; letter-spacing: -.02em; line-height: 1.2; margin-top: 2.2em; }
.dnt-prose h2 { font-size: 2rem; } .dnt-prose h3 { font-size: 1.5rem; } .dnt-prose h4 { font-size: 1.2rem; }
.dnt-prose strong { color: rgb(var(--fg)); font-weight: 600; }
.dnt-prose a { color: rgb(var(--accent)); text-decoration: underline; text-underline-offset: 4px; }
.dnt-prose ul, .dnt-prose ol { padding-left: 1.3em; list-style: disc; } .dnt-prose ol { list-style: decimal; }
.dnt-prose li + li { margin-top: .4em; } .dnt-prose li > p { margin: 0; }
.dnt-prose hr { border: 0; border-top: 1px solid rgb(var(--fg) / .12); margin: 2.4em 0; }
.dnt-form .wpcf7 p { margin: 0 0 1rem; }
.dnt-form .wpcf7 h4, .dnt-form .wpcf7 fieldset { display: none; }
.dnt-form input:not([type=submit]):not([type=checkbox]), .dnt-form textarea {
  width: 100%; border-radius: .75rem; border: 1px solid rgb(var(--fg) / .12); background: rgb(var(--bg));
  padding: .9rem 1rem; font-size: 1rem; color: rgb(var(--fg)); outline: none; transition: border-color .3s; }
.dnt-form textarea { min-height: 9rem; }
.dnt-form input:focus, .dnt-form textarea:focus { border-color: rgb(var(--accent)); }
.dnt-form input[type=submit] { cursor: pointer; border: 0; border-radius: 9999px; padding: .95rem 1.6rem; font-size: .74rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em; color: var(--btn-text); background: linear-gradient(135deg, var(--btn-a), var(--btn-b)); }
.dnt-form .wpcf7-not-valid-tip { color: #f87171; font-size: .75rem; margin-top: .25rem; }
.dnt-form .wpcf7-response-output { margin: 1rem 0 0 !important; border-radius: .75rem; padding: .75rem 1rem !important; font-size: .9rem; }
.max-w-3xl { max-width: 48rem; }
@media (min-width: 768px) { .md\:pb-28 { padding-bottom: 7rem; } .md\:py-20 { padding-top: 5rem; padding-bottom: 5rem; } }
