


/* Shared logo palette for public pages and the content editor. */
:root {
  --brand-navy:#1d2c46;
  --brand-deep:#243752;
  --brand-accent:#405c7d;
  --brand-muted:#526177;
  --brand-silver:#dce4ee;
  --brand-border:#c7d1de;
  --brand-surface:#e7ecf2;
  --brand-paper:#f4f6f9;
  --brand-white:#ffffff;
}

:root { --ink:var(--brand-navy); --paper:var(--brand-paper); --cream:var(--brand-white); --clay:var(--brand-accent); --olive:var(--brand-accent); --sand:var(--brand-border); --line:rgba(29,44,70,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { position:absolute; z-index:10; top:0; left:0; right:0; min-height:104px; display:flex; align-items:center; justify-content:space-between; padding:12px clamp(24px,5vw,76px); background:rgba(255,255,255,.96); color:var(--ink); border-bottom:1px solid rgba(29,44,70,.1); }
.brand { display:flex; gap:11px; align-items:center; }
.brand img { width:112px; height:78px; object-fit:contain; display:block; }
nav { display:flex; gap:30px; font-size:12px; letter-spacing:.07em; }
nav a { padding-bottom:4px; border-bottom:1px solid transparent; }
nav a:hover { border-color:currentColor; }
.hero { min-height:760px; padding-top:104px; display:grid; grid-template-columns:1.02fr .98fr; background:var(--ink); color:var(--cream); overflow:hidden; }
.hero-copy { padding:165px clamp(30px,7vw,110px) 84px; display:flex; flex-direction:column; justify-content:center; }
.eyebrow { margin:0 0 25px; font-size:10px; font-weight:700; letter-spacing:.24em; }
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
h1 { margin:0; font-size:clamp(58px,6.4vw,101px); line-height:.91; letter-spacing:-.045em; }
h1 em { color:var(--brand-accent); font-weight:400; }
.hero h1 em { color:var(--brand-silver); }
.lead { max-width:570px; margin:36px 0 28px; font-family:Georgia,serif; font-size:18px; line-height:1.7; color:rgba(244,246,249,.8); }
.text-link { width:fit-content; display:flex; gap:10px; align-items:center; padding:11px 0; border-bottom:1px solid rgba(244,246,249,.55); font-size:12px; letter-spacing:.08em; }
.hero-art { position:relative; min-height:650px; background:var(--brand-silver); overflow:hidden; }
.sun { position:absolute; width:280px; height:280px; background:var(--clay); border-radius:50%; top:17%; right:-55px; opacity:.88; }
.arch { position:absolute; bottom:0; background:var(--brand-surface); }
.arch-main { left:8%; width:60%; height:74%; border-radius:48% 48% 0 0/29% 29% 0 0; box-shadow:22px -10px 0 rgba(29,44,70,.16); }
.arch-side { right:-5%; width:37%; height:49%; background:var(--brand-deep); border-radius:55% 0 0 0; }
.door { position:absolute; bottom:0; left:19%; width:34%; height:55%; border-radius:80px 80px 0 0; background:var(--brand-navy); box-shadow:inset 10px 0 0 rgba(255,255,255,.08); }
.window { position:absolute; top:35%; right:13%; width:21%; height:24%; background:var(--brand-deep); border:9px solid var(--brand-border); }
.plant { position:absolute; bottom:-10px; z-index:2; width:135px; height:225px; border-radius:50% 7% 45% 12%; background:var(--brand-accent); transform:rotate(-10deg); }
.plant-one { right:14%; }
.plant-two { left:-55px; bottom:30px; transform:rotate(24deg) scale(.74); }
.art-note { position:absolute; z-index:3; right:28px; bottom:26px; font-size:9px; letter-spacing:.22em; writing-mode:vertical-rl; }
.band { padding:110px clamp(24px,7vw,105px); }
.intro { display:grid; grid-template-columns:1.2fr .8fr; gap:12%; align-items:end; background:var(--paper); }
.intro h2 { margin:0; font-size:clamp(39px,4vw,62px); line-height:1.08; letter-spacing:-.025em; }
.intro>p { margin:0 0 5px; font:17px/1.75 Georgia,serif; color:var(--brand-muted); }
.stay-list { padding:0 clamp(24px,5.5vw,86px) 110px; background:var(--paper); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.6vw,42px); }
.stay-image { aspect-ratio:16/10; position:relative; overflow:hidden; margin:0 0 22px; background:var(--brand-surface); }
.stay-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.stay-card:hover .stay-image img { transform:scale(1.025); }
.stay-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(29,44,70,.22),transparent 36%,rgba(29,44,70,.28)); pointer-events:none; }
.stay-image figcaption { position:absolute; z-index:2; right:14px; bottom:12px; color:rgba(255,255,255,.82); font-size:8px; letter-spacing:.09em; text-transform:uppercase; }
.placeholder.clay { background:var(--brand-accent); }
.placeholder.olive { background:var(--brand-accent); }
.placeholder.sand { background:var(--brand-silver); }
.stay-image>span { position:absolute; left:20px; top:18px; z-index:2; color:rgba(255,255,255,.8); font:14px Georgia,serif; letter-spacing:.1em; }
.mini-arch { position:absolute; width:66%; height:82%; right:-4%; bottom:-13%; background:rgba(244,246,249,.62); border-radius:50% 50% 0 0/32% 32% 0 0; }
.stay-meta { display:flex; flex-wrap:wrap; gap:16px; color:var(--brand-muted); font-size:10px; text-transform:uppercase; letter-spacing:.09em; }
.stay-meta span { display:flex; align-items:center; gap:5px; }
.stay-card h3 { font-size:29px; line-height:1.08; margin:14px 0 12px; }
.stay-card p { color:var(--brand-muted); line-height:1.65; font-size:14px; margin:0 0 18px; }
.stay-gallery { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin:0 0 18px; }
.stay-gallery img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--brand-border); }
.stay-card>a { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; border-bottom:1px solid var(--line); padding-bottom:6px; }
.equipment { background:var(--brand-deep); color:var(--cream); }
.equipment-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:10%; align-items:end; margin-bottom:70px; }
.equipment-heading h2 { margin:0; font-size:clamp(42px,4.8vw,72px); line-height:1.03; letter-spacing:-.035em; }
.equipment-heading h2 em { color:var(--brand-silver); font-weight:400; }
.equipment-heading>p { margin:0 0 6px; color:rgba(255,255,255,.7); font:17px/1.75 Georgia,serif; }
.equipment-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.18); border-left:1px solid rgba(255,255,255,.18); }
.equipment-grid article { min-height:300px; padding:34px 32px; border-right:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.025); transition:.25s ease; }
.equipment-grid article:hover { background:rgba(255,255,255,.07); transform:translateY(-2px); }
.equipment-top { display:flex; justify-content:space-between; align-items:flex-start; color:var(--brand-silver); }
.equipment-top svg { stroke-width:1.35; }
.equipment-top span { color:rgba(255,255,255,.5); font:12px Georgia,serif; letter-spacing:.1em; }
.equipment-grid h3 { margin:68px 0 15px; font-size:27px; line-height:1.12; }
.equipment-grid p { margin:0; color:rgba(255,255,255,.68); font-size:13px; line-height:1.7; }
.equipment-note { margin:24px 0 0; color:rgba(255,255,255,.52); font-size:10px; line-height:1.6; letter-spacing:.04em; }
.environment { display:grid; grid-template-columns:.85fr 1.15fr; gap:9%; background:var(--brand-surface); }
.environment-heading { align-self:center; }
.environment-heading h2 { margin:0 0 28px; font-size:clamp(42px,4.8vw,72px); line-height:1.03; letter-spacing:-.035em; }
.environment-heading h2 em { color:var(--brand-accent); font-weight:400; }
.environment-heading>p:last-child { max-width:590px; margin:0; color:var(--brand-muted); font:17px/1.75 Georgia,serif; }
.environment-actions { display:grid; grid-template-columns:1fr; border-top:1px solid rgba(29,44,70,.18); }
.environment-actions article { position:relative; min-height:190px; padding:32px 58px 32px 72px; border-bottom:1px solid rgba(29,44,70,.18); }
.environment-actions svg { position:absolute; left:18px; top:34px; width:28px; height:28px; color:var(--brand-accent); stroke-width:1.3; }
.environment-actions span { position:absolute; right:3px; top:35px; color:var(--brand-muted); font:12px Georgia,serif; letter-spacing:.1em; }
.environment-actions h3 { margin:0 0 12px; font-size:27px; }
.environment-actions p { max-width:560px; margin:0; color:var(--brand-muted); font-size:14px; line-height:1.7; }
.quote-strip { min-height:128px; padding:30px 7vw; display:flex; align-items:center; justify-content:center; gap:18px; background:var(--clay); color:var(--cream); }
.quote-strip p { font:italic clamp(23px,2.5vw,38px)/1.2 Georgia,serif; margin:0; }
.philosophy { background:var(--cream); }
.section-heading { max-width:1000px; }
.section-heading h2 { margin:0; font-size:clamp(40px,4.5vw,67px); line-height:1.08; letter-spacing:-.03em; }
.section-heading h2 em { color:var(--clay); font-weight:400; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:78px; background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.principles article { position:relative; min-height:330px; padding:42px 38px; background:var(--cream); }
.principles article>span { position:absolute; right:25px; top:28px; font:13px Georgia,serif; color:var(--brand-muted); }
.principles svg { color:var(--clay); stroke-width:1.2; width:28px; height:28px; }
.principles h3 { margin:62px 0 16px; font-size:28px; }
.principles p { margin:0; color:var(--brand-muted); font-size:14px; line-height:1.7; }
.marousi { display:grid; grid-template-columns:1fr 1fr; min-height:680px; background:var(--brand-surface); }
.location-art { position:relative; overflow:hidden; display:grid; place-items:center; background:var(--brand-deep); color:rgba(255,255,255,.76); }
.location-art>span { position:absolute; left:28px; top:29px; font-size:9px; letter-spacing:.26em; }
.location-art small { position:absolute; right:27px; bottom:26px; font-size:9px; letter-spacing:.2em; }
.location-art::before,.location-art::after { content:""; position:absolute; border:1px solid rgba(244,246,249,.22); border-radius:46% 54% 38% 62%; }
.location-art::before { width:67%; height:59%; transform:rotate(18deg); }
.location-art::after { width:42%; height:72%; transform:rotate(-28deg); }
.map-line { width:76%; height:1px; background:rgba(244,246,249,.25); transform:rotate(-17deg); }
.location-dot { position:absolute; width:92px; height:92px; border-radius:50%; background:var(--cream); color:var(--clay); display:grid; place-items:center; box-shadow:0 0 0 12px rgba(244,246,249,.12); }
.location-dot b { font:45px Georgia,serif; }
.location-copy { padding:100px clamp(35px,7vw,110px); display:flex; flex-direction:column; justify-content:center; }
.location-copy h2 { margin:0 0 30px; font-size:clamp(43px,4.8vw,72px); line-height:1; letter-spacing:-.035em; }
.location-copy>p:not(.eyebrow) { font:17px/1.75 Georgia,serif; color:var(--brand-muted); }
.location-points { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.location-points span { padding:9px 12px; border:1px solid rgba(29,44,70,.27); border-radius:999px; font-size:9px; letter-spacing:.12em; }
.contact { display:flex; flex-direction:column; align-items:center; text-align:center; background:var(--brand-navy); color:var(--cream); }
.contact-logo { width:170px; height:auto; margin-bottom:30px; padding:12px 16px; background:var(--brand-navy); border-radius:2px; }
.contact h2 { max-width:900px; margin:0 0 26px; font-size:clamp(42px,5vw,75px); line-height:1.06; letter-spacing:-.035em; }
.contact h2 em { color:var(--brand-silver); font-weight:400; }
.contact>p:not(.eyebrow) { max-width:640px; color:rgba(244,246,249,.68); line-height:1.7; }
.domain { margin-top:34px; padding-bottom:7px; border-bottom:1px solid rgba(244,246,249,.4); font:18px Georgia,serif; letter-spacing:.1em; }
footer { padding:18px clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; gap:30px; background:var(--brand-navy); color:rgba(255,255,255,.72); font-size:10px; letter-spacing:.08em; }
.footer-brand { padding:5px 10px; background:var(--brand-navy); border-radius:2px; }
.footer-brand img { width:86px; height:60px; }
footer>a:last-child { text-transform:uppercase; }
@media (max-width:820px) {
  .site-header nav { display:none; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { min-height:690px; padding-top:110px; }
  .hero-art { min-height:560px; }
  .intro { grid-template-columns:1fr; gap:34px; }
  .stay-list { grid-template-columns:1fr; }
  .equipment-heading { grid-template-columns:1fr; gap:34px; }
  .equipment-grid { grid-template-columns:1fr; }
  .equipment-grid article { min-height:255px; }
  .environment { grid-template-columns:1fr; gap:55px; }
  .environment-actions article { padding-right:42px; }
  .principles { grid-template-columns:1fr; }
  .principles article { min-height:280px; }
  .marousi { grid-template-columns:1fr; }
  .location-art { min-height:500px; }
  footer { flex-direction:column; text-align:center; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Project presentation phase */
.culture { background:var(--brand-white); }
.culture-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:3rem; }
.culture-heading h2 { max-width:650px; }
.culture-heading > p { max-width:380px; line-height:1.8; }
.culture-date { margin:2rem 0 1rem; font-weight:600; }
.culture-filters { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2rem; }
.culture-filters button { cursor:pointer; border:1px solid var(--brand-border); border-radius:30px; background:var(--brand-white); color:var(--ink); padding:.65rem 1rem; font:inherit; }
.culture-filters button[aria-pressed="true"] { background:var(--ink); color:var(--brand-white); border-color:var(--ink); }
.culture a:focus-visible,.culture button:focus-visible { outline:3px solid var(--brand-accent); outline-offset:4px; }
.culture-event { display:grid; grid-template-columns:145px minmax(0,1fr) 185px; align-items:start; gap:2rem; padding:2rem 0; border-top:1px solid var(--brand-border); }
.culture-event h3 { font-size:1.45rem; line-height:1.4; margin:.3rem 0 .8rem; }
.culture-event p { line-height:1.7; margin:.4rem 0; }
.culture-time { display:flex; flex-direction:column; gap:.5rem; }
.culture-time time { font-size:2rem; font-variant-numeric:tabular-nums; }
.culture-time small { color:var(--brand-muted); font-size:.8rem; line-height:1.5; }
.culture-area { color:var(--brand-accent); font-weight:600; }
.culture-event > a { align-self:center; font-size:.9rem; line-height:1.6; text-decoration:underline; text-underline-offset:4px; }
.culture-sources { background:var(--paper); padding:1.5rem; margin-top:1.5rem; }
.culture-sources h3 { font-size:1.1rem; margin-bottom:1rem; }
.culture-sources > div { display:flex; flex-wrap:wrap; gap:1rem 2rem; }
.culture-sources a { font-size:.9rem; text-decoration:underline; text-underline-offset:4px; }
.culture-note,.culture-empty { font-size:.9rem; line-height:1.8; margin-top:1.5rem; color:var(--brand-muted); }
@media(max-width:760px) { .culture-heading { flex-direction:column; gap:1rem; } .culture-event { grid-template-columns:90px minmax(0,1fr); gap:1rem; } .culture-event > a { grid-column:2; } .culture-time time { font-size:1.65rem; } }
.project-status { font-size:1rem; line-height:1.6; margin:1.5rem 0; color:var(--brand-silver); }
.hero-project-image { margin:0; min-width:0; display:flex; flex-direction:column; justify-content:center; background:var(--paper); }
.hero-project-image img { display:block; width:100%; height:auto; object-fit:contain; }
.hero-project-image figcaption { padding:1rem 1.5rem; font-size:.875rem; line-height:1.5; }
.operation { background:var(--paper); }
.operation-intro { max-width:760px; font-size:1.125rem; line-height:1.8; margin:2rem 0 3rem; }
.operation-rows article { display:grid; grid-template-columns:minmax(220px,1fr) 2fr; gap:3rem; border-top:1px solid var(--line); padding:2rem 0; }
.operation-rows h3 { font-size:1.5rem; line-height:1.4; }
.operation-rows p { font-size:1rem; line-height:1.8; margin:0; }
.site-header nav { flex-wrap:wrap; }
@media (max-width:760px) { .operation-rows article { grid-template-columns:1fr; gap:1rem; } .hero-project-image { min-height:0; } }

.culture-region-badge { display:inline-block; border-radius:4px; padding:.2rem .5rem; font-size:.75rem; font-weight:700; background:var(--brand-surface); color:var(--brand-accent); margin-right:.4rem; }
.culture-region-badge[data-region="athens-center"] { background:var(--brand-surface); color:var(--brand-accent); }
.culture-regions button[data-region="athens-center"][aria-pressed="true"] { background:var(--brand-accent); border-color:var(--brand-accent); }
.culture-regions button[data-region="local"][aria-pressed="true"] { background:var(--brand-accent); border-color:var(--brand-accent); }

.garden-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.garden-gallery { align-self:start; align-content:start; }
.garden-gallery a { display:block; aspect-ratio:4/3; min-width:0; background:var(--brand-surface); }
.garden-gallery img { aspect-ratio:4/3; height:100%; object-fit:contain; }
@media (min-width:821px) {
  .stay-card { display:grid; grid-template-rows:subgrid; grid-row:span 6; row-gap:0; min-width:0; }
  .stay-card > a { justify-self:start; align-self:start; }
}
.garden-gallery a:focus-visible { outline:3px solid var(--brand-accent); outline-offset:3px; }
.portfolio-cover,.portfolio-tile { padding:0; border:0; display:block; width:100%; cursor:zoom-in; background:var(--brand-surface); }
.portfolio-cover { height:100%; }
.portfolio-tile { aspect-ratio:4/3; min-width:0; }
.portfolio-cover:focus-visible,.portfolio-tile:focus-visible { outline:3px solid var(--brand-accent); outline-offset:-3px; }
.stay-image > span,.stay-image figcaption { pointer-events:none; }
.stay-portfolio { position:fixed; inset:0; margin:auto; width:min(1200px,96vw); max-width:96vw; height:94dvh; max-height:94dvh; padding:0; border:0; border-radius:10px; background:var(--brand-paper); color:var(--brand-navy); }
.stay-portfolio::backdrop { background:rgba(29,44,70,.8); }
.portfolio-shell { display:flex; flex-direction:column; height:100%; padding:20px; box-sizing:border-box; }
.portfolio-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-shrink:0; }
.portfolio-header h2 { font-size:clamp(18px,2vw,28px); margin:0; }
.portfolio-header p { font-size:12px; margin:6px 0 12px; }
.portfolio-header button,.portfolio-stage button { border:0; border-radius:50%; background:var(--brand-white); color:var(--brand-navy); width:44px; height:44px; cursor:pointer; flex-shrink:0; }
.portfolio-stage { position:relative; flex:1; min-height:0; display:flex; align-items:center; justify-content:center; background:var(--brand-surface); }
.portfolio-stage > img { display:block; width:100%; height:100%; object-fit:contain; }
.portfolio-zoom-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 10px; font-size:12px; }
.portfolio-zoom-toolbar button { cursor:pointer; border:1px solid var(--brand-border); border-radius:5px; background:white; padding:8px 12px; }
.portfolio-zoom-viewport { position:absolute; inset:0; overflow:auto; overscroll-behavior:contain; }
.portfolio-stage .portfolio-zoom-image { position:static; transform:none; display:block; width:100%; height:100%; max-width:none; padding:0; margin:0; border:0; border-radius:0; box-shadow:none; background:transparent; cursor:zoom-in; }
.portfolio-stage .portfolio-zoom-image.is-zoomed { width:200%; height:200%; cursor:zoom-out; }
.portfolio-zoom-image img { display:block; width:100%; height:100%; max-width:none; object-fit:contain; }
.portfolio-stage button { position:absolute; z-index:1; top:50%; transform:translateY(-50%); box-shadow:0 2px 8px #0002; }
.portfolio-prev { left:10px; }.portfolio-next { right:10px; }
.portfolio-caption { margin:10px 0; font-size:12px; line-height:1.5; flex-shrink:0; }
.portfolio-thumbnails { display:flex; gap:8px; overflow-x:auto; padding:4px; flex-shrink:0; }
.portfolio-thumbnails button { width:84px; height:62px; flex-shrink:0; padding:2px; border:2px solid transparent; background:var(--brand-surface); cursor:pointer; }
.portfolio-thumbnails button[aria-pressed="true"] { border-color:var(--brand-accent); }
.portfolio-thumbnails img { width:100%; height:100%; object-fit:contain; }
.stay-portfolio button:focus-visible { outline:3px solid var(--brand-accent); outline-offset:2px; }
@media(max-width:650px) { .portfolio-shell { padding:12px; }.portfolio-thumbnails button { width:65px; height:50px; } }
#stay-garden { scroll-margin-top:120px; }

#stay-courtyard { scroll-margin-top:120px; }
.eco-detail { background:var(--brand-paper); color:var(--brand-navy); min-height:80vh; }
.eco-back { display:inline-block; margin-bottom:2rem; font-size:.9rem; text-decoration:underline; text-underline-offset:4px; }
.eco-detail .eyebrow { color:var(--brand-accent); }
.eco-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; align-items:center; margin-bottom:3.5rem; }
.eco-heading h1 { font-family:Georgia,serif; font-size:clamp(2.5rem,4.2vw,4.75rem); line-height:1.06; font-weight:400; letter-spacing:-.035em; }
.eco-heading p { line-height:1.85; }
.eco-phase { font-size:.85rem; color:var(--brand-accent); margin-top:1rem; }
.eco-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--brand-border); border-left:1px solid var(--brand-border); }
.eco-grid article { padding:1.8rem; border-right:1px solid var(--brand-border); border-bottom:1px solid var(--brand-border); background:var(--brand-paper); }
.eco-card-top { display:flex; justify-content:space-between; align-items:flex-start; color:var(--brand-accent); font-size:.7rem; letter-spacing:.1em; margin-bottom:1.25rem; }
.eco-icon { display:grid; place-items:center; width:48px; height:48px; background:var(--brand-surface); color:var(--brand-accent); }
.eco-grid h2 { font-family:Georgia,serif; font-size:1.55rem; line-height:1.2; font-weight:400; margin-bottom:1rem; }
.eco-grid p { font-size:.9rem; line-height:1.8; color:var(--brand-muted); }
.eco-card-photo { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; background:var(--brand-white); margin:0 0 1.5rem; }
.booking-page { background:var(--brand-paper); }
.booking-page h1 { font:400 clamp(2.3rem,4vw,4rem)/1.15 Georgia,serif; }
.booking-intro { max-width:780px; line-height:1.8; margin-top:1rem; }
.booking-month { display:flex; align-items:center; justify-content:center; gap:2rem; margin:3rem 0 1rem; }
.booking-month h2 { font-size:1.5rem; text-align:center; }
.booking-month button { background:white; border:1px solid var(--brand-border); padding:.8rem 1.2rem; border-radius:6px; cursor:pointer; font-size:1.3rem; }
.booking-month button:focus-visible { outline:3px solid var(--brand-accent); outline-offset:3px; }
.booking-legend { font-size:.9rem; line-height:1.8; margin:1.5rem 0; }
.booking-key { display:inline-block; width:14px; height:14px; background:var(--brand-accent); vertical-align:middle; margin-right:.5rem; }
.booking-calendars { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.booking-unit { padding:1.4rem; background:var(--brand-white); border:1px solid var(--brand-border); border-radius:8px; min-width:0; }
.booking-unit h3 { font-size:1.2rem; }
.booking-update { font-size:.8rem; color:var(--brand-muted); margin:.6rem 0 1.3rem; }
.booking-calendar { width:100%; table-layout:fixed; border-spacing:3px; }
.booking-calendar th { font-size:.75rem; font-weight:600; padding:.4rem 0; }
.booking-calendar td { text-align:center; height:40px; font-size:.85rem; background:var(--brand-paper); border-radius:3px; }
.booking-calendar td:empty { background:transparent; }
.booking-calendar td.is-booked { background:var(--brand-accent); color:white; font-weight:700; }
.booking-dot { display:block; font-size:.4rem; }
.booking-periods { width:100%; border-collapse:collapse; margin-top:1.2rem; font-size:.8rem; }
.booking-periods caption { text-align:left; font-weight:600; margin-bottom:.7rem; }
.booking-periods th,.booking-periods td { text-align:left; padding:.6rem .2rem; border-top:1px solid var(--brand-border); }
@media(max-width:1100px) { .booking-calendars { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) { .booking-calendars { grid-template-columns:1fr; } .booking-month { gap:1rem; } }
.eco-footnote { display:flex; gap:1rem; align-items:flex-start; max-width:1000px; font-size:.8rem; line-height:1.8; margin-top:2rem; }
.eco-footnote svg { flex-shrink:0; color:var(--brand-accent); }
.eco-detail a:focus-visible { outline:3px solid var(--brand-accent); outline-offset:5px; }
@media(max-width:1100px) { .eco-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .eco-heading { gap:2rem; } }
@media(max-width:650px) { .eco-heading,.eco-grid { grid-template-columns:1fr; } .eco-heading { margin-bottom:2rem; } .eco-grid article { padding:1.5rem; } }

.booking-demo-banner { background:var(--brand-surface); color:var(--brand-accent); padding:1.2rem; border:1px solid var(--brand-border); border-radius:6px; margin-top:1.5rem; line-height:1.8; }
.booking-demo-label { color:var(--brand-accent); font-size:.8rem; margin-top:.5rem; font-weight:600; }

/* Consistent navigation across home and both subpages. */
:root { --navigation-height:104px; --header-background:var(--brand-navy); }
.site-header { position:fixed; height:var(--navigation-height); min-height:0; flex-wrap:nowrap; gap:24px; z-index:50; background:var(--header-background); color:var(--brand-white); }
.site-header .menu-toggle { display:none; color:var(--brand-white); background:var(--header-background); border:1px solid #ffffff66; padding:10px 14px; border-radius:4px; font:inherit; cursor:pointer; }
.site-header nav { display:flex; flex-wrap:nowrap; align-items:center; gap:clamp(12px,1.3vw,24px); font-size:12px; letter-spacing:.015em; }
.site-header nav a { display:block; padding:10px 0; white-space:nowrap; }
.site-header nav a[aria-current] { color:var(--brand-white); border-bottom:2px solid var(--brand-white); }
.site-header a:focus-visible,.site-header button:focus-visible { outline:3px solid var(--brand-silver); outline-offset:4px; }
main section[id],#top { scroll-margin-top:calc(var(--navigation-height) + 20px); }
.eco-detail,.booking-page { padding-top:calc(var(--navigation-height) + 40px); }
@media(max-width:1279px){
 :root { --navigation-height:88px; }
 .site-header { padding:10px 24px; }
 .site-header .brand img { width:90px; height:64px; }
 .site-header .menu-toggle { display:block; margin-left:auto; }
 .site-header nav { display:none; position:absolute; top:100%; left:0; right:0; padding:12px 24px 24px; max-height:calc(100dvh - var(--navigation-height)); overflow-y:auto; background:var(--header-background); border-bottom:1px solid var(--line); box-shadow:0 12px 18px #1d2c4612; }
 .site-header nav.is-open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
 .site-header nav a { padding:12px 8px; font-size:16px; white-space:normal; }
 .hero { padding-top:var(--navigation-height); }
}

.culture-page{padding-top:var(--navigation-height)}
.culture-heading h1{font-size:clamp(40px,5vw,72px);line-height:1.05;font-weight:400;margin:0}

.marousi-guide{grid-column:1/-1;background:var(--brand-paper);color:var(--brand-navy);padding:48px clamp(24px,6vw,96px)}
.marousi-guide-intro{max-width:900px;margin-bottom:36px}
.marousi-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 56px}
.marousi-guide article{border-top:1px solid var(--brand-border);padding-top:24px;min-width:0}
.marousi-guide h3{font-size:27px;line-height:1.2;margin:0 0 16px;font-weight:400}
.marousi-guide p{font-size:16px;line-height:1.8;margin:0 0 16px}
.marousi-guide a{color:var(--brand-accent);text-decoration:underline;text-underline-offset:4px;font-size:14px;overflow-wrap:anywhere}
.marousi-guide .guide-note{font-size:13px;margin:40px 0 0;color:var(--brand-muted)}
@media(max-width:700px){.marousi-guide-grid{grid-template-columns:1fr}.marousi-guide{padding:32px 24px}}

.faq{background:var(--brand-paper);color:var(--brand-navy)}.faq h2{font-size:clamp(36px,5vw,64px);font-weight:400}.faq details{max-width:1000px;border-bottom:1px solid var(--brand-border);padding:20px 0}.faq summary{cursor:pointer;font-size:20px;line-height:1.5;font-weight:600}.faq details p{font-size:16px;line-height:1.8;max-width:850px;margin:18px 0 0}.faq a{text-decoration:underline;text-underline-offset:3px}.faq summary:focus-visible{outline:2px solid var(--brand-accent);outline-offset:5px}

/* Local introduction on the left, complete visitor guide on the right. */
.marousi{grid-template-columns:minmax(0,2fr) minmax(0,3fr);grid-template-rows:240px 1fr;background:var(--brand-deep);align-items:start}
.marousi>.location-art{grid-column:1;grid-row:1;height:240px;min-height:0;align-self:stretch}
.marousi>.location-copy{grid-column:1;grid-row:2;background:var(--brand-deep);color:var(--brand-white);padding:32px clamp(24px,3vw,48px) 48px;position:sticky;top:var(--navigation-height);align-self:start}
.marousi>.location-copy h2{font-size:clamp(36px,3.6vw,58px)}
.marousi>.location-copy>p:not(.eyebrow){color:var(--brand-silver)}
.marousi .location-points span{border-color:#8294aa}
.marousi>.marousi-guide{grid-column:2;grid-row:1/3;min-width:0;padding:48px clamp(24px,4vw,64px)}
.marousi .marousi-guide-grid{grid-template-columns:1fr}
@media(max-width:820px){
 .marousi{grid-template-columns:1fr;grid-template-rows:auto}
 .marousi>.location-art,.marousi>.location-copy,.marousi>.marousi-guide{grid-column:1;grid-row:auto}
 .marousi>.location-copy{position:static}
 .marousi>.marousi-guide{padding:32px 24px}
}

.opening-plan{background:var(--brand-surface);padding-top:36px;padding-bottom:36px}.opening-plan h2{font-size:32px}.opening-plan p{line-height:1.7}.opening-plan li{padding:8px 0}.opening-state{font-size:14px;color:var(--brand-accent)}

/* Residence selection and editable mythology descriptions. */
.stay-name-button { font:inherit; color:inherit; text-align:left; border:0; padding:0; background:none; cursor:pointer; }
.stay-details-button { justify-self:start; align-self:start; display:inline-flex; align-items:center; gap:8px; background:none; border:0; border-bottom:1px solid currentColor; padding:8px 0; font:inherit; color:inherit; cursor:pointer; }
.stay-name-button:focus-visible,.stay-details-button:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.portfolio-mythology { flex-shrink:0; margin:0 0 14px; padding:12px 16px; border-left:3px solid var(--brand-accent); background:var(--brand-paper); color:var(--brand-navy); }
.portfolio-mythology h3 { margin:0 0 6px; font-size:14px; line-height:1.4; }
.portfolio-mythology p { margin:0; max-width:85ch; font-size:16px; line-height:1.6; }
.portfolio-shell { height:auto; min-height:100%; }
.portfolio-stage { flex:none; height:48vh; min-height:180px; }
@media(max-width:650px) { .portfolio-mythology { padding:10px 12px; }.portfolio-stage { height:34vh; } }

/* Residences without media retain their names and mythology. */
.shared-grounds { background:var(--brand-white); }
.shared-grounds h2 { font-size:42px; line-height:1.15; margin:0 0 20px; }
.grounds-intro { font-size:18px; line-height:1.7; margin:0 0 32px; max-width:760px; }
.grounds-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.grounds-gallery figure { margin:0; min-width:0; }
.grounds-photo { display:block; width:100%; aspect-ratio:2.29; border:0; padding:0; background:var(--brand-paper); cursor:zoom-in; }
.grounds-photo img { display:block; width:100%; height:100%; object-fit:contain; }
.grounds-gallery figcaption { font-size:16px; line-height:1.5; margin-top:12px; }
.grounds-note { color:var(--brand-muted); font-size:14px; line-height:1.6; margin:24px 0 0; }
@media(max-width:820px) { .grounds-gallery { grid-template-columns:1fr; }.shared-grounds h2 { font-size:36px; } }
.hero.hero-without-photo { grid-template-columns:1fr; min-height:0; }
.hero-without-photo .hero-copy { min-width:0; padding-top:100px; padding-bottom:80px; }
@media(max-width:420px) { .hero h1 { font-size:40px; overflow-wrap:anywhere; } }
.stay-card.stay-without-photo { display:flex; flex-direction:column; gap:16px; }
.stay-without-photo h3,.stay-without-photo p { margin:0; }
.stay-number { font:32px Georgia,serif; color:var(--olive); }
.stay-portfolio.portfolio-text-only { width:min(720px,calc(100vw - 32px)); height:auto; max-height:90vh; }
.portfolio-text-only .portfolio-shell { min-height:0; }
.portfolio-text-only .portfolio-mythology { margin-top:18px; margin-bottom:0; }
.stay-floorplan .stay-image { background:white; padding-bottom:32px; }
.stay-floorplan .portfolio-cover { background:white; }
.stay-floorplan .stay-image img { object-fit:contain; }
.stay-floorplan:hover .stay-image img { transform:none; }
.stay-floorplan .stay-image::after { display:none; }
.stay-floorplan .stay-image figcaption { bottom:8px; color:var(--ink); font-size:14px; letter-spacing:0; text-transform:none; }
.stay-floorplan .stay-image>span { color:var(--ink); background:white; padding:4px; }
.stay-floorplan .stay-gallery img { object-fit:contain; background:white; }

.edit-entry{display:block;padding:20px;text-align:center;background:var(--brand-navy);color:white;font:14px Arial}.editor-panel{position:fixed;right:0;top:0;bottom:0;width:360px;background:white;z-index:100;padding:24px;overflow:auto;color:var(--brand-navy);border-left:1px solid var(--brand-border);font:16px/1.5 Arial}.load-error{padding:60px;font:18px/1.6 Arial}.eyebrow{font-size:12px}.stay-card p,.equipment-grid p{font-size:16px}.stay-meta,.text-link,.equipment-note,.stay-card>a{font-size:14px}h1{line-height:1.04}.hero-art img{height:100%;width:100%;object-fit:cover}.hero-art{min-height:650px}nav{font-size:14px;letter-spacing:0}.brand-name{font:26px Georgia;letter-spacing:.1em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.editing #site-content{margin-right:360px}.editing .site-header{right:360px}.editing [data-content-key]:hover,.editing [data-image-key]:hover{outline:2px dashed var(--brand-accent);outline-offset:3px;cursor:pointer}.editor-panel h2{font:30px/1.15 Georgia;margin:12px 0}.editor-panel p{font-size:14px;line-height:1.6}.editor-kicker{font-size:12px;letter-spacing:.14em;color:var(--brand-accent);font-weight:bold}.editor-panel label{display:block;font-size:14px;font-weight:bold;margin:18px 0}.editor-panel input,.editor-panel textarea,.editor-panel select{display:block;width:100%;margin-top:8px;border:1px solid var(--brand-border);border-radius:5px;padding:10px;background:white;color:var(--brand-navy);font:16px/1.5 Arial;box-sizing:border-box}.editor-panel textarea{resize:vertical}.editor-panel button{padding:10px 12px;background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:5px;font:14px/1.5 Arial;color:var(--brand-navy);cursor:pointer}.editor-panel button:disabled{opacity:.5;cursor:default}.editor-tabs{display:flex;flex-wrap:wrap;gap:5px;margin:22px 0}.editor-tabs button[aria-pressed=true]{background:var(--brand-navy);color:white}.editor-save{margin-top:24px;border-top:1px solid var(--brand-border);padding-top:18px}.editor-save strong{font-size:13px}.editor-panel .primary{width:100%;background:var(--brand-accent);color:white;border:0;margin-top:10px;font-weight:bold;padding:14px}.editor-photo{width:100%;max-height:190px;object-fit:contain;background:var(--brand-surface);border-radius:5px}.editor-message{color:var(--brand-accent)}.editor-backup{padding:12px 0;border-top:1px solid var(--brand-border);font-size:14px}.editor-exit{display:inline-block;margin:20px 0;text-decoration:underline;font-size:14px}.editor-panel a{color:var(--brand-accent);text-decoration:underline}:focus-visible{outline:3px solid var(--brand-accent);outline-offset:3px}@media(max-width:850px){.editing #site-content{margin-right:0;padding-bottom:55vh}.editing .site-header{right:0}.editor-panel{top:auto;left:0;width:100%;height:52vh;border-top:2px solid var(--brand-accent);border-left:0}.editor-heading p{display:none}.editor-panel h2{font-size:24px}}

/* Shared language navigation and content layouts. */
.site-header{gap:16px}.site-header nav{gap:14px;font-size:12px;letter-spacing:0}.language-switch{position:relative;flex-shrink:0;margin-left:auto}.language-switch summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none;padding:10px 4px}.language-switch summary::-webkit-details-marker{display:none}.language-switch>div{position:absolute;right:0;top:100%;min-width:160px;background:#1c2d45;border:1px solid #8998a9;padding:8px;box-shadow:0 6px 15px #0003}.language-switch a{display:block;color:white;padding:10px 12px}.language-switch a[aria-current]{background:#ffffff20}.language-switch a:hover{background:#ffffff20}
.hero .hero-subtitle{font-size:32px;line-height:1.3;max-width:800px;font-weight:400;margin:16px 0}.hero-without-photo .hero-copy{padding-top:64px;padding-bottom:64px}.international .hero h1{font-size:56px;line-height:1.1;max-width:1000px;overflow-wrap:anywhere}.international h2,.stay-planning h2{font-size:36px;font-weight:400;line-height:1.2}.international h3,.stay-planning h3{font-size:25px;font-weight:400;line-height:1.3}.international p,.stay-planning p{font-size:17px;line-height:1.8;max-width:1000px}.international a,.stay-planning a{overflow-wrap:anywhere}.international-page{padding-top:calc(var(--navigation-height) + 48px)}.international-page h1{font-size:48px;font-weight:400;line-height:1.15;overflow-wrap:anywhere}.international-houses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:36px}.international-houses article{min-width:0}.international-houses img{width:100%;height:auto;aspect-ratio:1.5;object-fit:contain}.international-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:32px 0}.international-gallery figure{margin:0;min-width:0}.international-photo{display:block;width:100%;border:0;background:white;padding:0;cursor:zoom-in;aspect-ratio:1.5}.international-photo img{display:block;width:100%;height:100%;object-fit:contain}.international-gallery figcaption{font-size:13px;line-height:1.5;margin-top:8px;color:#526170}.international .grounds-gallery img{width:100%;height:auto;display:block}.house-navigation{display:flex;gap:24px;flex-wrap:wrap;margin:28px 0}.house-navigation a,.official-programmes a{text-decoration:underline;text-underline-offset:4px}.official-programmes{display:grid;gap:20px;margin:32px 0}.official-programmes a{display:flex;align-items:center;gap:10px}.international .eco-grid img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover}.international .eco-grid h2{font-size:25px}.international-event{border-top:1px solid #b8c1cc;padding:24px 0}.international .equipment h2{margin-bottom:32px}
@media(max-width:1650px){.site-header .menu-toggle{display:block;margin-left:auto}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:12px 24px 24px;max-height:calc(100dvh - var(--navigation-height));overflow:auto;background:var(--header-background);border-bottom:1px solid var(--line)}.site-header nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-header nav a{padding:12px 8px;font-size:16px;white-space:normal}.language-switch{margin-left:0}}
@media(max-width:700px){.international-houses,.international-gallery{grid-template-columns:1fr}.international .hero h1,.international-page h1{font-size:38px}.hero .hero-subtitle{font-size:25px}.international h2,.stay-planning h2{font-size:30px}.site-header{gap:12px}.international .band{padding-left:24px;padding-right:24px}.house-navigation{gap:16px}.international .contact h2{font-size:30px}.hero-without-photo .hero-copy{padding-top:48px;padding-bottom:48px}}
html{scroll-padding-top:calc(var(--navigation-height) + 16px)}
.eco-heading h1{font-size:48px;letter-spacing:0;overflow-wrap:anywhere}
.international-page .lead{color:var(--brand-navy)}
.booking-month{display:grid;grid-template-columns:44px minmax(0,300px) 44px;gap:16px}
.booking-month button{width:44px;height:44px;padding:0;display:grid;place-items:center}
.international .booking-month h2{font-size:24px;min-width:0}
.international .booking-unit h3{font-size:22px}
.international .booking-update{font-size:14px;min-height:50px}
.booking-calendar tbody{height:258px}
@media(max-width:650px){.eco-heading h1{font-size:34px}.booking-month{gap:8px;grid-template-columns:44px minmax(0,1fr) 44px}.international .booking-month h2{font-size:20px}}
