/* Only public layout guards and accessible progressive enhancement. */
.public-site { overflow-wrap: anywhere; }
.public-site .editorial { max-width: 75ch; margin-inline: auto; }
.public-site .editorial h2 { margin-bottom: 1.25rem; }
.public-site .editorial p { font-size: 1rem; line-height: 1.85; margin-top: 1.1rem; }
.public-site .doc-content section { scroll-margin-top: 7rem; }
.public-site .section > p { margin-top: 1rem; }
.public-site .section h3 { line-height: 1.25; }
.public-site figure.day-card { margin: 0; }
.public-site .day-card > p + p { margin-top: .8rem; }
.public-site .contact-card h2 { font-size: 1.2rem; line-height: 1.4; }
.public-site .contact-card { text-align: left; }
.public-site .contact-graphic { overflow-wrap: anywhere; }
.public-site .contact-graphic > div { min-width: 0; }
.public-site .contact-graphic h2 { font-size: 1.4rem; }
.public-site .source-card { display: block; }
.public-site .source-card h3 { font-size: 1.3rem; line-height: 1.4; }
.public-site .demo-aside h2 { font-size: 1.3rem; line-height: 1.4; margin-bottom: .9rem; }
.public-site .school-preview { margin: 0; }
.public-site .school-preview h2 { font-size: 1.6rem; line-height: 1.25; }
.public-site .preview-field { padding: 1rem .5rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--leaf-soft); font-size: .8rem; overflow-wrap: anywhere; }
.public-site .stat strong { font-size: clamp(1.25rem,2.5vw,2.2rem); overflow-wrap: anywhere; }
.public-site .price-card h2 { font-size: 1.7rem; margin-block: 1.1rem; }
.public-site .price-card p { margin-bottom: 1.5rem; }
.public-site :is(h1,h2,h3,h4,p,a,span,strong) { overflow-wrap: anywhere; }
.public-site .header-inner, .public-site .header-actions, .public-site .desktop-nav { flex-wrap: wrap; }
.public-site .header-actions, .public-site .desktop-nav { max-width: 100%; min-width: 0; }
.public-site .header-inner { padding-block: 12px; }
.public-site .brand { max-width: 100%; }
.public-site .footer-grid > *, .public-site .doc-layout > *, .public-site .grid > * { min-width: 0; }
.public-site .doc-nav a, .public-site .support-badge { max-width: 100%; }
.public-site .demo-layout { grid-template-columns: minmax(0,1fr) minmax(0,280px); }
.public-site .demo-layout > * { min-width: 0; }
.public-site :is(.home-board,.hero-copy,.postcard,.home-entry,.topic-card > div,.step-item > div) { min-width: 0; }
.public-site .btn { max-width: 100%; white-space: normal; }
.public-site .greek-sentence { flex-wrap: wrap; }
.public-site .home-world { height: auto; min-height: clamp(670px,calc(100svh - 88px),960px); max-height: none; }
.public-site .home-world .shell { min-height: inherit; padding-bottom: 28px; display: flex; flex-direction: column; gap: 40px; }
.public-site .home-entry-bar { position: static; margin-top: auto; }
.public-site .home-speech { max-width: calc(100% - 580px); }
.public-site.public-menu-open { overflow: hidden; }
.public-site .site-header { padding-top: env(safe-area-inset-top); }
.public-site .site-footer { padding-bottom: max(22px,env(safe-area-inset-bottom)); }
.public-site .skip-link { top: -200px; }
.public-site .skip-link:focus { top: 12px; }
@media (max-width:960px) {
  .public-site .demo-layout { grid-template-columns: minmax(0,1fr) minmax(0,225px); }
  .public-site .home-speech { max-width: 65%; position: static; align-self: flex-end; margin-top: 1rem; }
  .public-site:not(.public-enhanced) .mobile-menu { display: flex; flex-wrap: wrap; gap: 1rem; padding: 1rem; }
  .public-site:not(.public-enhanced) .mobile-menu a { font-size: 1rem; text-decoration: underline; }
  .public-site.public-enhanced .mobile-menu.open { max-height: calc(100dvh - var(--public-header-height,78px) - env(safe-area-inset-top)); overflow-y: auto; padding-bottom: max(22px,env(safe-area-inset-bottom)); }
  .public-site.public-menu-open .header-inner > :not(.header-actions),
  .public-site.public-menu-open .header-actions > :not(.menu-toggle) { visibility: hidden; }
}
@media (max-width:720px) {
  .public-site .demo-layout { display: block; }
  .public-site .home-world { min-height: 0; }
  .public-site .home-world .shell { gap: 0; }
  .public-site .home-board { margin-bottom: 130px; }
  .public-site .home-speech { margin-block: 0 36px; max-width: 90%; }
  .public-site .home-entry-bar { margin-top: 0; }
  .public-site .postcard-caption { flex-wrap: wrap; }
  .public-site .hero-art { padding-inline: 15px; }
  .public-site .postcard { transform: none; }
  .public-site .culture-hero-art .postcard { max-width: 100%; margin-left: 0; }
  .public-site .culture-note { margin-right: 0; }
  .public-site .float-bubble { position: relative; left: auto; bottom: auto; margin: 0 4px 1rem; transform: none; }
  .public-site .sun-sticker { right: -5px; }
}
@media (prefers-reduced-motion:reduce) {
  .public-site *, .public-site *::before, .public-site *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Reuse the released brand mark and the founder-selected desktop/mobile scene. */
.public-site .brand { gap: 9px; }
/* Exact existing presentation from limassol-ui.css + cabinet-ui.css, scoped here. */
.public-site .brand-mark { width: 2.0625rem; height: 2.125rem; flex: none; display: block; border: 2px solid #20343e; border-radius: 13px; background: #1685e6; box-shadow: 3px 3px 0 #20343e; transform: rotate(-5deg); }
.public-site .brand-name { font: 800 1.4375rem/1 Arial, Helvetica, sans-serif; letter-spacing: -.8px; }
.public-site .home-scene { position: absolute; inset: 0; width: 100%; height: 100%; }
.public-site .home-scene > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
@media (max-width:720px) {
  .public-site .home-scene > img { object-position: center; }
}

/* #146: the account entry is visible outside the hamburger at every width. */
:where(.public-site) .header-actions .login{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 8px;font-size:1rem;white-space:nowrap}
@media(max-width:720px){:where(.public-site) .header-actions{gap:4px}:where(.public-site) .header-actions>.btn{display:none}:where(.public-site) .header-inner{gap:8px}:where(.public-site) .header-actions .login{font-size:1rem}}
