/* shell, generated from the homepage stylesheet */
@layer theme{:root,:host{--font-sans:"Manrope", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--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-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Manrope", sans-serif;--default-mono-font-family:var(--font-mono);--color-background:var(--background);--color-foreground:var(--foreground);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-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:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration: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:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}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;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}: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}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-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:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}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}*{border-color:var(--color-border)}body{background-color:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans);min-width:320px}}@layer utilities{.visible{visibility:visible}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.h-9{height:calc(var(--spacing) * 9)}.h-18{height:calc(var(--spacing) * 18)}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.bg-primary{background-color:var(--primary)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.text-primary-foreground{color:var(--primary-foreground)}.shadow{--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)}.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))}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.5rem;--background:oklch(98.5% .006 73);--foreground:oklch(21% .025 255);--card:oklch(100% 0 0);--card-foreground:oklch(12.9% .042 264.695);--popover:oklch(100% 0 0);--popover-foreground:oklch(12.9% .042 264.695);--primary:oklch(68% .2 42);--primary-foreground:oklch(100% 0 0);--secondary:oklch(96% .025 71);--secondary-foreground:oklch(20.8% .042 265.755);--muted:oklch(95.5% .008 255);--muted-foreground:oklch(48% .025 255);--accent:oklch(93% .07 72);--accent-foreground:oklch(20.8% .042 265.755);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.4% .003 247.858);--border:oklch(88% .018 65);--input:oklch(85% .02 65);--ring:oklch(68% .2 42);--success:oklch(68% .2 42);--success-bright:oklch(68% .2 42);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.4% .003 247.858);--sidebar-foreground:oklch(12.9% .042 264.695);--sidebar-primary:oklch(20.8% .042 265.755);--sidebar-primary-foreground:oklch(98.4% .003 247.858);--sidebar-accent:oklch(96.8% .007 247.896);--sidebar-accent-foreground:oklch(20.8% .042 265.755);--sidebar-border:oklch(92.9% .013 255.508);--sidebar-ring:oklch(70.4% .04 256.788)}.shell{width:min(1120px,100% - 40px);margin-inline:auto}.site-header{z-index:20;border-bottom:1px solid var(--border);background:var(--background);position:relative}.brand-mark{align-items:center;text-decoration:none;display:flex}.brand-mark img{width:auto;height:60px;display:block}@media (width<=640px){.brand-mark img{height:52px}}.contact-link{min-height:48px;color:var(--foreground);align-items:center;gap:7px;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}.contact-link svg{width:17px}.contact-link.whatsapp{color:oklch(45% .12 150)}footer{border-top:1px solid var(--border);padding:50px 0 100px}.footer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:30px;display:grid}.footer-grid>div:not(.brand-mark){color:var(--muted-foreground);flex-direction:column;align-items:flex-start;gap:10px;font-size:.87rem;display:flex}.footer-grid a{color:var(--foreground);text-decoration:none}.mobile-actions{display:none}@media (width<=740px){.shell{width:min(100% - 28px,560px)}.site-header .shell{height:64px}.contact-link{font-size:.83rem}.site-header .contact-link svg{width:19px;display:inline}.footer-grid{grid-template-columns:1fr}footer{padding-bottom:105px}.mobile-actions{z-index:30;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));border:1px solid var(--border);background:var(--background);border-radius:999px;grid-template-columns:1.5fr .7fr .9fr;gap:6px;padding:8px;display:grid;position:fixed}.mobile-actions{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:transform .3s,opacity .3s;transform:translateY(130%);box-shadow:0 12px 32px oklch(20% .02 60/.18)}.mobile-actions.visible{opacity:1;transform:none}.mobile-actions [data-testid="sticky-cta-btn"],.mobile-actions a:not([data-testid="sticky-cta-btn"]){border-radius:999px;place-items:center;min-height:48px;font-size:.8rem;font-weight:750;text-decoration:none;display:grid}.mobile-actions [data-testid="sticky-cta-btn"]{box-shadow:0 6px 18px var(--primary)}.mobile-actions [data-testid="sticky-cta-btn"]{font-size:.85rem}.mobile-actions a:not([data-testid="sticky-cta-btn"]){border:1px solid var(--border);color:var(--foreground);background:var(--background)}}@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-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
/* Release 1a-N (spec 009): sticky header, menu and main button of the landing page.
   Own rules only (no new utility classes: the kept stylesheet is a purged build), with the
   site's tokens. The guide renders its own header without these classes, so it does not change.

   Widths: 1024 px and up, links in the header. Below that, a burger opens them in a panel.
   740 px and below, the main button moves from the header to the bottom bar. */

/* A menu jump must not hide the section's title under the sticky header. */
html {
  scroll-padding-top: 73px;
}

.site-header.site-header-nav {
  position: sticky;
  top: 0;
  z-index: 40; /* above the bottom bar (30), below the dialogs (50) */
  background: var(--background); /* opaque: the dark bands and videos scroll underneath */
}

.site-header-nav .brand-mark,
.site-header-nav .shell > .flex,
.nav-block,
.nav-cta {
  flex: none;
}

.site-header-nav .shell > .flex {
  margin-left: auto;
}

.nav-block {
  margin-left: 20px;
}

.nav-toggle {
  display: none;
}

.site-nav-list {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-nav-list a {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  color: var(--foreground);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.site-nav-list a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.site-nav-list a:focus-visible,
.nav-toggle:focus-visible {
  border-radius: 4px;
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.nav-cta {
  min-height: 44px;
  font-weight: 800;
}

@media (width < 1160px) {
  .nav-block {
    order: 3;
    margin-left: 0;
  }

  .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    cursor: pointer;
  }

  .nav-toggle .nav-icon-close,
  .nav-toggle[aria-expanded="true"] .nav-icon-menu {
    display: none;
  }

  .nav-toggle[aria-expanded="true"] .nav-icon-close {
    display: block;
  }

  /* The panel hangs below the header and does not push the page. */
  .site-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    border-bottom: 1px solid var(--border);
    background: var(--background);
    box-shadow: 0 12px 32px oklch(20% 0.02 60 / 0.18);
  }

  .site-header-nav.nav-open .site-nav {
    display: block;
  }

  .site-nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: min(1120px, 100% - 40px); /* same as .shell, so the links line up with the logo */
    margin-inline: auto;
    padding-block: 6px;
  }

  .site-nav-list li + li {
    border-top: 1px solid var(--border);
  }

  .site-nav-list a {
    display: flex;
    font-size: 1rem;
  }
}

@media (width <= 740px) {
  html {
    scroll-padding-top: 65px;
  }

  .site-nav-list {
    width: min(100% - 28px, 560px); /* same as .shell at this width */
  }

  .nav-cta {
    display: none;
  }

  /* The sprint's text is longer than the old one: it takes two lines, and the button a bigger share. */
  .mobile-actions {
    grid-template-columns: 1.7fr 0.7fr 0.9fr;
  }

  .mobile-actions [data-testid="sticky-cta-btn"] {
    height: auto;
    padding: 4px 10px;
    line-height: 1.15;
    text-align: center;
    text-wrap: balance;
    white-space: normal;
  }
}

/* Narrow phones: tighter gaps first, then «Κλήση» instead of the number, as the guide's header does. */
@media (width < 375px) {
  .site-header-nav .shell,
  .site-header-nav .shell > .flex {
    gap: 8px;
  }
}

@media (width < 360px) {
  .site-header-nav .contact-link:not(.whatsapp) span:first-of-type {
    display: none;
  }

  .site-header-nav .contact-link:not(.whatsapp) span:last-of-type {
    display: inline;
  }

  /* Keeps the button at two lines, so the bar does not take more of a small screen. */
  .mobile-actions {
    grid-template-columns: 1.9fr 0.7fr 0.9fr;
  }

  .mobile-actions [data-testid="sticky-cta-btn"] {
    padding-inline: 6px;
    font-size: 0.78rem;
  }
}

/* Release 2a (spec 016): «Οδηγοί», «Καλέστε με», #methodologia, #epikoinonia, the footer of 3 groups. Own rules with the site's
   tokens; the kept stylesheet is a purged build. Breakpoints as nav.css: below 1160 px the links are in the burger panel. */

/* A longer panel scrolls on its own: 9 links and a heading do not fit a small phone. */
@media (width < 1160px) {
  .site-nav {
    max-height: calc(100dvh - 73px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

/* ---- «Οδηγοί» ---- */
.nav-guides {
  position: relative;
}

.nav-guides-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 48px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--foreground);
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.nav-guides-btn:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.nav-guides-btn:focus-visible,
.nav-callback:focus-visible,
footer a:focus-visible {
  border-radius: 4px;
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.nav-guides-btn svg {
  width: 16px;
  height: 16px;
  transition: transform 0.15s;
}

.nav-guides.is-open .nav-guides-btn svg {
  transform: rotate(180deg);
}

.nav-guides-heading {
  display: none;
}

.nav-guides-list {
  display: none;
  position: absolute;
  top: 100%;
  left: -14px;
  z-index: 1;
  min-width: 230px;
  margin: 0;
  padding: 6px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--background);
  box-shadow: 0 12px 32px oklch(20% 0.02 60 / 0.18);
  list-style: none;
}

.nav-guides.is-open .nav-guides-list {
  display: block;
}

.nav-guides-list li + li {
  border-top: 1px solid var(--border);
}

.nav-guides-list a {
  display: flex;
}

/* The secondary button in the header row. Its link in the panel is .nav-callback-item. */
.nav-callback {
  display: none;
  flex: none;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--foreground);
  border-radius: calc(var(--radius) - 2px);
  background: var(--background);
  color: var(--foreground);
  font-size: 0.875rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.nav-callback:hover {
  background: var(--secondary);
}

@media (width >= 1160px) {
  .nav-callback {
    display: inline-flex;
  }

  .nav-callback-item {
    display: none;
  }

  .nav-block {
    margin-left: 14px;
  }

  .site-nav-list {
    gap: 18px;
  }
}

/* In the burger the group's links are open under a heading: no second tap. */
@media (width < 1160px) {
  .nav-guides-btn {
    display: none;
  }

  .nav-guides-heading {
    display: flex;
    align-items: center;
    min-height: 44px;
    color: var(--muted-foreground);
    font-size: 0.875rem;
    font-weight: 800;
  }

  .nav-guides-list {
    display: block;
    position: static;
    min-width: 0;
    padding: 0 0 0 14px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
}

/* ---- #methodologia ---- */
.methodology {
  padding-block: 4.5rem;
}

.methodology h2 {
  margin: 0.35rem 0 1.25rem;
  color: var(--foreground);
  font-size: clamp(1.6rem, 5vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

.methodology p {
  margin: 0 0 1rem;
  color: var(--muted-foreground);
  line-height: 1.65;
}

.methodology p:last-child {
  margin-bottom: 0;
}

/* ---- #epikoinonia: the section's look stays; the actions may wrap ---- */
.direct-actions {
  flex-wrap: wrap;
}

.direct-callback {
  min-height: 44px;
  font-weight: 800;
  text-decoration: none;
}

/* ---- Footer ---- */
.footer-main {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) repeat(auto-fit, minmax(170px, 1fr));
  gap: 30px;
}

.footer-about {
  margin: 14px 0;
  color: var(--muted-foreground);
  font-size: 0.87rem;
  line-height: 1.55;
}

.footer-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  color: var(--muted-foreground);
  font-size: 0.87rem;
}

footer a {
  color: var(--foreground);
  text-decoration: none;
}

footer a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* On a touch screen :hover stays on the last link tapped, so it would look selected (owner, footer-8). */
@media (hover: none) {
  footer a:hover,
  .site-nav-list a:hover,
  .nav-guides-btn:hover {
    text-decoration: none;
  }
}

.footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

/* The two buttons keep their own colours, against the footer's link rule above. */
.footer-actions .footer-cta,
.footer-actions .footer-cta:hover {
  min-height: 44px;
  color: var(--primary-foreground);
  font-weight: 800;
  text-decoration: none;
}

.footer-actions .nav-callback {
  display: inline-flex;
}

.footer-group h2 {
  margin: 0 0 12px;
  color: var(--foreground);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.3;
}

.footer-group ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  font-size: 0.87rem;
  list-style: none;
}

.footer-legal {
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  color: var(--muted-foreground);
  font-size: 0.8rem;
  line-height: 1.6;
}

.footer-legal p {
  margin: 0;
}

@media (width <= 740px) {
  .footer-main {
    grid-template-columns: 1fr;
  }
}

/* Inner pages (spec 015). Own components on the tokens of the homepage. New text and links use
   #C2410C only because --primary fails contrast there (E1.13); the header and the bar keep their colours. */
:root {
  --link: #C2410C;
  --cream: var(--background);
}

html { scroll-padding-top: 73px; }

body {
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;
  background: var(--background);
  color: var(--foreground);
  overflow-wrap: break-word;
}

.page { padding: 20px 0 64px; }
.page-col { max-width: 760px; }

.crumbs { margin-bottom: 14px; font-size: 14px; }
.page .crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.page .crumbs li { margin: 0; font-size: 14px; }
.crumbs li + li::before { content: "›"; margin-right: 6px; color: var(--muted-foreground); }
.crumbs a { display: inline-flex; align-items: center; min-height: 24px; color: var(--link); text-decoration: underline; text-underline-offset: 3px; }

.page h1 { margin: 0 0 12px; font-size: 30px; line-height: 1.2; font-weight: 700; letter-spacing: -0.01em; }
.page h2 { margin: 40px 0 12px; font-size: 24px; line-height: 1.25; font-weight: 700; scroll-margin-top: 80px; }
.page h3 { margin: 24px 0 8px; font-size: 19px; line-height: 1.3; font-weight: 700; scroll-margin-top: 80px; }
.page p, .page li { font-size: 16px; line-height: 1.6; }
.page p { margin: 0 0 14px; }
.page ul, .page ol { margin: 0 0 16px; padding-left: 22px; }
.page ul { list-style: disc; }
.page ol { list-style: decimal; }
.page li { margin-bottom: 8px; }
.page-col a:not(.cta-btn) { color: var(--link); text-decoration: underline; text-underline-offset: 3px; }
.page-col a:focus-visible, .cta-btn:focus-visible, .faq summary:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; border-radius: 4px; }

.lede { font-size: 18px !important; line-height: 1.55 !important; }
.updated { font-size: 14px !important; color: var(--muted-foreground); }

.toc { margin: 18px 0 22px; padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); }
.toc-title { margin: 0 0 6px !important; font-weight: 700; }
.toc ul { margin: 0; padding: 0; list-style: none; }
.toc li { margin: 0; }
.toc a { display: inline-flex; align-items: center; min-height: 36px; }

.fact-box { margin: 20px 0; padding: 16px; border: 1px solid var(--border); border-left: 4px solid #1F6B43; border-radius: var(--radius); background: var(--card); }
.fact-box[data-fact-state="stale"] { border-left-color: #92400E; }
.fact-title, .callout-title { margin: 0 0 8px !important; font-weight: 700; }
.fact-box ul, .fact-box ol { margin-bottom: 8px; }
.fact-date { font-size: 14px !important; line-height: 1.5 !important; color: var(--muted-foreground); }

.callout { margin: 18px 0; padding: 16px; border-radius: var(--radius); background: #FEF3C7; color: #5B2A07; }
.callout a { color: #7A3209 !important; }

.steps { padding-left: 24px; }
.steps li { margin-bottom: 12px; }

.table-wrap { margin: 16px 0; overflow-x: auto; }
table.data { width: 100%; border-collapse: collapse; background: var(--card); font-size: 14px; line-height: 1.4; }
table.data caption { padding: 0 0 8px; text-align: left; font-weight: 600; font-size: 14px; }
table.data th, table.data td { padding: 10px; border: 1px solid var(--border); text-align: left; vertical-align: top; }
table.data thead th { font-weight: 600; background: var(--secondary); }
table.data tbody th { font-weight: 600; }
table.data small { font-weight: 400; font-size: 14px; color: var(--muted-foreground); }
.price-line { display: block; margin-bottom: 4px; }
table.hours td { white-space: nowrap; }

.dot { display: inline-block; width: 12px; height: 12px; margin-right: 8px; border-radius: 50%; border: 1px solid rgb(0 0 0 / 0.35); }
.dot-green { background: #2E8B57; }
.dot-blue { background: #2563EB; }
.dot-yellow { background: #FACC15; }
.dot-orange { background: #F97316; }

.band-box { margin: 8px 0 12px; }
.band-label { margin: 8px 0 4px !important; font-size: 14px !important; font-weight: 600; }
.band { position: relative; height: 16px; border: 1px solid var(--border); border-radius: 4px; background: var(--secondary); overflow: hidden; }
.band-on { position: absolute; top: 0; bottom: 0; background: #1F6B43; }
.band-scale { display: flex; justify-content: space-between; margin-top: 4px; font-size: 14px; color: var(--muted-foreground); }

.cta-block { margin: 28px 0; padding: 20px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--secondary); }
.cta-title { margin: 0 0 6px !important; font-size: 19px !important; font-weight: 700; line-height: 1.3 !important; }
.cta-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; margin: 6px 12px 6px 0; padding: 10px 18px; border-radius: var(--radius); background: #C2410C; color: #fff; font-size: 16px; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none; }
.cta-btn:hover { background: #A63609; }
.cta-tel { display: inline-flex; align-items: center; min-height: 48px; font-weight: 700; }
.cta-hours { margin: 0 !important; font-size: 14px !important; color: var(--muted-foreground); }

.faq details { border-bottom: 1px solid var(--border); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 0; font-weight: 700; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; font-size: 22px; line-height: 1; color: var(--link); }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin-bottom: 14px; }

.official-note { margin: 14px 0; padding: 14px 16px; border-left: 4px solid var(--border); background: var(--card); }
.note, .trademark-note, .legal-basis { font-size: 14px !important; line-height: 1.5 !important; color: var(--muted-foreground); }
.report-box { margin: 24px 0; padding: 16px; border: 1px solid var(--border); border-radius: var(--radius); }
.report-box p:last-child { margin-bottom: 0; }

.statement { padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); font-size: 16px !important; font-weight: 600; }
.separate-block { margin: 32px 0; padding: 16px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.separate-block a { display: inline-flex; align-items: center; min-height: 48px; }

.related { margin-top: 36px; }
.related ul { padding: 0; list-style: none; }
.related li { margin: 0; }
.related a { display: inline-flex; align-items: center; min-height: 40px; }
.sources { margin-top: 36px; }
.sources h2 { font-size: 19px; margin-top: 0; }
.sources li, .sources p { font-size: 14px; line-height: 1.5; }
.signature { margin-top: 24px !important; font-weight: 700; }

/* Same look as the homepage, where these two main buttons are <button> and centre their text by default. */
.nav-cta,
.mobile-actions [data-testid="sticky-cta-btn"] { text-align: center; }
.site-header { background: var(--background); }

@media (width >= 741px) {
  .page h1 { font-size: 40px; line-height: 1.15; }
  .page h2 { font-size: 30px; line-height: 1.2; }
  .page h3 { font-size: 20px; }
  .page p, .page li { font-size: 17px; line-height: 1.65; }
  .lede { font-size: 19px !important; }
  table.data { font-size: 15px; line-height: 1.45; }
}

@media (width <= 740px) {
  html { scroll-padding-top: 65px; }
  /* Same look as the homepage, written without color-mix (spec 006 §8). */
  .mobile-actions { background: oklch(98.5% .006 73 / .88); }
  .mobile-actions [data-testid="sticky-cta-btn"] { box-shadow: 0 6px 18px oklch(68% .2 42 / .45); }
  .page { padding-bottom: 110px; }
  .cta-btn { width: 100%; margin-right: 0; }
}

/* Tables of 3 or 4 columns become row cards on a phone, so nothing is squeezed or scrolls sideways. */
@media (width < 640px) {
  table.prices thead, table.legend thead, table.criteria thead { display: none; }
  table.prices caption, table.legend caption, table.criteria caption { display: block; width: 100%; }
  table.prices, table.prices tbody, table.prices tr, table.prices th, table.prices td,
  table.legend, table.legend tbody, table.legend tr, table.legend th, table.legend td,
  table.criteria, table.criteria tbody, table.criteria tr, table.criteria th, table.criteria td { display: block; width: 100%; }
  table.prices tr, table.legend tr, table.criteria tr { margin-bottom: 10px; border: 1px solid var(--border); border-radius: var(--radius); }
  table.prices th, table.prices td, table.legend th, table.legend td, table.criteria th, table.criteria td { border: 0; border-bottom: 1px solid var(--border); }
  table.prices td:last-child, table.legend td:last-child, table.criteria td:last-child { border-bottom: 0; }
  table.prices td::before, table.legend td::before, table.criteria td::before { content: attr(data-label); display: block; font-weight: 600; font-size: 14px; }
}
