
@charset "utf-8";

@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Inter:wght@300;400;500;600&display=swap");

@layer properties {
  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {
  *, ::before, ::after, ::backdrop { --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; --tw-skew-x: initial; --tw-skew-y: initial; --tw-space-y-reverse: 0; --tw-border-style: solid; --tw-gradient-position: initial; --tw-gradient-from: #0000; --tw-gradient-via: #0000; --tw-gradient-to: #0000; --tw-gradient-stops: initial; --tw-gradient-via-stops: initial; --tw-gradient-from-position: 0%; --tw-gradient-via-position: 50%; --tw-gradient-to-position: 100%; --tw-leading: initial; --tw-font-weight: initial; --tw-tracking: initial; --tw-shadow: 0 0 #0000; --tw-shadow-color: initial; --tw-shadow-alpha: 100%; --tw-inset-shadow: 0 0 #0000; --tw-inset-shadow-color: initial; --tw-inset-shadow-alpha: 100%; --tw-ring-color: initial; --tw-ring-shadow: 0 0 #0000; --tw-inset-ring-color: initial; --tw-inset-ring-shadow: 0 0 #0000; --tw-ring-inset: initial; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-blur: initial; --tw-brightness: initial; --tw-contrast: initial; --tw-grayscale: initial; --tw-hue-rotate: initial; --tw-invert: initial; --tw-opacity: initial; --tw-saturate: initial; --tw-sepia: initial; --tw-drop-shadow: initial; --tw-drop-shadow-color: initial; --tw-drop-shadow-alpha: 100%; --tw-drop-shadow-size: initial; --tw-duration: initial; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; --tw-backdrop-blur: initial; --tw-backdrop-brightness: initial; --tw-backdrop-contrast: initial; --tw-backdrop-grayscale: initial; --tw-backdrop-hue-rotate: initial; --tw-backdrop-invert: initial; --tw-backdrop-opacity: initial; --tw-backdrop-saturate: initial; --tw-backdrop-sepia: initial; }
}
}

@layer theme {
  :root, :host { --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif; --font-serif: "Cormorant Garamond", ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-white: #fff; --spacing: .25rem; --container-sm: 24rem; --container-md: 28rem; --container-2xl: 42rem; --container-3xl: 48rem; --container-4xl: 56rem; --text-xs: .75rem; --text-xs--line-height: calc(1 / .75); --text-sm: .875rem; --text-sm--line-height: calc(1.25 / .875); --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 1.875rem; --text-3xl--line-height: 1.2; --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25); --text-5xl: 3rem; --text-5xl--line-height: 1; --text-6xl: 3.75rem; --text-6xl--line-height: 1; --text-7xl: 4.5rem; --text-7xl--line-height: 1; --text-8xl: 6rem; --text-8xl--line-height: 1; --text-9xl: 8rem; --text-9xl--line-height: 1; --font-weight-light: 300; --font-weight-medium: 500; --font-weight-bold: 700; --tracking-tighter: -.05em; --tracking-tight: -.025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-relaxed: 1.625; --radius-lg: .5rem; --radius-2xl: 1rem; --drop-shadow-md: 0 3px 3px #0000001f; --drop-shadow-lg: 0 4px 4px #00000026; --blur-md: 12px; --blur-xl: 24px; --blur-3xl: 64px; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1); --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); --color-paper: #f5f8f6; --color-accent: #256b5c; --color-mist: #e7f1ec; --color-muted: #55665f; --color-ink: #123a34; --color-dark: #17322c; }
}

@layer base {
  *, ::after, ::before, ::backdrop { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }
  ::file-selector-button { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }
  html, :host { text-size-adjust: 100%; tab-size: 4; line-height: 1.5; font-family: var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings,normal); font-variation-settings: var(--default-font-variation-settings,normal); -webkit-tap-highlight-color: transparent; }
  hr { height: 0px; color: inherit; border-top-width: 1px; }
  abbr:where([title]) { text-decoration: underline dotted; }
  h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
  a { color: inherit; text-decoration: inherit; }
  b, strong { font-weight: bolder; }
  code, kbd, samp, pre { font-family: var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); font-feature-settings: var(--default-mono-font-feature-settings,normal); font-variation-settings: var(--default-mono-font-variation-settings,normal); font-size: 1em; }
  small { font-size: 80%; }
  sub, sup { vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }
  sub { bottom: -0.25em; }
  sup { top: -0.5em; }
  table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }
  progress { vertical-align: baseline; }
  summary { display: list-item; }
  ol, ul, menu { list-style: none; }
  img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }
  img, video { max-width: 100%; height: auto; }
  button, input, select, optgroup, textarea { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }
  ::file-selector-button { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }
  :where(select:is([multiple], [size])) optgroup { font-weight: bolder; }
  :where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; }
  ::file-selector-button { margin-inline-end: 4px; }
  ::placeholder { opacity: 1; }
  @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
  ::placeholder { color: currentcolor; }
  @supports (color:color-mix(in lab,red,red)) {
  ::placeholder { color: color-mix(currentcolor, transparent); }
}
}
  textarea { resize: vertical; }
  ::-webkit-search-decoration { appearance: none; }
  ::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; }
  ::-webkit-datetime-edit { display: inline-flex; }
  ::-webkit-datetime-edit-fields-wrapper { padding: 0px; }
  ::-webkit-datetime-edit { padding-block: 0px; }
  ::-webkit-datetime-edit-year-field { padding-block: 0px; }
  ::-webkit-datetime-edit-month-field { padding-block: 0px; }
  ::-webkit-datetime-edit-day-field { padding-block: 0px; }
  ::-webkit-datetime-edit-hour-field { padding-block: 0px; }
  ::-webkit-datetime-edit-minute-field { padding-block: 0px; }
  ::-webkit-datetime-edit-second-field { padding-block: 0px; }
  ::-webkit-datetime-edit-millisecond-field { padding-block: 0px; }
  ::-webkit-datetime-edit-meridiem-field { padding-block: 0px; }
  ::-webkit-calendar-picker-indicator { line-height: 1; }
  button, input:where([type="button"], [type="reset"], [type="submit"]) { appearance: button; }
  ::file-selector-button { appearance: button; }
  ::-webkit-inner-spin-button { height: auto; }
  ::-webkit-outer-spin-button { height: auto; }
  [hidden]:where(:not([hidden="until-found"])) { display: none !important; }
  body { background-color: var(--color-paper); font-family: var(--font-sans); color: var(--color-dark); -webkit-font-smoothing: antialiased; }
  body ::selection { background-color: var(--color-accent); }
  body::selection { background-color: var(--color-accent); }
  body ::selection { color: var(--color-paper); }
  body::selection { color: var(--color-paper); }
  h1, h2, h3, h4, h5, h6 { font-family: var(--font-serif); --tw-font-weight: var(--font-weight-light); font-weight: var(--font-weight-light); --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); }
}

@layer components;

@layer utilities {
  .pointer-events-none { pointer-events: none; }
  .absolute { position: absolute; }
  .fixed { position: fixed; }
  .relative { position: relative; }
  .sticky { position: sticky; }
  .inset-0 { inset: 0px; }
  .-top-20 { top: calc(var(--spacing) * -20); }
  .top-0 { top: 0px; }
  .top-1\/2 { top: 50%; }
  .top-1\/3 { top: 33.3333%; }
  .top-1\/4 { top: 25%; }
  .top-2\/4 { top: 50%; }
  .top-8 { top: calc(var(--spacing) * 8); }
  .-right-20 { right: calc(var(--spacing) * -20); }
  .right-0 { right: 0px; }
  .right-6 { right: calc(var(--spacing) * 6); }
  .right-8 { right: calc(var(--spacing) * 8); }
  .bottom-8 { bottom: calc(var(--spacing) * 8); }
  .left-0 { left: 0px; }
  .left-1\/2 { left: 50%; }
  .z-0 { z-index: 0; }
  .z-10 { z-index: 10; }
  .z-50 { z-index: 50; }
  .z-\[60\] { z-index: 60; }
  .order-1 { order: 1; }
  .order-2 { order: 2; }
  .container { width: 100%; }
  @media (min-width: 40rem) {
  .container { max-width: 40rem; }
}
  @media (min-width: 48rem) {
  .container { max-width: 48rem; }
}
  @media (min-width: 64rem) {
  .container { max-width: 64rem; }
}
  @media (min-width: 80rem) {
  .container { max-width: 80rem; }
}
  @media (min-width: 96rem) {
  .container { max-width: 96rem; }
}
  .mx-auto { margin-inline: auto; }
  .mt-3 { margin-top: calc(var(--spacing) * 3); }
  .mt-8 { margin-top: calc(var(--spacing) * 8); }
  .mt-12 { margin-top: calc(var(--spacing) * 12); }
  .mt-20 { margin-top: calc(var(--spacing) * 20); }
  .mt-auto { margin-top: auto; }
  .mr-\[0\.25em\] { margin-right: 0.25em; }
  .mb-3 { margin-bottom: calc(var(--spacing) * 3); }
  .mb-4 { margin-bottom: calc(var(--spacing) * 4); }
  .mb-6 { margin-bottom: calc(var(--spacing) * 6); }
  .mb-8 { margin-bottom: calc(var(--spacing) * 8); }
  .mb-10 { margin-bottom: calc(var(--spacing) * 10); }
  .mb-12 { margin-bottom: calc(var(--spacing) * 12); }
  .mb-16 { margin-bottom: calc(var(--spacing) * 16); }
  .mb-20 { margin-bottom: calc(var(--spacing) * 20); }
  .mb-24 { margin-bottom: calc(var(--spacing) * 24); }
  .mb-32 { margin-bottom: calc(var(--spacing) * 32); }
  .block { display: block; }
  .flex { display: flex; }
  .grid { display: grid; }
  .hidden { display: none; }
  .inline-block { display: inline-block; }
  .inline-flex { display: inline-flex; }
  .aspect-\[3\/4\] { aspect-ratio: 3 / 4; }
  .aspect-\[4\/3\] { aspect-ratio: 4 / 3; }
  .aspect-\[4\/5\] { aspect-ratio: 4 / 5; }
  .aspect-square { aspect-ratio: 1 / 1; }
  .h-4 { height: calc(var(--spacing) * 4); }
  .h-5 { height: calc(var(--spacing) * 5); }
  .h-6 { height: calc(var(--spacing) * 6); }
  .h-8 { height: calc(var(--spacing) * 8); }
  .h-12 { height: calc(var(--spacing) * 12); }
  .h-40 { height: calc(var(--spacing) * 40); }
  .h-64 { height: calc(var(--spacing) * 64); }
  .h-96 { height: calc(var(--spacing) * 96); }
  .h-\[1px\] { height: 1px; }
  .h-\[50vh\] { height: 50vh; }
  .h-\[65vh\] { height: 65vh; }
  .h-\[70vh\] { height: 70vh; }
  .h-\[80vh\] { height: 80vh; }
  .h-\[85vh\] { height: 85vh; }
  .h-\[300vh\] { height: 300vh; }
  .h-full { height: 100%; }
  .h-screen { height: 100vh; }
  .min-h-screen { min-height: 100vh; }
  .w-4 { width: calc(var(--spacing) * 4); }
  .w-5 { width: calc(var(--spacing) * 5); }
  .w-6 { width: calc(var(--spacing) * 6); }
  .w-8 { width: calc(var(--spacing) * 8); }
  .w-12 { width: calc(var(--spacing) * 12); }
  .w-32 { width: calc(var(--spacing) * 32); }
  .w-40 { width: calc(var(--spacing) * 40); }
  .w-64 { width: calc(var(--spacing) * 64); }
  .w-96 { width: calc(var(--spacing) * 96); }
  .w-\[85vw\] { width: 85vw; }
  .w-\[90vw\] { width: 90vw; }
  .w-\[300vw\] { width: 300vw; }
  .w-full { width: 100%; }
  .max-w-2xl { max-width: var(--container-2xl); }
  .max-w-3xl { max-width: var(--container-3xl); }
  .max-w-4xl { max-width: var(--container-4xl); }
  .max-w-\[320px\] { max-width: 320px; }
  .max-w-md { max-width: var(--container-md); }
  .max-w-sm { max-width: var(--container-sm); }
  .flex-1 { flex: 1 1 0%; }
  .shrink-0 { flex-shrink: 0; }
  .flex-grow { flex-grow: 1; }
  .-translate-x-1\/2 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }
  .translate-x-1\/2 { --tw-translate-x: 50%; translate: var(--tw-translate-x) var(--tw-translate-y); }
  .-translate-y-1\/2 { --tw-translate-y: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }
  .rotate-180 { rotate: 180deg; }
  .transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); }
  .cursor-none { cursor: none; }
  .cursor-pointer { cursor: pointer; }
  .resize-none { resize: none; }
  .appearance-none { appearance: none; }
  .grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }
  .grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .flex-col { flex-direction: column; }
  .items-center { align-items: center; }
  .items-end { align-items: flex-end; }
  .items-start { align-items: flex-start; }
  .justify-between { justify-content: space-between; }
  .justify-center { justify-content: center; }
  .justify-end { justify-content: flex-end; }
  .gap-2 { gap: calc(var(--spacing) * 2); }
  .gap-3 { gap: calc(var(--spacing) * 3); }
  .gap-4 { gap: calc(var(--spacing) * 4); }
  .gap-6 { gap: calc(var(--spacing) * 6); }
  .gap-8 { gap: calc(var(--spacing) * 8); }
  .gap-10 { gap: calc(var(--spacing) * 10); }
  .gap-12 { gap: calc(var(--spacing) * 12); }
  .gap-16 { gap: calc(var(--spacing) * 16); }
  .gap-24 { gap: calc(var(--spacing) * 24); }
  .gap-32 { gap: calc(var(--spacing) * 32); }
  :where(.space-y-4 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); }
  :where(.space-y-6 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); }
  :where(.space-y-8 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse))); }
  :where(.space-y-12 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 12) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse))); }
  :where(.space-y-16 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 16) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 16) * calc(1 - var(--tw-space-y-reverse))); }
  .gap-x-12 { column-gap: calc(var(--spacing) * 12); }
  .gap-y-20 { row-gap: calc(var(--spacing) * 20); }
  .overflow-hidden { overflow: hidden; }
  .rounded-2xl { border-radius: var(--radius-2xl); }
  .rounded-full { border-radius: 3.40282e+38px; }
  .rounded-lg { border-radius: var(--radius-lg); }
  .rounded-none { border-radius: 0px; }
  .border { border-style: var(--tw-border-style); border-width: 1px; }
  .border-y { border-block-style: var(--tw-border-style); border-block-width: 1px; }
  .border-t { border-top-style: var(--tw-border-style); border-top-width: 1px; }
  .border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; }
  .border-l { border-left-style: var(--tw-border-style); border-left-width: 1px; }
  .border-ink { border-color: var(--color-ink); }
  .border-ink\/10 { border-color: rgba(19, 18, 87, 0.1); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-ink\/10 { border-color: color-mix(in oklab,var(--color-ink) 10%,transparent); }
}
  .border-ink\/20 { border-color: rgba(19, 18, 87, 0.2); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-ink\/20 { border-color: color-mix(in oklab,var(--color-ink) 20%,transparent); }
}
  .border-accent { border-color: var(--color-accent); }
  .border-accent\/10 { border-color: rgba(107, 70, 201, 0.1); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-accent\/10 { border-color: color-mix(in oklab,var(--color-accent) 10%,transparent); }
}
  .border-accent\/20 { border-color: rgba(107, 70, 201, 0.2); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-accent\/20 { border-color: color-mix(in oklab,var(--color-accent) 20%,transparent); }
}
  .border-muted\/30 { border-color: rgba(91, 88, 120, 0.3); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-muted\/30 { border-color: color-mix(in oklab,var(--color-muted) 30%,transparent); }
}
  .border-paper\/10 { border-color: rgba(248, 247, 252, 0.1); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-paper\/10 { border-color: color-mix(in oklab,var(--color-paper) 10%,transparent); }
}
  .border-paper\/20 { border-color: rgba(248, 247, 252, 0.2); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-paper\/20 { border-color: color-mix(in oklab,var(--color-paper) 20%,transparent); }
}
  .border-paper\/30 { border-color: rgba(248, 247, 252, 0.3); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-paper\/30 { border-color: color-mix(in oklab,var(--color-paper) 30%,transparent); }
}
  .border-paper\/50 { border-color: rgba(248, 247, 252, 0.5); }
  @supports (color:color-mix(in lab,red,red)) {
  .border-paper\/50 { border-color: color-mix(in oklab,var(--color-paper) 50%,transparent); }
}
  .bg-\[\#256b5c\]\/5 { background-color: rgba(27, 127, 196, 0.05); }
  .bg-\[\#7360F2\] { background-color: rgb(115, 96, 242); }
  .bg-dark { background-color: var(--color-dark); }
  .bg-accent { background-color: var(--color-accent); }
  .bg-accent\/5 { background-color: rgba(27, 127, 196, 0.05); }
  @supports (color:color-mix(in lab,red,red)) {
  .bg-accent\/5 { background-color: color-mix(in oklab,var(--color-accent) 5%,transparent); }
}
  .bg-paper { background-color: var(--color-paper); }
  .bg-paper\/50 { background-color: rgba(242, 247, 251, 0.5); }
  @supports (color:color-mix(in lab,red,red)) {
  .bg-paper\/50 { background-color: color-mix(in oklab,var(--color-paper) 50%,transparent); }
}
  .bg-transparent { background-color: rgba(0, 0, 0, 0); }
  .bg-mist { background-color: var(--color-mist); }
  .bg-gradient-to-b { --tw-gradient-position: to bottom in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }
  .bg-gradient-to-t { --tw-gradient-position: to top in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }
  .bg-\[radial-gradient\(\#256b5c_1px\,transparent_1px\)\] { background-image: radial-gradient(rgb(27, 127, 196) 1px, rgba(0, 0, 0, 0) 1px); }
  .bg-\[radial-gradient\(circle_at_50\%_50\%\,\#e7f1ec_0\%\,transparent_60\%\)\] { background-image: radial-gradient(circle, rgb(219, 233, 246), rgba(0, 0, 0, 0) 60%); }
  .from-dark\/50 { --tw-gradient-from: #17322c80; }
  @supports (color:color-mix(in lab,red,red)) {
  .from-dark\/50 { --tw-gradient-from: color-mix(in oklab, var(--color-dark) 50%, transparent); }
}
  .from-dark\/50 { --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }
  .from-dark\/80 { --tw-gradient-from: #17322ccc; }
  @supports (color:color-mix(in lab,red,red)) {
  .from-dark\/80 { --tw-gradient-from: color-mix(in oklab, var(--color-dark) 80%, transparent); }
}
  .from-dark\/80 { --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }
  .via-transparent { --tw-gradient-via: transparent; --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-via-stops); }
  .to-dark\/90 { --tw-gradient-to: #17322ce6; }
  @supports (color:color-mix(in lab,red,red)) {
  .to-dark\/90 { --tw-gradient-to: color-mix(in oklab, var(--color-dark) 90%, transparent); }
}
  .to-dark\/90 { --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }
  .to-transparent { --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }
  .\[background-size\:20px_20px\] { background-size: 20px 20px; }
  .object-cover { object-fit: cover; }
  .p-2 { padding: calc(var(--spacing) * 2); }
  .p-6 { padding: calc(var(--spacing) * 6); }
  .p-8 { padding: calc(var(--spacing) * 8); }
  .p-12 { padding: calc(var(--spacing) * 12); }
  .px-4 { padding-inline: calc(var(--spacing) * 4); }
  .px-6 { padding-inline: calc(var(--spacing) * 6); }
  .px-8 { padding-inline: calc(var(--spacing) * 8); }
  .px-12 { padding-inline: calc(var(--spacing) * 12); }
  .py-3 { padding-block: calc(var(--spacing) * 3); }
  .py-4 { padding-block: calc(var(--spacing) * 4); }
  .py-5 { padding-block: calc(var(--spacing) * 5); }
  .py-6 { padding-block: calc(var(--spacing) * 6); }
  .py-8 { padding-block: calc(var(--spacing) * 8); }
  .py-16 { padding-block: calc(var(--spacing) * 16); }
  .py-24 { padding-block: calc(var(--spacing) * 24); }
  .py-32 { padding-block: calc(var(--spacing) * 32); }
  .py-40 { padding-block: calc(var(--spacing) * 40); }
  .pt-4 { padding-top: calc(var(--spacing) * 4); }
  .pt-6 { padding-top: calc(var(--spacing) * 6); }
  .pt-12 { padding-top: calc(var(--spacing) * 12); }
  .pt-32 { padding-top: calc(var(--spacing) * 32); }
  .pt-48 { padding-top: calc(var(--spacing) * 48); }
  .pr-8 { padding-right: calc(var(--spacing) * 8); }
  .pb-1 { padding-bottom: var(--spacing); }
  .pb-2 { padding-bottom: calc(var(--spacing) * 2); }
  .pb-4 { padding-bottom: calc(var(--spacing) * 4); }
  .pb-6 { padding-bottom: calc(var(--spacing) * 6); }
  .pb-8 { padding-bottom: calc(var(--spacing) * 8); }
  .pb-12 { padding-bottom: calc(var(--spacing) * 12); }
  .pb-24 { padding-bottom: calc(var(--spacing) * 24); }
  .pb-32 { padding-bottom: calc(var(--spacing) * 32); }
  .pl-6 { padding-left: calc(var(--spacing) * 6); }
  .pl-8 { padding-left: calc(var(--spacing) * 8); }
  .text-center { text-align: center; }
  .text-left { text-align: left; }
  .font-sans { font-family: var(--font-sans); }
  .font-serif { font-family: var(--font-serif); }
  .text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading,var(--text-2xl--line-height)); }
  .text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }
  .text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }
  .text-5xl { font-size: var(--text-5xl); line-height: var(--tw-leading,var(--text-5xl--line-height)); }
  .text-6xl { font-size: var(--text-6xl); line-height: var(--tw-leading,var(--text-6xl--line-height)); }
  .text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }
  .text-sm { font-size: var(--text-sm); line-height: var(--tw-leading,var(--text-sm--line-height)); }
  .text-xl { font-size: var(--text-xl); line-height: var(--tw-leading,var(--text-xl--line-height)); }
  .text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }
  .text-\[10px\] { font-size: 10px; }
  .text-\[15vw\] { font-size: 15vw; }
  .text-\[20vw\] { font-size: 20vw; }
  .leading-\[1\.05\] { --tw-leading: 1.05; line-height: 1.05; }
  .leading-none { --tw-leading: 1; line-height: 1; }
  .leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }
  .leading-tight { --tw-leading: var(--leading-tight); line-height: var(--leading-tight); }
  .font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); }
  .font-light { --tw-font-weight: var(--font-weight-light); font-weight: var(--font-weight-light); }
  .font-medium { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); }
  .tracking-\[0\.2em\] { --tw-tracking: .2em; letter-spacing: 0.2em; }
  .tracking-\[0\.3em\] { --tw-tracking: .3em; letter-spacing: 0.3em; }
  .tracking-tight { --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); }
  .tracking-tighter { --tw-tracking: var(--tracking-tighter); letter-spacing: var(--tracking-tighter); }
  .tracking-wider { --tw-tracking: var(--tracking-wider); letter-spacing: var(--tracking-wider); }
  .tracking-widest { --tw-tracking: var(--tracking-widest); letter-spacing: var(--tracking-widest); }
  .whitespace-nowrap { white-space: nowrap; }
  .text-dark { color: var(--color-dark); }
  .text-ink { color: var(--color-ink); }
  .text-accent { color: var(--color-accent); }
  .text-accent\/20 { color: rgba(27, 127, 196, 0.2); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-accent\/20 { color: color-mix(in oklab,var(--color-accent) 20%,transparent); }
}
  .text-accent\/30 { color: rgba(27, 127, 196, 0.3); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-accent\/30 { color: color-mix(in oklab,var(--color-accent) 30%,transparent); }
}
  .text-muted { color: var(--color-muted); }
  .text-paper { color: var(--color-paper); }
  .text-paper\/10 { color: rgba(242, 247, 251, 0.1); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-paper\/10 { color: color-mix(in oklab,var(--color-paper) 10%,transparent); }
}
  .text-paper\/40 { color: rgba(242, 247, 251, 0.4); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-paper\/40 { color: color-mix(in oklab,var(--color-paper) 40%,transparent); }
}
  .text-paper\/50 { color: rgba(242, 247, 251, 0.5); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-paper\/50 { color: color-mix(in oklab,var(--color-paper) 50%,transparent); }
}
  .text-paper\/60 { color: rgba(242, 247, 251, 0.6); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-paper\/60 { color: color-mix(in oklab,var(--color-paper) 60%,transparent); }
}
  .text-paper\/70 { color: rgba(242, 247, 251, 0.7); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-paper\/70 { color: color-mix(in oklab,var(--color-paper) 70%,transparent); }
}
  .text-paper\/80 { color: rgba(242, 247, 251, 0.8); }
  @supports (color:color-mix(in lab,red,red)) {
  .text-paper\/80 { color: color-mix(in oklab,var(--color-paper) 80%,transparent); }
}
  .text-white { color: var(--color-white); }
  .uppercase { text-transform: uppercase; }
  .italic { font-style: italic; }
  .opacity-5 { opacity: 0.05; }
  .opacity-10 { opacity: 0.1; }
  .opacity-20 { opacity: 0.2; }
  .opacity-50 { opacity: 0.5; }
  .opacity-60 { opacity: 0.6; }
  .opacity-70 { opacity: 0.7; }
  .opacity-80 { opacity: 0.8; }
  .opacity-\[0\.02\] { opacity: 0.02; }
  .opacity-\[0\.03\] { opacity: 0.03; }
  .shadow-2xl { --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color,#00000040); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }
  .shadow-md { --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }
  .shadow-sm { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }
  .shadow-xl { --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }
  .blur-3xl { --tw-blur: blur(var(--blur-3xl)); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }
  .drop-shadow-lg { --tw-drop-shadow-size: drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026)); --tw-drop-shadow: drop-shadow(var(--drop-shadow-lg)); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }
  .drop-shadow-md { --tw-drop-shadow-size: drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f)); --tw-drop-shadow: drop-shadow(var(--drop-shadow-md)); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }
  .grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }
  .filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }
  .transition { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }
  .transition-all { transition-property: all; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }
  .transition-colors { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }
  .transition-opacity { transition-property: opacity; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }
  .transition-shadow { transition-property: box-shadow; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }
  .transition-transform { transition-property: transform, translate, scale, rotate; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }
  .duration-300 { --tw-duration: .3s; transition-duration: 0.3s; }
  .duration-500 { --tw-duration: .5s; transition-duration: 0.5s; }
  .duration-700 { --tw-duration: .7s; transition-duration: 0.7s; }
  .duration-1000 { --tw-duration: 1s; transition-duration: 1s; }
  .select-none { user-select: none; }
  .group-focus-within\:text-accent:is(:where(.group):focus-within *) { color: var(--color-accent); }
  @media (hover: hover) {
  .group-hover\:translate-x-2:is(:where(.group):hover *) { --tw-translate-x: calc(var(--spacing) * 2); translate: var(--tw-translate-x) var(--tw-translate-y); }
  .group-hover\:scale-105:is(:where(.group):hover *) { --tw-scale-x: 105%; --tw-scale-y: 105%; --tw-scale-z: 105%; scale: var(--tw-scale-x) var(--tw-scale-y); }
  .group-hover\:scale-110:is(:where(.group):hover *) { --tw-scale-x: 110%; --tw-scale-y: 110%; --tw-scale-z: 110%; scale: var(--tw-scale-x) var(--tw-scale-y); }
  .group-hover\:border-accent:is(:where(.group):hover *) { border-color: var(--color-accent); }
  .group-hover\:text-accent:is(:where(.group):hover *) { color: var(--color-accent); }
  .group-hover\:opacity-100:is(:where(.group):hover *) { opacity: 1; }
  .group-hover\:shadow-2xl:is(:where(.group):hover *) { --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color,#00000040); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }
  .group-hover\:grayscale-0:is(:where(.group):hover *) { --tw-grayscale: grayscale(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }
}
  .selection\:bg-accent ::selection { background-color: var(--color-accent); }
  .selection\:bg-accent::selection { background-color: var(--color-accent); }
  .selection\:text-paper ::selection { color: var(--color-paper); }
  .selection\:text-paper::selection { color: var(--color-paper); }
  @media (hover: hover) {
  .hover\:border-accent:hover { border-color: var(--color-accent); }
  .hover\:border-paper:hover { border-color: var(--color-paper); }
  .hover\:bg-ink:hover { background-color: var(--color-ink); }
  .hover\:bg-accent:hover { background-color: var(--color-accent); }
  .hover\:bg-paper:hover { background-color: var(--color-paper); }
  .hover\:text-accent:hover { color: var(--color-accent); }
  .hover\:text-paper:hover { color: var(--color-paper); }
  .hover\:text-paper\/70:hover { color: rgba(242, 247, 251, 0.7); }
  @supports (color:color-mix(in lab,red,red)) {
  .hover\:text-paper\/70:hover { color: color-mix(in oklab,var(--color-paper) 70%,transparent); }
}
  .hover\:opacity-50:hover { opacity: 0.5; }
  .hover\:opacity-80:hover { opacity: 0.8; }
  .hover\:grayscale-0:hover { --tw-grayscale: grayscale(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }
}
  .focus\:border-accent:focus { border-color: var(--color-accent); }
  .focus\:outline-none:focus { --tw-outline-style: none; outline-style: none; }
  @media (min-width: 40rem) {
  .sm\:flex-row { flex-direction: row; }
  .sm\:items-center { align-items: center; }
}
  @media (min-width: 48rem) {
  .md\:right-12 { right: calc(var(--spacing) * 12); }
  .md\:mt-12 { margin-top: calc(var(--spacing) * 12); }
  .md\:mt-16 { margin-top: calc(var(--spacing) * 16); }
  .md\:mt-24 { margin-top: calc(var(--spacing) * 24); }
  .md\:mb-40 { margin-bottom: calc(var(--spacing) * 40); }
  .md\:block { display: block; }
  .md\:h-56 { height: calc(var(--spacing) * 56); }
  .md\:w-56 { width: calc(var(--spacing) * 56); }
  .md\:w-\[75vw\] { width: 75vw; }
  .md\:cursor-auto { cursor: auto; }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
  .md\:flex-row { flex-direction: row; }
  .md\:items-center { align-items: center; }
  .md\:items-end { align-items: flex-end; }
  .md\:justify-end { justify-content: flex-end; }
  .md\:gap-12 { gap: calc(var(--spacing) * 12); }
  .md\:px-12 { padding-inline: calc(var(--spacing) * 12); }
  .md\:px-24 { padding-inline: calc(var(--spacing) * 24); }
  .md\:pb-32 { padding-bottom: calc(var(--spacing) * 32); }
  .md\:text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading,var(--text-2xl--line-height)); }
  .md\:text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }
  .md\:text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }
  .md\:text-5xl { font-size: var(--text-5xl); line-height: var(--tw-leading,var(--text-5xl--line-height)); }
  .md\:text-6xl { font-size: var(--text-6xl); line-height: var(--tw-leading,var(--text-6xl--line-height)); }
  .md\:text-7xl { font-size: var(--text-7xl); line-height: var(--tw-leading,var(--text-7xl--line-height)); }
  .md\:text-8xl { font-size: var(--text-8xl); line-height: var(--tw-leading,var(--text-8xl--line-height)); }
  .md\:text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }
  .md\:text-xl { font-size: var(--text-xl); line-height: var(--tw-leading,var(--text-xl--line-height)); }
}
  @media (min-width: 64rem) {
  .lg\:order-1 { order: 1; }
  .lg\:order-2 { order: 2; }
  .lg\:col-span-2 { grid-column: span 2 / span 2; }
  .lg\:col-span-5 { grid-column: span 5 / span 5; }
  .lg\:col-span-7 { grid-column: span 7 / span 7; }
  .lg\:mt-32 { margin-top: calc(var(--spacing) * 32); }
  .lg\:flex { display: flex; }
  .lg\:hidden { display: none; }
  .lg\:h-\[75vh\] { height: 75vh; }
  .lg\:w-\[65vw\] { width: 65vw; }
  .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
  .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
  .lg\:gap-8 { gap: calc(var(--spacing) * 8); }
  .lg\:gap-24 { gap: calc(var(--spacing) * 24); }
  .lg\:gap-32 { gap: calc(var(--spacing) * 32); }
  .lg\:gap-40 { gap: calc(var(--spacing) * 40); }
  .lg\:p-20 { padding: calc(var(--spacing) * 20); }
  .lg\:px-24 { padding-inline: calc(var(--spacing) * 24); }
  .lg\:text-8xl { font-size: var(--text-8xl); line-height: var(--tw-leading,var(--text-8xl--line-height)); }
  .lg\:text-9xl { font-size: var(--text-9xl); line-height: var(--tw-leading,var(--text-9xl--line-height)); }
}
}

@keyframes fadeIn { 
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes slideUp { 
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0px); }
}

.glass-nav { border-bottom-style: var(--tw-border-style); border-color: rgba(27, 127, 196, 0.1); border-bottom-width: 1px; }

@supports (color:color-mix(in lab,red,red)) {
  .glass-nav { border-color: color-mix(in oklab,var(--color-accent) 10%,transparent); }
}

.glass-nav { background-color: rgba(242, 247, 251, 0.6); }

@supports (color:color-mix(in lab,red,red)) {
  .glass-nav { background-color: color-mix(in oklab,var(--color-paper) 60%,transparent); }
}

.glass-nav { --tw-backdrop-blur: blur(var(--blur-md)); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }

.glass-nav.scrolled { background-color: rgba(27, 127, 196, 0.9); border-color: rgba(0, 0, 0, 0); }

@supports (color:color-mix(in lab,red,red)) {
  .glass-nav.scrolled { background-color: color-mix(in oklab,var(--color-accent) 90%,transparent); }
}

.glass-nav.scrolled { color: var(--color-paper); --tw-backdrop-blur: blur(var(--blur-xl)); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }

.custom-cursor { border: 1px solid var(--color-accent); pointer-events: none; z-index: 9999; border-radius: 50%; width: 20px; height: 20px; transition: transform 0.2s ease-out; position: fixed; transform: translate(-50%, -50%); }

.custom-cursor.hovering { background-color: var(--color-accent); opacity: 0.2; transform: translate(-50%, -50%) scale(1.5); }

.no-scrollbar::-webkit-scrollbar { display: none; }

.no-scrollbar { scrollbar-width: none; }

@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }

@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }

@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }

@property --tw-rotate-x { syntax: "*"; inherits: false; }

@property --tw-rotate-y { syntax: "*"; inherits: false; }

@property --tw-rotate-z { syntax: "*"; inherits: false; }

@property --tw-skew-x { syntax: "*"; inherits: false; }

@property --tw-skew-y { syntax: "*"; inherits: false; }

@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }

@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }

@property --tw-gradient-position { syntax: "*"; inherits: false; }

@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }

@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }

@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }

@property --tw-gradient-stops { syntax: "*"; inherits: false; }

@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }

@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }

@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }

@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }

@property --tw-leading { syntax: "*"; inherits: false; }

@property --tw-font-weight { syntax: "*"; inherits: false; }

@property --tw-tracking { syntax: "*"; inherits: false; }

@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }

@property --tw-shadow-color { syntax: "*"; inherits: false; }

@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }

@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }

@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }

@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }

@property --tw-ring-color { syntax: "*"; inherits: false; }

@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }

@property --tw-inset-ring-color { syntax: "*"; inherits: false; }

@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }

@property --tw-ring-inset { syntax: "*"; inherits: false; }

@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0; }

@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }

@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }

@property --tw-blur { syntax: "*"; inherits: false; }

@property --tw-brightness { syntax: "*"; inherits: false; }

@property --tw-contrast { syntax: "*"; inherits: false; }

@property --tw-grayscale { syntax: "*"; inherits: false; }

@property --tw-hue-rotate { syntax: "*"; inherits: false; }

@property --tw-invert { syntax: "*"; inherits: false; }

@property --tw-opacity { syntax: "*"; inherits: false; }

@property --tw-saturate { syntax: "*"; inherits: false; }

@property --tw-sepia { syntax: "*"; inherits: false; }

@property --tw-drop-shadow { syntax: "*"; inherits: false; }

@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }

@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }

@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }

@property --tw-duration { syntax: "*"; inherits: false; }

@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }

@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }

@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }

@property --tw-backdrop-blur { syntax: "*"; inherits: false; }

@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }

@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }

@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }

@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }

@property --tw-backdrop-invert { syntax: "*"; inherits: false; }

@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }

@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }

@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }



@keyframes dlnBounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(10px); } }
[data-anim="bounce"] { animation: dlnBounce 2s ease-in-out infinite; }
@keyframes dlnLoopA { from { transform: translateX(0); }     to { transform: translateX(-1000px); } }
@keyframes dlnLoopB { from { transform: translateX(-1000px); } to { transform: translateX(0); } }
[data-anim="loop"][data-from="0"]     { animation: dlnLoopA 50s linear infinite; }
[data-anim="loop"][data-from="-1000"] { animation: dlnLoopB 50s linear infinite; }
[data-anim="hero-img"], [data-anim="marq"] { will-change: transform; }
.faq-answer { display: none; padding-top: 1.25rem; max-width: 62ch; }
.faq-answer.open { display: block; }
.custom-cursor { position: fixed; width: 24px; height: 24px; margin: -12px 0 0 -12px;
  border: 1px solid rgba(245,248,246,.6); border-radius: 50%; pointer-events: none;
  z-index: 9999; mix-blend-mode: difference;
  transition: width .3s ease, height .3s ease, margin .3s ease, background-color .3s ease; }
.custom-cursor.hovering { width: 56px; height: 56px; margin: -28px 0 0 -28px;
  background: rgba(245,248,246,.15); }
@media (prefers-reduced-motion: reduce) {
  [data-anim="bounce"], [data-anim="loop"] { animation: none; }
}

/* =============== CLINICBRAIN · KOURMPETI MENTAL HEALTH =============== */
/* Η πελάτισσα δεν όρισε χρώματα, οπότε η παλέτα χτίστηκε από την ίδια τη
   δουλειά: βαθύ πράσινο-πετρόλ για τη σταθερότητα του πλαισίου, ζεστή
   τερακότα για το ανθρώπινο σημείο. Όλες οι τιμές ελέγχθηκαν για αντίθεση
   AA στη θέση που χρησιμοποιούνται. */
:root { --cb-accent: #256b5c; --cb-mist: #8fcbb8; --cb-deep: #17493f;
  --cb-ink: #123a34; --cb-muted: #55665f;
  --cb-sand: #a9612e;        /* τερακότα, σκουρότερη για AA σε ανοιχτό φόντο */
  --cb-sand-soft: #e3a074;   /* η ίδια, για σκούρο φόντο */
  /* alias ονόματα από το κληρονομημένο template */
  --cb-blue: var(--cb-accent); --cb-blue-soft: var(--cb-mist); --cb-red: var(--cb-deep); }
.cb-red { color: var(--cb-red); }
.cb-rule-red { background: var(--cb-red); }

/* ---- hero ---- */
.cb-hero-bg { background: linear-gradient(160deg,#0e2e28 0%,#173a33 45%,#123830 100%); }
.cb-hero-glow { position: absolute; inset: 0;
  background: radial-gradient(circle at 72% 28%, rgba(143,203,184,.30) 0%, transparent 58%),
              radial-gradient(circle at 18% 88%, rgba(23,73,63,.20) 0%, transparent 55%); }
.cb-hero-grid { position: absolute; inset: 0; opacity: .16;
  background-image: linear-gradient(rgba(143,203,184,.35) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(143,203,184,.35) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(circle at 50% 45%, #000 0%, transparent 72%);
          mask-image: radial-gradient(circle at 50% 45%, #000 0%, transparent 72%); }
.cb-hero-ecg { position: absolute; left: 0; right: 0; top: 30%; width: 100%; height: 40%; }
.cb-hero-ecg path { fill: none; stroke: var(--cb-blue-soft); stroke-width: 2.5;
  stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; opacity: .5;
  stroke-dasharray: 1200 1200; stroke-dashoffset: 1200; animation: cbTrace 7s linear infinite; }
@keyframes cbTrace { to { stroke-dashoffset: -1200; } }

/* ---- βιογραφικό ---- */
.cb-cv { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(18,58,52,.14); }
.cb-cv li { display: grid; grid-template-columns: 1fr; gap: .35rem;
  padding: 1.15rem 0; border-bottom: 1px solid rgba(18,58,52,.14); }
@media (min-width: 768px) { .cb-cv li { grid-template-columns: 11rem 1fr; gap: 1.5rem; align-items: baseline; } }
.cb-cv__k { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cb-blue); }
.cb-cv__v { font-weight: 300; line-height: 1.7; color: var(--cb-muted); }

/* ---- εικαστικά panels υπηρεσιών ---- */
.cb-panel { position: relative; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(150deg,#14352f 0%,#1b463d 100%); overflow: hidden; }
.cb-panel::before { content: ""; position: absolute; inset: 0; opacity: .2;
  background-image: linear-gradient(rgba(143,203,184,.4) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(143,203,184,.4) 1px, transparent 1px);
  background-size: 26px 26px; }
.cb-panel__art { position: relative; width: 74%; height: auto; }
.cb-panel__art path { fill: none; stroke: rgba(214,205,240,.5); stroke-width: 3;
  stroke-linecap: round; stroke-linejoin: round; }
.cb-panel__art .cb-panel__pulse { stroke: var(--cb-red); stroke-width: 4; opacity: .95;
  stroke-dasharray: 620; stroke-dashoffset: 620; animation: cbDraw 5s ease-in-out infinite; }
@keyframes cbDraw { 0% { stroke-dashoffset: 620; } 45% { stroke-dashoffset: 0; }
  80% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -620; } }
.cb-panel__label { position: absolute; left: 1.75rem; bottom: 1.5rem; font-size: .62rem;
  letter-spacing: .28em; text-transform: uppercase; color: rgba(245,248,246,.6); }

/* ---- κάρτες εξετάσεων ---- */
.cb-exam { display: block; position: relative; padding: 2.25rem 1.75rem 2rem;
  border: 1px solid rgba(245,248,246,.13);
  transition: border-color .4s ease, background-color .4s ease, transform .4s ease; }
.cb-exam:hover { border-color: rgba(245,248,246,.35); background: rgba(245,248,246,.04); transform: translateY(-3px); }
.cb-exam__n { display: block; font-family: var(--font-serif); font-size: 2.25rem; line-height: 1;
  color: var(--cb-blue-soft); opacity: .45; margin-bottom: 1.25rem; }
.cb-exam--cta { display: flex; flex-direction: column; justify-content: center;
  border-color: rgba(23,73,63,.75); background: rgba(23,73,63,.09); text-decoration: none; }
.cb-exam--cta:hover { background: rgba(23,73,63,.18); border-color: var(--cb-red); }

/* ---- δημοσιεύσεις ---- */
.cb-pubs { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(18,58,52,.14); }
.cb-pub { display: grid; grid-template-columns: 3.25rem 1fr; gap: 1rem;
  padding: 1.35rem 0; border-bottom: 1px solid rgba(18,58,52,.14); }
.cb-pub__year { font-size: .68rem; letter-spacing: .16em; color: var(--cb-blue); padding-top: .35rem; }
.cb-pub__title { display: block; font-family: var(--font-serif); font-size: 1.2rem; line-height: 1.35;
  color: var(--cb-ink); text-decoration: none; transition: color .3s ease; }
.cb-pub__title:hover { color: var(--cb-blue); text-decoration: underline; text-underline-offset: 3px; }
.cb-pub__meta { display: block; margin-top: .4rem; font-size: .78rem; font-weight: 300; color: var(--cb-muted); }
.cb-pub--first .cb-pub__title::after { content: " \2605"; color: var(--cb-red); font-size: .78em; }

/* ---- ωράριο / επικοινωνία ---- */
.cb-hours { width: 100%; border-collapse: collapse; font-weight: 300; color: var(--cb-ink); font-size: .95rem; }
.cb-hours th { text-align: left; font-weight: 300; padding: .32rem 1rem .32rem 0; white-space: nowrap; vertical-align: top; }
.cb-hours td { padding: .32rem 0; }
.cb-hours__note { color: var(--cb-blue); font-size: .85em; white-space: nowrap; }
.cb-tag { display: inline-block; font-size: .58rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--cb-blue); border: 1px solid rgba(37,107,92,.35); border-radius: 999px;
  padding: .12rem .55rem; vertical-align: middle; }
.cb-fb { display: inline-flex; align-items: center; gap: .7rem; padding: .85rem 1.4rem;
  background: #1877f2; color: #fff; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase;
  border-radius: 999px; text-decoration: none; transition: background-color .3s ease, transform .3s ease; }
.cb-fb:hover { background: #0f5fd0; transform: translateY(-2px); }
.cb-fb svg { width: 18px; height: 18px; flex-shrink: 0; }
.cb-fb--dark { background: transparent; border: 1px solid rgba(245,248,246,.3); color: #f5f8f6; }
.cb-fb--dark:hover { background: #1877f2; border-color: #1877f2; }

/* ---- footer ---- */
.cb-footer-bottom { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(245,248,246,.1);
  display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; align-items: center; justify-content: space-between;
  font-size: .72rem; }
.cb-credit { font-size: .8rem; opacity: .7; }
.cb-credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.cb-credit a:hover { opacity: 1; color: var(--cb-blue-soft); }

@media (prefers-reduced-motion: reduce) {
  .cb-hero-ecg path, .cb-panel__art .cb-panel__pulse { animation: none; stroke-dashoffset: 0; }
}



.dln-anchor { display: block; position: relative; }
.dln-overlay { position: fixed; inset: 0; z-index: 9998; background: #123a34;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s; }
.dln-overlay.open { opacity: 1; visibility: visible; }
.dln-overlay__nav { display: flex; flex-direction: column; gap: 1.5rem; text-align: center; }
.dln-overlay__nav a { font-family: "Cormorant Garamond", serif; font-size: clamp(1.8rem, 7vw, 3rem);
  color: #f5f8f6; text-decoration: none; transition: color .3s; }
.dln-overlay__nav a:hover { color: #8fcbb8; }
.dln-overlay__close, .dln-modal__close { position: absolute; top: 1.5rem; right: 1.75rem;
  background: none; border: 0; color: #f5f8f6; font-size: 2.5rem; line-height: 1; cursor: pointer; }
.dln-modal { position: fixed; inset: 0; z-index: 9998; background: rgba(18,58,52,.75);
  display: flex; align-items: center; justify-content: center; padding: 1.5rem;
  opacity: 0; visibility: hidden; transition: opacity .4s ease, visibility .4s; }
.dln-modal.open { opacity: 1; visibility: visible; }
.dln-modal__box { position: relative; background: #f5f8f6; max-width: 46rem; width: 100%;
  max-height: 82vh; overflow-y: auto; padding: 3.5rem clamp(1.5rem, 4vw, 3.5rem); }
.dln-modal__box h2 { font-size: 2.25rem; margin: 0 0 1.5rem; }
.dln-modal__close { color: #123a34; top: 1rem; right: 1.25rem; font-size: 2rem; }
.dln-modal__body { color: #55665f; font-weight: 300; line-height: 1.75; }
.dln-modal__body h3 { font-family: inherit; font-size: .72rem; letter-spacing: .2em;
  text-transform: uppercase; color: #256b5c; margin: 2rem 0 .6rem; }
.dln-modal__body p { margin: 0 0 1rem; }
.dln-invalid { border-bottom-color: #a9612e !important; }
body.dln-locked { overflow: hidden; }


/* ==================== multipage layer — CLINICBRAIN ==================== */
/* λείπουν από το tailwind build που κληρονομήσαμε */
.w-7 { width: 1.75rem; } .h-7 { height: 1.75rem; }
.cb-accent { color: var(--cb-accent); }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Δίχτυ ασφαλείας για οριζόντια κύλιση στο κινητό.
   Χρησιμοποιούμε clip και ΟΧΙ hidden: το hidden δημιουργεί scroll container
   και θα ακύρωνε το position:sticky σε header και πλευρική στήλη. */
body { background: var(--color-paper); overflow-x: clip; }
img, svg, iframe, video { max-width: 100%; }
img { height: auto; }
/* Τα παιδιά grid/flex έχουν min-width:auto και αρνούνται να συρρικνωθούν κάτω
   από το περιεχόμενό τους — η κλασική αιτία οριζόντιας κύλισης. */
.cb-grid-2 > *, .cb-cards > *, .cb-footer__grid > *,
.cb-facts li > *, .cb-cta-band__in > *, .cb-contact-card__row > * { min-width: 0; }

/* Μακριές συμβολοσειρές χωρίς κενά (email, διευθύνσεις) */
.cb-contact-card a, .cb-footer__list a, .cb-prose a { overflow-wrap: anywhere; }

.cb-skip { position: absolute; left: -9999px; top: 0; z-index: 10000; background: var(--cb-ink);
  color: #fff; padding: .75rem 1.25rem; font-size: .8rem; }
.cb-skip:focus { left: .5rem; top: .5rem; }
:focus-visible { outline: 2px solid var(--cb-accent); outline-offset: 3px; }

/* ---- topbar + header ---- */
.cb-topbar { background: var(--cb-ink); color: rgba(245,248,246,.78); font-size: .74rem; }
.cb-topbar__in { max-width: 96rem; margin: 0 auto; padding: .5rem 1.5rem; display: flex;
  gap: 1.5rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.cb-topbar__item { display: inline-flex; align-items: center; gap: .45rem; color: inherit;
  text-decoration: none; transition: color .3s ease; }
.cb-topbar__item:hover { color: #fff; }
.cb-topbar__item--tel { font-weight: 500; letter-spacing: .04em; }
@media (max-width: 640px) { .cb-topbar__in { justify-content: center; gap: 1rem; }
  .cb-topbar__item--hours { display: none; } }

.cb-header { position: sticky; top: 0; z-index: 50; background: rgba(245,248,246,.94);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(18,58,52,.10); padding: .85rem 0; }

/* ---- λογότυπο (τυπογραφικό lockup) ----
   Το `flex: none` είναι σκόπιμο: ως flex item σε γεμάτη σειρά, ο σύνδεσμος του
   λογοτύπου συρρικνωνόταν μέχρι να εξαφανιστεί αντί να ξεχειλίσει ορατά το
   μενού — σφάλμα που φαινόταν μόνο σε συγκεκριμένα πλάτη. */
.cb-logo { display: inline-flex; align-items: center; gap: .7rem; flex: none;
  text-decoration: none; color: var(--cb-ink); }
.cb-logo__mark { width: 2.35rem; height: 2.35rem; flex: none;
  transition: transform .5s cubic-bezier(.16,1,.3,1); }
.cb-logo:hover .cb-logo__mark { transform: rotate(-18deg); }
.cb-logo__txt { display: block; line-height: 1; }
.cb-logo__name { display: block; font-family: var(--font-serif); font-weight: 400;
  font-size: 1.45rem; letter-spacing: .01em; color: inherit; }
.cb-logo__sub { display: block; margin-top: .22rem; font-size: .53rem; letter-spacing: .3em;
  text-transform: uppercase; color: var(--cb-accent); }
/* Στο footer το lockup κάθεται πάνω σε σκούρο: το μελάνι αντιστρέφεται και το
   σήμα μεγαλώνει, γιατί εκεί υπάρχει χώρος καθ' ύψος. */
.cb-logo--footer { color: #f5f8f6; align-items: flex-start; gap: .85rem; }
.cb-logo--footer .cb-logo__mark { width: 3rem; height: 3rem; }
.cb-logo--footer .cb-logo__name { font-size: 1.7rem; }
.cb-logo--footer .cb-logo__sub { color: var(--cb-mist); }
@media (max-width: 480px) {
  .cb-logo__mark { width: 2rem; height: 2rem; }
  .cb-logo__name { font-size: 1.22rem; }
  .cb-logo__sub { font-size: .48rem; letter-spacing: .24em; }
}
@media (prefers-reduced-motion: reduce) { .cb-logo__mark { transition: none; }
  .cb-logo:hover .cb-logo__mark { transform: none; } }

.cb-nav { display: flex; gap: 1.6rem; }
.cb-nav__link { font-size: .68rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--cb-ink); text-decoration: none; padding-bottom: .3rem; position: relative;
  white-space: nowrap; transition: color .3s ease; }
.cb-nav__link::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0;
  background: var(--cb-accent); transition: width .35s ease; }
.cb-nav__link:hover { color: var(--cb-accent); }
.cb-nav__link:hover::after, .cb-nav__link.is-active::after { width: 100%; }
.cb-nav__link.is-active { color: var(--cb-accent); }
.cb-burger { color: var(--cb-ink); background: none; border: 0; cursor: pointer; padding: .25rem; }

/* ---- υπομενού «Υπηρεσίες» ----
   Ανοίγει με hover και με πληκτρολόγιο (:focus-within), χωρίς JavaScript.
   Το «Υπηρεσίες» παραμένει κανονικός σύνδεσμος: σε οθόνη αφής, όπου δεν
   υπάρχει hover, το πάτημα οδηγεί στη σελίδα-hub που τα περιέχει όλα. */
.cb-nav { align-items: center; }
.cb-nav__item { position: relative; display: inline-flex; align-items: center; }
.cb-nav__item > .cb-nav__link { display: inline-flex; align-items: center; gap: .3rem; }
.cb-nav__caret { width: .75rem; height: .75rem; transition: transform .3s ease; }
.cb-nav__item:hover .cb-nav__caret,
.cb-nav__item:focus-within .cb-nav__caret { transform: rotate(180deg); }

.cb-nav__drop { position: absolute; top: 100%; left: 50%; z-index: 60;
  /* το padding-top είναι γέφυρα: κρατά το hover ενεργό όσο το ποντίκι
     διασχίζει το κενό ανάμεσα στον σύνδεσμο και στο πάνελ */
  padding-top: 1.35rem; transform: translate(-50%, 10px);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .3s ease, transform .3s cubic-bezier(.16,1,.3,1), visibility .3s; }
.cb-nav__item:hover > .cb-nav__drop,
.cb-nav__item:focus-within > .cb-nav__drop {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }

.cb-nav__drop__in { display: block; min-width: 23rem; background: #fff;
  border: 1px solid rgba(18,58,52,.1); border-radius: 4px; padding: .55rem;
  box-shadow: 0 28px 60px -32px rgba(18,58,52,.5); }
.cb-nav__drop a { display: flex; gap: .8rem; align-items: flex-start; padding: .7rem .8rem;
  border-radius: 3px; text-decoration: none; transition: background-color .25s ease; }
.cb-nav__drop a:hover { background: rgba(37,107,92,.08); }
.cb-nav__drop a > svg { width: 1.15rem; height: 1.15rem; color: var(--cb-accent);
  flex-shrink: 0; margin-top: .15rem; }
.cb-nav__dt { display: block; font-family: var(--font-serif); font-size: 1.02rem;
  line-height: 1.25; color: var(--cb-ink); letter-spacing: 0; text-transform: none; }
.cb-nav__dd { display: block; margin-top: .15rem; font-size: .7rem; font-weight: 300;
  letter-spacing: .04em; color: var(--cb-muted); }
.cb-nav__drop__all { justify-content: space-between; align-items: center !important;
  margin-top: .3rem; border-top: 1px solid rgba(18,58,52,.09); border-radius: 0 0 3px 3px;
  font-size: .62rem; letter-spacing: .2em; color: var(--cb-accent); }
.cb-nav__drop__all span:last-child { transition: transform .3s ease; }
.cb-nav__drop__all:hover span:last-child { transform: translateX(5px); }

/* Το οριζόντιο μενού ξεκινά πλέον στα 1280px και όχι στα 1024: με τις τρεις
   θεραπείες στο πρώτο επίπεδο οι ετικέτες έγιναν επτά, και σε tablet έσπαγαν
   σε δεύτερη γραμμή. Κάτω από αυτό το πλάτος αναλαμβάνει το overlay μενού,
   που τις δείχνει ούτως ή άλλως όλες. */
.xl\:flex { display: none; }
.xl\:hidden { display: block; }
@media (min-width: 1280px) {
  .xl\:flex { display: flex; }
  .xl\:hidden { display: none; }
}
/* Ως τα 1600 οι επτά ετικέτες συν το κουμπί ραντεβού θέλουν σφίξιμο για να
   μείνουν σε μία γραμμή με το λογότυπο. Στα 1440 με κανονικά μεγέθη η σειρά
   ξεχείλιζε και το λογότυπο συνθλιβόταν στο μηδέν. */
@media (min-width: 1280px) and (max-width: 1599px) {
  .cb-navbar { gap: 1.35rem; }
  .cb-nav { gap: .95rem; }
  .cb-nav__link { font-size: .6rem; letter-spacing: .09em; }
  .cb-logo__name { font-size: 1.2rem; }
  .cb-logo__mark { width: 2rem; height: 2rem; }
  .cb-logo__sub { font-size: .48rem; letter-spacing: .2em; }
  .cb-btn--sm { padding: .65rem .95rem; font-size: .58rem; letter-spacing: .12em; }
}

/* Κοντά στο όριο του lg το κεντραρισμένο πάνελ θα ξέφευγε δεξιά από την οθόνη·
   εκεί το στοιχίζουμε στο δεξί άκρο του συνδέσμου. */
@media (max-width: 1200px) {
  .cb-nav__drop { left: auto; right: 0; transform: translate(0, 10px); }
  .cb-nav__item:hover > .cb-nav__drop,
  .cb-nav__item:focus-within > .cb-nav__drop { transform: translate(0, 0); }
  .cb-nav__drop__in { min-width: 21rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cb-nav__drop, .cb-nav__caret { transition: none; }
}

/* ---- κουμπιά ---- */
.cb-btn { display: inline-flex; align-items: center; gap: .75rem; padding: 1.05rem 2rem;
  font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; text-decoration: none;
  border: 1px solid transparent; border-radius: 2px; cursor: pointer; transition: all .4s ease;
  background: var(--cb-accent); color: #fff; }
.cb-btn:hover { background: var(--cb-ink); color: #fff; }
.cb-btn--sm { padding: .7rem 1.25rem; font-size: .64rem; }
.cb-btn--dark { background: var(--cb-ink); }
.cb-btn--dark:hover { background: var(--cb-accent); }
.cb-btn--light { background: #f5f8f6; color: var(--cb-ink); }
.cb-btn--light:hover { background: #fff; color: var(--cb-ink); }
.cb-btn--outline { background: transparent; color: #f5f8f6; border-color: rgba(245,248,246,.45); }
.cb-btn--outline:hover { background: #f5f8f6; color: var(--cb-ink); border-color: #f5f8f6; }
.cb-btn--ghost { background: transparent; color: var(--cb-ink); border-color: rgba(18,58,52,.22); }
.cb-btn--ghost:hover { background: var(--cb-ink); color: #fff; }
.cb-btn[disabled] { opacity: .55; cursor: progress; }
.cb-btn__arrow { transition: transform .3s ease; }
.cb-btn:hover .cb-btn__arrow { transform: translateX(6px); }

/* ---- overlay μενού ---- */
.dln-overlay__nav { max-height: 88vh; overflow-y: auto; padding: 2rem 1.5rem; }
.dln-overlay__sep { display: block; margin: 1.75rem 0 .5rem; font-size: .62rem; letter-spacing: .28em;
  text-transform: uppercase; color: var(--cb-mist); }
.dln-overlay__sub { display: flex; flex-direction: column; gap: .55rem; }
.dln-overlay__sub a { font-family: var(--font-sans); font-size: .95rem; color: rgba(245,248,246,.75); }
.dln-overlay__tel { margin-top: 2rem; font-family: var(--font-sans) !important; font-size: 1.1rem !important;
  letter-spacing: .12em; border: 1px solid rgba(245,248,246,.35); padding: .8rem 1.6rem; }

/* ---- hero αρχικής ---- */
.cb-hero { position: relative; overflow: hidden; min-height: 88vh; display: flex; align-items: flex-end;
  background: linear-gradient(160deg,#0e2e28 0%,#1c4c42 48%,#123830 100%); color: #f5f8f6;
  padding: 7rem 0 6rem; }
.cb-hero__bg { position: absolute; inset: 0; }
.cb-hero__in { max-width: 54rem; }
.cb-hero__h1 { font-family: var(--font-serif); font-weight: 300; letter-spacing: -.02em;
  font-size: clamp(1.9rem, 4.6vw, 3.3rem); line-height: 1.16; margin: 1.1rem 0 1.75rem;
  text-shadow: 0 2px 24px rgba(8,20,17,.65), 0 1px 4px rgba(8,20,17,.4); }
.cb-hero__lede { max-width: 46rem; font-weight: 300; font-size: 1.08rem; line-height: 1.8;
  color: rgba(245,248,246,.92); text-shadow: 0 1px 12px rgba(8,20,17,.7); }
.cb-hero__actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2.5rem; }
.cb-hero .cb-eyebrow--light { text-shadow: 0 1px 10px rgba(8,20,17,.75); }
.cb-hero__cue { position: absolute; left: 50%; transform: translateX(-50%); bottom: 1.4rem; z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: .4rem;
  font-size: .58rem; letter-spacing: .3em; color: rgba(245,248,246,.5); }
@media (max-width: 640px) { .cb-hero { min-height: 78vh; padding: 4.5rem 0 5rem; } .cb-hero__cue { display: none; } }
/* Ο τίτλος σπάει στο κόμμα μόνο όσο το πρώτο ημιστίχιο χωράει σε μία γραμμή.
   Πιο κάτω από αυτό, η επιβολή της αλλαγής άφηνε ορφανό το «κατανόηση,» —
   οπότε το <br> κρύβεται και το σπάσιμο το αναλαμβάνει το text-wrap. */
@media (max-width: 1023px) {
  .cb-hero__br { display: none; }
  .cb-hero__h1 { text-wrap: balance; }
}

/* ---- η φωτογραφία πίσω από το hero ----
   Πήρε τη θέση του διακοσμητικού μαντάλα. Δεν είναι background-image αλλά <img>:
   έτσι φορτώνει με προτεραιότητα (fetchpriority) και μετράει ως το LCP στοιχείο,
   αντί να περιμένει το CSS. Το `object-position` κρατά το πρόσωπο στο κάδρο όταν
   το cover κόβει — καθ' ύψος σε πλατιά οθόνη, πλάγια σε κινητό. */
.cb-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 46%; }
/* Η φωτογραφία μένει στα χρώματά της: το πέπλο είναι ουδέτερο σκούρο, όχι μωβ,
   και υπάρχει μόνο όσο χρειάζεται για να διαβάζεται το λευκό κείμενο —
   μία βαθμίδα καθ' ύψος για τα κουμπιά κάτω, μία πλάγια για τον τίτλο αριστερά. */
/* Οι τιμές είναι δεμένες με τη ΣΥΓΚΕΚΡΙΜΕΝΗ λήψη: το γραφείο έχει λευκούς
   τοίχους και ανοιχτό ξύλο, δηλαδή είναι φωτεινό εκεί ακριβώς όπου κάθεται το
   λευκό κείμενο. Μετρήθηκε αντίθεση ≥4.5:1 στην περιοχή του τίτλου και της
   παραγράφου· αν αλλάξει η φωτογραφία, ξαναμετρήστε. */
.cb-hero__scrim { position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8,20,17,.34) 0%, rgba(8,20,17,.14) 30%, rgba(8,20,17,.78) 100%),
              linear-gradient(96deg, rgba(8,20,17,.78) 0%, rgba(8,20,17,.46) 46%, rgba(8,20,17,.10) 82%, rgba(8,20,17,0) 100%); }
@media (max-width: 900px) {
  .cb-hero__photo { object-position: 54% 38%; }
  /* Σε κινητό ο τίτλος δεν έχει πού αλλού να πάει παρά πάνω στη φωτογραφία,
     οπότε εδώ το πέπλο μένει πιο κλειστό απ' ό,τι σε πλατιά οθόνη. */
  .cb-hero__scrim { background: linear-gradient(180deg, rgba(8,20,17,.50) 0%, rgba(8,20,17,.42) 26%, rgba(8,20,17,.86) 100%); }
}

/* ---- εσωτερικό hero ---- */
.cb-page-hero { position: relative; overflow: hidden;
  background: linear-gradient(160deg,#0e2e28 0%,#1c4c42 52%,#123830 100%);
  color: #f5f8f6; padding: 5.5rem 0 4.5rem; }
.cb-page-hero__bg { position: absolute; inset: 0; }
.cb-page-hero__h1 { font-family: var(--font-serif); font-weight: 300; letter-spacing: -.02em;
  font-size: clamp(2.1rem, 5.2vw, 3.6rem); line-height: 1.1; margin: .5rem 0 1rem; max-width: 22ch; }
.cb-page-hero__lede { max-width: 60ch; font-weight: 300; line-height: 1.75; color: rgba(245,248,246,.78);
  font-size: 1.05rem; }
.cb-eyebrow { display: inline-block; font-size: .66rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--cb-accent); border-left: 2px solid currentColor; padding-left: .85rem; }
.cb-eyebrow--light { color: var(--cb-mist); }

/* ---- ψίχουλα ---- */
.cb-crumbs { margin-bottom: 1.6rem; }
.cb-crumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0;
  font-size: .7rem; letter-spacing: .1em; color: rgba(245,248,246,.6); }
.cb-crumbs li + li::before { content: "/"; margin-right: .4rem; opacity: .5; }
.cb-crumbs a { color: inherit; text-decoration: none; }
.cb-crumbs a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ---- γιγαντιαία γράμματα στο βάθος (κινούνται με το scroll) ---- */
.cb-marq { position: absolute; left: 0; width: 100%; z-index: 0; display: flex;
  overflow: hidden; white-space: nowrap; pointer-events: none; user-select: none;
  opacity: .045; }
.cb-marq--dark { opacity: .05; }
.cb-marq__track { display: flex; gap: 4rem; font-family: var(--font-serif); font-weight: 300;
  font-size: 20vw; line-height: .92; text-transform: uppercase; letter-spacing: -.05em;
  color: var(--cb-ink); will-change: transform; }
.cb-marq--dark .cb-marq__track { color: #f5f8f6; }
@media (max-width: 768px) { .cb-marq__track { font-size: 30vw; } }
@media (prefers-reduced-motion: reduce) { .cb-marq__track { transform: none !important; } }

/* Μόνο οι ενότητες με αυτή την κλάση ψαλιδίζουν — το overflow:hidden θα
   ακύρωνε το position:sticky της πλευρικής στήλης στις υπόλοιπες. */
.cb-section--marq { position: relative; overflow: hidden; }
.cb-section--marq > .container { position: relative; z-index: 10; }

.cb-footer { position: relative; overflow: hidden; }
.cb-footer__loop { position: absolute; inset: 0; z-index: 0; opacity: .045;
  display: flex; flex-direction: column; justify-content: center; gap: 2rem;
  overflow: hidden; white-space: nowrap; pointer-events: none; user-select: none; }
.cb-footer__loop > div { font-family: var(--font-serif); font-weight: 300; font-size: 15vw;
  line-height: 1; text-transform: uppercase; letter-spacing: -.05em; color: #f5f8f6; }

/* ---- τυπογραφία άρθρου ---- */
.cb-section { padding: 5.5rem 0; }
.cb-section--tight { padding: 4rem 0; }
.cb-section--beige { background: var(--color-mist); }
.cb-section--dark { background: var(--cb-ink); color: #f5f8f6; }
.cb-h2 { font-family: var(--font-serif); font-weight: 300; letter-spacing: -.02em;
  font-size: clamp(1.85rem, 4vw, 2.9rem); line-height: 1.15; color: var(--cb-ink); margin: .6rem 0 1.1rem; }
.cb-section--dark .cb-h2 { color: #f5f8f6; }
.cb-h3 { font-family: var(--font-serif); font-weight: 400; font-size: 1.45rem; color: var(--cb-ink);
  margin: 2.4rem 0 .7rem; }
.cb-lede { font-size: 1.1rem; font-weight: 300; line-height: 1.8; color: var(--cb-muted); max-width: 62ch; }
.cb-prose { font-weight: 300; line-height: 1.85; color: var(--cb-muted); max-width: 68ch; }
.cb-prose p { margin: 0 0 1.15rem; }
.cb-prose strong { font-weight: 500; color: var(--cb-ink); }
.cb-prose a { color: var(--cb-accent); text-decoration: underline; text-underline-offset: 3px; }
.cb-prose ul, .cb-prose ol { margin: 0 0 1.4rem; padding-left: 0; list-style: none; }
.cb-prose ul li { position: relative; padding-left: 1.6rem; margin-bottom: .6rem; }
.cb-prose ul li::before { content: ""; position: absolute; left: .25rem; top: .72em; width: 6px; height: 6px;
  border-radius: 50%; background: var(--cb-accent); }
.cb-prose ol { counter-reset: cb; }
.cb-prose ol li { position: relative; padding-left: 2rem; margin-bottom: .6rem; counter-increment: cb; }
.cb-prose ol li::before { content: counter(cb); position: absolute; left: 0; top: 0;
  font-size: .72rem; letter-spacing: .1em; color: var(--cb-accent); padding-top: .35em; }
.cb-prose h3 { font-family: var(--font-serif); font-weight: 400; font-size: 1.35rem;
  color: var(--cb-ink); margin: 2rem 0 .6rem; }
.cb-grid-2 { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .cb-grid-2 { grid-template-columns: 1fr 1fr; gap: 4.5rem; align-items: start; } }
@media (min-width: 1024px) { .cb-grid-2--aside { grid-template-columns: minmax(0,1.55fr) minmax(0,1fr); } }

/* ---- κάρτες ---- */
.cb-cards { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .cb-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cb-cards--3 { grid-template-columns: repeat(3, 1fr); } }
.cb-card { display: flex; flex-direction: column; gap: .85rem; padding: 2rem 1.75rem;
  background: #fff; border: 1px solid rgba(18,58,52,.08); border-radius: 4px; text-decoration: none;
  transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease; }
.cb-card:hover { transform: translateY(-4px); border-color: rgba(37,107,92,.4);
  box-shadow: 0 18px 40px -24px rgba(18,58,52,.4); }
.cb-card__ic { color: var(--cb-accent); }
.cb-card__t { font-family: var(--font-serif); font-size: 1.3rem; color: var(--cb-ink); line-height: 1.25; }
.cb-card__d { font-size: .9rem; font-weight: 300; line-height: 1.65; color: var(--cb-muted); }
.cb-card__more { margin-top: auto; padding-top: .6rem; font-size: .66rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--cb-accent); }
.cb-card__more span { display: inline-block; transition: transform .3s ease; }
.cb-card:hover .cb-card__more span { transform: translateX(5px); }

/* ---- κάρτες υπηρεσίας, με τη φωτογραφία της κατηγορίας ----
   Η εικόνα πιάνει όλο το πλάτος, οπότε η κάρτα χάνει το padding της και το
   ξαναδίνει στα κειμενικά της παιδιά. Το `overflow:hidden` χρειάζεται για να
   κοπεί η εικόνα στη γωνία της κάρτας και για να μη βγει έξω στο zoom. */
.cb-card--photo { padding: 0 0 1.9rem; gap: .8rem; overflow: hidden; }
.cb-card--photo > :not(.cb-card__media) { margin-left: 1.75rem; margin-right: 1.75rem; }
.cb-card__media { position: relative; display: block; margin-bottom: .5rem;
  aspect-ratio: 16 / 10; background: rgba(18,58,52,.06); overflow: hidden; }
.cb-card__media img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .7s cubic-bezier(.2,.6,.2,1); }
.cb-card:hover .cb-card__media img { transform: scale(1.045); }
/* Σκίαση μόνο στο κάτω μέρος, ώστε το μετάλλιο του εικονιδίου να ξεχωρίζει από
   ό,τι κι αν τύχει να έχει η φωτογραφία από κάτω. */
.cb-card__media::after { content: ""; position: absolute; inset: auto 0 0 0; height: 42%;
  background: linear-gradient(to top, rgba(18,58,52,.34), rgba(18,58,52,0)); }
.cb-card--photo .cb-card__ic { position: absolute; left: 1.1rem; bottom: .95rem; z-index: 1;
  display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 50%;
  background: rgba(255,255,255,.95); box-shadow: 0 8px 22px -10px rgba(18,58,52,.7); }
.cb-card--photo .cb-card__ic svg { width: 1.4rem; height: 1.4rem; }
@media (prefers-reduced-motion: reduce) { .cb-card__media img { transition: none; }
  .cb-card:hover .cb-card__media img { transform: none; } }

/* ---- πλευρική στήλη ---- */
.cb-aside { position: sticky; top: 6.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
.cb-contact-card { background: #fff; border: 1px solid rgba(18,58,52,.09); border-radius: 4px;
  padding: 1.9rem 1.7rem; display: flex; flex-direction: column; gap: 1.35rem; }
.cb-contact-card__row { display: flex; gap: .85rem; align-items: flex-start; font-weight: 300;
  color: var(--cb-ink); font-size: .95rem; }
.cb-contact-card__row a { color: inherit; text-decoration: none; }
.cb-contact-card__row a:hover { color: var(--cb-accent); text-decoration: underline; text-underline-offset: 3px; }
.cb-contact-card__k { display: block; font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--cb-accent); margin-bottom: .3rem; }
.cb-open-badge { display: inline-block; font-size: .58rem; letter-spacing: .14em; text-transform: uppercase;
  padding: .12rem .5rem; border-radius: 999px; vertical-align: middle; }
.cb-open-badge.is-open { background: rgba(37,107,92,.16); color: #1e5a4d; }
.cb-open-badge.is-closed { background: rgba(18,58,52,.09); color: var(--cb-muted); }
.cb-topbar .cb-open-badge.is-open { color: #8fcbb8; background: rgba(143,203,184,.14); }
.cb-topbar .cb-open-badge.is-closed { color: rgba(245,248,246,.7); background: rgba(245,248,246,.1); }

/* ---- πλαίσιο Νοηματικής ---- */
.cb-access { display: flex; gap: 1rem; align-items: flex-start; padding: 1.35rem 1.5rem;
  background: rgba(37,107,92,.07); border: 1px solid rgba(37,107,92,.22); border-radius: 4px; }
.cb-access__ic { width: 1.75rem; height: 1.75rem; color: var(--cb-accent); flex-shrink: 0; }
.cb-access strong { display: block; font-weight: 500; color: var(--cb-ink); font-size: .95rem; }
.cb-access span { display: block; margin-top: .25rem; font-weight: 300; font-size: .85rem;
  line-height: 1.6; color: var(--cb-muted); }
.cb-section--dark .cb-access { background: rgba(143,203,184,.08); border-color: rgba(143,203,184,.25); }
.cb-section--dark .cb-access__ic { color: var(--cb-mist); }
.cb-section--dark .cb-access strong { color: #f5f8f6; }
.cb-section--dark .cb-access span { color: rgba(245,248,246,.65); }

/* ---- πίνακας γρήγορων στοιχείων ---- */
.cb-facts { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(18,58,52,.12); }
.cb-facts li { display: grid; grid-template-columns: 1fr; gap: .2rem; padding: .95rem 0;
  border-bottom: 1px solid rgba(18,58,52,.12); font-weight: 300; color: var(--cb-muted); }
@media (min-width: 480px) { .cb-facts li { grid-template-columns: 10.5rem 1fr; gap: 1rem; align-items: baseline; } }
.cb-facts b { font-weight: 400; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--cb-accent); }

/* ---- χρονολόγιο βιογραφικού ---- */
.cb-time { list-style: none; margin: 2rem 0 0; padding: 0 0 0 1.6rem;
  border-left: 1px solid rgba(18,58,52,.14); }
.cb-time li { position: relative; padding-bottom: 2rem; }
.cb-time li::before { content: ""; position: absolute; left: -1.98rem; top: .45rem; width: 9px; height: 9px;
  border-radius: 50%; background: var(--color-paper); border: 1.5px solid var(--cb-accent); }
.cb-time__k { display: block; font-size: .66rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--cb-accent); margin-bottom: .35rem; }
.cb-time__t { display: block; font-family: var(--font-serif); font-size: 1.35rem; line-height: 1.3;
  color: var(--cb-ink); }
.cb-time__d { display: block; margin-top: .5rem; font-weight: 300; line-height: 1.8;
  color: var(--cb-muted); max-width: 62ch; }
.cb-section--beige .cb-time li::before { background: var(--color-mist); }

/* ---- απλή λίστα (επιμόρφωση / ομιλίες) ---- */
.cb-list { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.cb-list li { display: grid; grid-template-columns: 1fr; gap: .15rem; padding: .8rem 0;
  border-bottom: 1px solid rgba(18,58,52,.1); font-weight: 300; color: var(--cb-muted); font-size: .95rem; }
/* «2014 — σήμερα» χρειάζεται περισσότερο χώρο από ένα σκέτο έτος */
@media (min-width: 560px) { .cb-list li { grid-template-columns: 8rem 1fr; gap: 1.25rem; align-items: baseline; } }
.cb-list b { font-weight: 400; font-size: .7rem; letter-spacing: .14em; color: var(--cb-accent); }
.cb-list em { font-style: normal; display: block; font-size: .82rem; opacity: .78; margin-top: .15rem; }

/* ---- CTA band ---- */
.cb-cta-band { background: linear-gradient(135deg,#14352f 0%,#1e5a4d 100%); color: #f5f8f6; padding: 3.5rem 0; }
.cb-cta-band__in { display: flex; flex-direction: column; gap: 1.75rem; align-items: flex-start;
  justify-content: space-between; }
@media (min-width: 900px) { .cb-cta-band__in { flex-direction: row; align-items: center; } }
.cb-cta-band__title { font-family: var(--font-serif); font-weight: 300; font-size: clamp(1.6rem,3.2vw,2.3rem); }
.cb-cta-band__lede { font-weight: 300; color: rgba(245,248,246,.75); margin-top: .4rem; }
.cb-cta-band__actions { display: flex; flex-wrap: wrap; gap: .9rem; }

/* ---- online ραντεβού (Calendly) ---- */
/* ---- φόρμα επικοινωνίας ----
   Αντικατέστησε το πλαίσιο «κλείστε ραντεβού τηλεφωνικά»: η πελάτισσα ζήτησε
   απλή φόρμα, χωρίς ατζέντα και χωρίς σύνθετο ερωτηματολόγιο. */
.cb-form-wrap { background: #fff; border: 1px solid rgba(18,58,52,.09); border-radius: 4px;
  padding: 1.6rem; box-shadow: 0 24px 60px -44px rgba(18,58,52,.5); }
@media (min-width: 768px) { .cb-form-wrap { padding: 2.1rem; } }
.cb-form__lede { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 300;
  line-height: 1.6; color: var(--cb-ink); margin: 0 0 1.6rem; max-width: 44ch; }
.cb-form { display: flex; flex-direction: column; gap: 1.05rem; }
.cb-form__row { display: grid; grid-template-columns: 1fr; gap: 1.05rem; }
@media (min-width: 620px) { .cb-form__row { grid-template-columns: 1fr 1fr; } }
.cb-field { display: flex; flex-direction: column; gap: .4rem; }
.cb-field > span { font-size: .68rem; letter-spacing: .17em; text-transform: uppercase;
  color: var(--cb-muted); }
.cb-field > span em { color: var(--cb-accent); font-style: normal; }
.cb-field > span i { font-style: normal; text-transform: none; letter-spacing: .04em;
  opacity: .7; font-size: .72rem; }
.cb-field input, .cb-field textarea { width: 100%; font: inherit; font-weight: 300;
  color: var(--cb-ink); background: rgba(18,58,52,.03); border: 1px solid rgba(18,58,52,.14);
  border-radius: 3px; padding: .8rem .9rem; transition: border-color .2s ease, background-color .2s ease; }
.cb-field textarea { resize: vertical; min-height: 8rem; line-height: 1.65; }
.cb-field input:focus, .cb-field textarea:focus { outline: none; background: #fff;
  border-color: var(--cb-accent); box-shadow: 0 0 0 3px rgba(37,107,92,.16); }
/* Το :user-invalid δείχνει σφάλμα μόνο αφού ασχοληθεί ο χρήστης με το πεδίο —
   σε αντίθεση με το :invalid, που θα έβαφε κόκκινη όλη τη φόρμα στο φόρτωμα. */
.cb-field input:user-invalid, .cb-field textarea:user-invalid { border-color: #c0392b;
  background: rgba(192,57,43,.04); }
.cb-check { display: flex; gap: .7rem; align-items: flex-start; font-size: .82rem;
  font-weight: 300; line-height: 1.6; color: var(--cb-muted); }
.cb-check input { margin-top: .18rem; width: 1.05rem; height: 1.05rem; flex: none;
  accent-color: var(--cb-accent); }
.cb-check a { color: var(--cb-deep); font-weight: 500; }
.cb-form button[type=submit] { align-self: flex-start; justify-content: center; }
.cb-form__status { margin: 0; font-size: .85rem; font-weight: 300; line-height: 1.6; }
.cb-form__status[data-state="ok"] { color: #1e7d44; }
.cb-form__status[data-state="error"] { color: #c0392b; }
.cb-form__note { margin: 1.4rem 0 0; padding-top: 1.2rem; border-top: 1px solid rgba(18,58,52,.1);
  font-size: .78rem; font-weight: 300; line-height: 1.7; color: var(--cb-muted); }
.cb-form__note a { color: var(--cb-deep); font-weight: 500; }

/* ---- περιοχές εξυπηρέτησης ---- */
.cb-areas__h { font-family: var(--font-serif); font-size: 1.35rem; font-weight: 300;
  color: var(--cb-ink); margin: 2.2rem 0 .6rem; }
.cb-areas__h:first-child { margin-top: 0; }
.cb-areas__d { font-weight: 300; line-height: 1.7; color: var(--cb-muted); margin: 0 0 .9rem; }
.cb-area-list { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.4rem; }
.cb-area { font-size: .8rem; font-weight: 300; color: var(--cb-muted);
  border: 1px solid rgba(18,58,52,.12); border-radius: 999px; padding: .34rem .8rem; }
/* Οι όμορες περιοχές ξεχωρίζουν: εκεί η εγγύτητα είναι πραγματικό κριτήριο. */
.cb-area--near { color: var(--cb-deep); border-color: rgba(37,107,92,.3);
  background: rgba(37,107,92,.05); }

/* ---- footer ---- */
.cb-footer { background: var(--cb-ink); color: rgba(245,248,246,.7); padding: 4.5rem 0 2rem;
  font-weight: 300; font-size: .9rem; }
.cb-footer__grid { display: grid; grid-template-columns: 1fr; gap: 2.75rem; }
@media (min-width: 640px) { .cb-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cb-footer__grid { grid-template-columns: 1.4fr 1fr 1.2fr 1.4fr; gap: 3rem; } }
.cb-footer__col { min-width: 0; }
.cb-footer__col--brand { max-width: 34ch; }
/* Κάτω από το σήμα στο footer, το σλόγκαν παίζει τον ρόλο του υπότιτλου του
   λογοτύπου — γι' αυτό πιο κοντά του απ' ό,τι το περιγραφικό κείμενο. */
.cb-footer__slogan { font-family: var(--font-serif); font-style: italic; font-weight: 300;
  font-size: 1.02rem; line-height: 1.55; max-width: 32ch; margin: 1.1rem 0 0;
  text-wrap: balance; color: rgba(245,248,246,.9); }
/* ---- σήματα κοινωνικών δικτύων ----
   Τα εικονίδια φέρουν τα δικά τους χρώματα, οπότε ο κύκλος από κάτω μένει
   ουδέτερος· στο σκούρο footer γίνεται λευκός για να μη «βουλιάζουν». */
/* ---- διακόπτης γλώσσας ---- */
.cb-lang { display: inline-grid; place-items: center; min-width: 2.4rem; height: 2.1rem;
  padding: 0 .55rem; border: 1px solid rgba(18,58,52,.18); border-radius: 999px;
  font-size: .68rem; letter-spacing: .14em; font-weight: 500; color: var(--cb-deep);
  text-decoration: none; transition: background-color .25s ease, border-color .25s ease; }
.cb-lang:hover { background: rgba(37,107,92,.08); border-color: rgba(37,107,92,.4); }
.dln-overlay__lang { display: inline-block; margin-top: 1rem; padding: .55rem 1.1rem;
  border: 1px solid rgba(245,248,246,.35); border-radius: 999px; color: rgba(245,248,246,.85);
  font-size: .72rem; letter-spacing: .18em; text-decoration: none; }

.cb-socials { display: inline-flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
.cb-socials__a { display: grid; place-items: center; width: 2.4rem; height: 2.4rem;
  border-radius: 50%; background: rgba(18,58,52,.05); text-decoration: none;
  transition: transform .25s ease, background-color .25s ease; }
.cb-socials__a svg { width: 1.35rem; height: 1.35rem; display: block; }
.cb-socials__a:hover { transform: translateY(-2px); background: rgba(18,58,52,.1); }
.cb-socials--footer { margin-top: 1.35rem; }
.cb-socials--footer .cb-socials__a { background: rgba(245,248,246,.92); }
.cb-socials--footer .cb-socials__a:hover { background: #fff; }
@media (prefers-reduced-motion: reduce) { .cb-socials__a { transition: none; }
  .cb-socials__a:hover { transform: none; } }

/* ---- διαπιστευτήρια στο footer ----
   Δεν υπάρχει σήμα φορέα πιστοποίησης· στη θέση του μπαίνουν τα ίδια τα
   τυπικά προσόντα, ως διακριτικές ετικέτες. Είναι το πρώτο που ελέγχει
   όποιος διαλέγει ψυχολόγο, οπότε αξίζουν θέση στο footer κάθε σελίδας. */
.cb-cred { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.cb-cred li { font-size: .68rem; letter-spacing: .05em; line-height: 1.5;
  padding: .35rem .7rem; border: 1px solid rgba(245,248,246,.22); border-radius: 99px;
  color: rgba(245,248,246,.72); }

/* Οι ηλικιακές ομάδες κρέμονται οπτικά από την καρτέλα τους. */
.cb-footer__sub { padding-left: .9rem; font-size: .84rem; opacity: .78; }

.cb-footer__tag { margin: 1.25rem 0 0; max-width: 32ch; line-height: 1.7; color: rgba(245,248,246,.55); }
.cb-footer__tag--sign { margin-top: .7rem; margin-bottom: 1.5rem; color: var(--cb-mist); }
.cb-footer__h { font-size: .64rem; letter-spacing: .24em; text-transform: uppercase;
  color: var(--cb-mist); margin-bottom: 1.1rem; font-weight: 500; }
.cb-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.cb-footer__list a { color: inherit; text-decoration: none; transition: color .3s ease; }
.cb-footer__list a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.cb-footer__list--contact { gap: .75rem; }
.cb-footer__hours { margin-top: 1.1rem; font-size: .8rem; line-height: 1.7; color: rgba(245,248,246,.5); }
.cb-footer__areas { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(245,248,246,.1);
  font-size: .8rem; line-height: 1.8; color: rgba(245,248,246,.5); }
.cb-footer__areas strong { color: rgba(245,248,246,.75); font-weight: 500; }
.cb-footer__bottom { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(245,248,246,.1);
  display: flex; flex-wrap: wrap; gap: .7rem 1.75rem; align-items: center; justify-content: space-between;
  font-size: .74rem; }
.cb-footer__legal { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.cb-footer__legal a { color: inherit; text-decoration: none; }
.cb-footer__legal a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* Το αιωρούμενο κουμπί κλήσης είναι position:fixed κάτω δεξιά και, στο τέρμα
   της σελίδας, κάθεται πάνω στην τελευταία γραμμή του footer — έκρυβε το
   «Made by CLINICBRAIN» και τον «Χάρτη ιστότοπου».
   Το λύνουμε με κατακόρυφο κενό αντί για οριζόντιο: το κουμπί πιάνει τα κάτω
   ~70px του παραθύρου, οπότε ο footer κρατά τόσο κενό από κάτω. Δουλεύει σε
   κάθε πλάτος, χωρίς να πειράζει τη στοίχιση της γραμμής. */
.cb-footer { padding-bottom: 6.5rem; }

/* Ο σύνδεσμος Facebook: το μπλε της πλατφόρμας δεν ανήκει στην παλέτα
   (άσπρο–μαύρο–γκρι–μέντα), οπότε κρατάμε μόνο το σχήμα. */
.cb-fb { background: transparent; border: 1px solid rgba(245,248,246,.28);
  color: rgba(245,248,246,.8); font-size: .62rem; letter-spacing: .2em; padding: .7rem 1.2rem; }
.cb-fb:hover { background: rgba(143,203,184,.12); border-color: var(--cb-mist);
  color: #fff; transform: translateY(-2px); }

/* ---- floating call ---- */
.cb-fab { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 45; display: inline-flex;
  align-items: center; gap: .6rem; padding: .95rem 1.4rem; border-radius: 999px; background: var(--cb-deep);
  color: #fff; text-decoration: none; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase;
  box-shadow: 0 14px 30px -14px rgba(23,73,63,.75); transition: transform .3s ease, background-color .3s ease; }
.cb-fab:hover { transform: translateY(-3px); background: var(--cb-ink); }
@media (max-width: 480px) { .cb-fab span { display: none; } .cb-fab { padding: 1rem; } }

/* ---- εμφάνιση στο scroll ---- */
[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s cubic-bezier(.16,1,.3,1); }
[data-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity: 1; transform: none; transition: none; } }

/* ---- διάφορα ---- */
.cb-note { border-left: 3px solid var(--cb-accent); background: rgba(37,107,92,.06);
  padding: 1.25rem 1.5rem; font-weight: 300; line-height: 1.75; color: var(--cb-muted); margin: 2rem 0;
  border-radius: 0 3px 3px 0; }
.cb-note--alert { border-color: var(--cb-ink); background: rgba(18,58,52,.05); }
.cb-note strong { color: var(--cb-ink); font-weight: 500; }
.cb-figure { margin: 0; }
.cb-figure img { width: 100%; display: block; border-radius: 4px; }
.cb-figure figcaption { margin-top: .7rem; font-size: .75rem; color: var(--cb-muted); font-weight: 300; }
/* Η φωτογραφία της υπηρεσίας, πάνω από την περιγραφή της. Δύο σε σειρά μόνο
   όπου η κατηγορία στεγάζει δύο μεθόδους — και μόνο εφόσον υπάρχει πλάτος. */
.cb-figs { display: grid; gap: 1.25rem; margin: 0 0 2.5rem; }
@media (min-width: 700px) { .cb-figs--2 { grid-template-columns: 1fr 1fr; } }
.cb-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.cb-chip { display: inline-block; padding: .4rem .9rem; border: 1px solid rgba(37,107,92,.3);
  border-radius: 999px; font-size: .72rem; font-weight: 300; color: var(--cb-accent); text-decoration: none;
  transition: all .3s ease; }
.cb-chip:hover { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }
.cb-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2.5rem; }
@media (min-width: 900px) { .cb-stats { grid-template-columns: repeat(4, 1fr); } }
.cb-stat b { display: block; font-family: var(--font-serif); font-size: 2.4rem; font-weight: 300;
  color: var(--cb-accent); line-height: 1; }
.cb-stat span { display: block; margin-top: .5rem; font-size: .78rem; font-weight: 300; color: var(--cb-muted); }
.cb-section--dark .cb-stat b { color: var(--cb-mist); }
.cb-section--dark .cb-stat span { color: rgba(245,248,246,.6); }
.cb-map { border: 0; width: 100%; height: 380px; display: block; filter: grayscale(.35); }

/* ==================== διορθώσεις για κινητά ==================== */

/* Πίνακας ωραρίου: κάθε ώρα αδιάσπαστη, τα διαστήματα αναδιπλώνονται.
   Οι κανόνες nowrap του base.css ακυρώνονται εδώ. */
.cb-hours { table-layout: auto; }
.cb-hours th { white-space: normal; }
.cb-hours__r { display: inline-block; white-space: nowrap; }
.cb-hours__closed { opacity: .65; }
.cb-hours__foot { margin-top: .7rem; font-size: .78rem; font-weight: 300; line-height: 1.6;
  color: var(--cb-muted); }
.cb-hours__cap { text-align: left; font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--cb-muted); padding-bottom: .6rem; }
/* Οι κλειστές ημέρες μένουν ορατές αλλά υποχωρούν: η πληροφορία «κλειστά»
   είναι χρήσιμη, δεν χρειάζεται όμως το ίδιο βάρος με τις ώρες λειτουργίας. */
.cb-hours__off td { color: var(--cb-muted); opacity: .7; }
/* Τη σημερινή γραμμή τη σημειώνει το site.js — βλ. σχόλιο εκεί για το γιατί. */
.cb-hours tr.is-today th, .cb-hours tr.is-today td { color: var(--cb-accent); font-weight: 500; }
.cb-hours__today { display: inline-block; margin-left: .5rem; padding: .05rem .4rem;
  border-radius: 99px; background: rgba(37,107,92,.12); color: var(--cb-accent);
  font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500;
  vertical-align: middle; }
@media (max-width: 600px) {
  .cb-hours, .cb-hours tbody, .cb-hours tr, .cb-hours th, .cb-hours td { display: block; width: 100%; }
  .cb-hours tr { padding: .5rem 0; border-bottom: 1px solid rgba(18,58,52,.08); }
  .cb-hours tr:last-child { border-bottom: 0; padding-bottom: 0; }
  .cb-hours th { padding: 0 0 .2rem; font-size: .64rem; letter-spacing: .18em;
    text-transform: uppercase; color: var(--cb-accent); }
  .cb-hours td { padding: 0; }
}

/* Κουμπιά: λιγότερο padding και letter-spacing ώστε να χωρούν οι μακριές ετικέτες */
.cb-btn { max-width: 100%; }
@media (max-width: 480px) {
  .cb-btn { padding: .95rem 1.15rem; letter-spacing: .12em; font-size: .66rem; gap: .5rem; }
  .cb-btn--sm { padding: .65rem .9rem; }
}

/* Επικεφαλίδες: το κάτω όριο του clamp ήταν πολύ μεγάλο για οθόνες 360-390px.
   Ο τίτλος της αρχικής είναι πλέον το σλόγκαν — μακρύτερος, άρα πιο μαζεμένος. */
.cb-hero__h1 { font-size: clamp(1.75rem, 5.6vw, 3.3rem); }
.cb-page-hero__h1 { font-size: clamp(1.85rem, 6.4vw, 3.6rem); }
.cb-h2 { font-size: clamp(1.6rem, 4.6vw, 2.9rem); }

/* Στο κινητό η μπάρα κορυφής φεύγει εντελώς: το τηλέφωνο είναι ήδη διαθέσιμο
   από το αιωρούμενο κουμπί κλήσης και από το μενού. */
@media (max-width: 767px) { .cb-topbar { display: none; } }

/* Ενότητα χάρτη: το περιεχόμενο χρειάζεται τα ίδια περιθώρια με τις υπόλοιπες */
.cb-mapsection { padding-inline: 1.5rem; }
@media (min-width: 768px) { .cb-mapsection { padding-inline: 3rem; } }

/* Οι μεγάλες λέξεις («ψυχοθεραπευτικές», «νευροβιολογική») δεν χωρούν σε
   οθόνη 320px και έσπρωχναν τη σελίδα οριζόντια. */
body { overflow-wrap: break-word; }

/* Ερωτήσεις FAQ: ο τίτλος μοιράζεται τη γραμμή με το στρογγυλό κουμπί */
@media (max-width: 520px) {
  .cb-faq { padding-block: 1.4rem; }
  .cb-faq h3 { font-size: 1.15rem; line-height: 1.35; padding-right: .9rem; }
  .cb-faq .w-12 { width: 2.25rem; height: 2.25rem; }
  .cb-faq .w-5 { width: 1rem; height: 1rem; }
}

/* ============ στρώμα KOURMPETI MENTAL HEALTH ============
   Η τερακότα είναι ο δεύτερος τόνος της παλέτας και μπαίνει με φειδώ: μόνο
   εκεί όπου χρειάζεται ζεστασιά απέναντι στο βαθύ πράσινο — διαχωριστικά,
   eyebrows, δείκτες hover. Ποτέ σε σύνδεσμο κειμένου: εκεί μένει το πράσινο,
   ώστε ο αναγνώστης να μαθαίνει ένα μόνο χρώμα ως «πατιέται». */

/* Το σύμβολο του απείρου ως διακριτικό διαχωριστικό ενοτήτων. */
.cb-infinity { display: block; margin: 2.75rem auto; width: 3.5rem; height: auto;
  color: var(--cb-sand); opacity: .9; }
.cb-section--dark .cb-infinity, .cb-page-hero .cb-infinity,
.cb-footer .cb-infinity { color: var(--cb-sand-soft); }

/* Το eyebrow παίρνει χρυσή παύλα αντί για μωβ — ξεχωρίζει από τους συνδέσμους. */
.cb-eyebrow::before { background: var(--cb-sand); }
.cb-eyebrow--light::before { background: var(--cb-sand-soft); }

/* Πορτρέτο της ψυχολόγου: στρογγυλεμένο, με λεπτό χρυσό περίγραμμα. */
.cb-portrait { position: relative; }
.cb-portrait img { width: 100%; height: auto; display: block;
  border-radius: 1.25rem; box-shadow: 0 30px 60px -30px rgba(18,58,52,.55); }
.cb-portrait::after { content: ""; position: absolute; inset: .55rem;
  border: 1px solid rgba(227,160,116,.45); border-radius: 1rem; pointer-events: none; }

/* Οι κάρτες υπηρεσιών παίρνουν χρυσό δείκτη στο hover, όχι μωβ:
   κρατά το μωβ αποκλειστικά για τους συνδέσμους κειμένου. */
.cb-card:hover .cb-card__more { color: var(--cb-sand); }

/* Σημείωση οριοθέτησης πλαισίου — τι κάνει και τι ΔΕΝ κάνει η υπηρεσία
   (π.χ. «η ψυχολογική υποστήριξη δεν αντικαθιστά την ιατρική παρακολούθηση»).
   Οπτικά ξεχωριστή από τα υπόλοιπα cb-note, γιατί λέει κάτι διαφορετικό:
   δεν είναι προειδοποίηση κρίσης, είναι όριο ευθύνης. */
.cb-note--scope { border-left-color: var(--cb-sand); background: rgba(169,97,46,.08); }
.cb-section--dark .cb-note--scope { background: rgba(227,160,116,.12);
  border-left-color: var(--cb-sand-soft); }

/* ---- πλέγμα «ο χώρος» ----
   Οι λήψεις-λεπτομέρειες του γραφείου ήρθαν σε 302–463px, οπότε εμφανίζονται
   στο φυσικό τους μέγεθος και δεν μεγεθύνονται ποτέ: το `minmax` σταματά στα
   11rem και το πλέγμα προσθέτει στήλες αντί να φαρδαίνει τις εικόνες. */
.cb-gallery { display: grid; gap: .75rem; margin-top: 1.5rem;
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 11rem)); }
.cb-gallery img { width: 100%; height: auto; display: block; border-radius: .5rem;
  filter: saturate(.94); transition: transform .5s cubic-bezier(.16,1,.3,1), filter .5s ease; }
.cb-gallery img:hover { transform: scale(1.03); filter: saturate(1); }
@media (prefers-reduced-motion: reduce) {
  .cb-gallery img { transition: none; }
  .cb-gallery img:hover { transform: none; }
}

/* Κάρτες άρθρων */
.cb-posts { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); }
.cb-post { display: flex; flex-direction: column; gap: .75rem; padding: 2rem;
  background: #fff; border: 1px solid rgba(18,58,52,.10); border-radius: 1rem;
  text-decoration: none; transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.cb-post:hover { transform: translateY(-4px); border-color: rgba(37,107,92,.35);
  box-shadow: 0 24px 48px -28px rgba(18,58,52,.45); }
.cb-post__k { font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cb-sand); }
.cb-post__t { font-family: var(--font-serif); font-size: 1.6rem; font-weight: 300;
  line-height: 1.22; color: var(--cb-ink); }
.cb-post__d { font-size: .93rem; line-height: 1.75; color: var(--cb-muted); }
.cb-post__more { margin-top: auto; padding-top: .5rem; font-size: .68rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--cb-accent); }
