/* maltezskyrad.cz — Czech Grand Priory of the Sovereign Order of Malta
   Frame follows the Grand Magistry Entities Theme (March 2025): colours #e31818/#e31a18, #f3f3f3, #c7c7c7, #454545, #000; font Asap.
   Editorial headings: EB Garamond (flagged for Grand Magistry confirmation; switch --display to var(--ui) to remove). */

/* ---------- fonts (self-hosted, OFL) ---------- */
@font-face{font-family:"Asap";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/asap-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Asap";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/asap-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Asap";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/asap-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Asap";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/asap-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Asap";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/asap-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Asap";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/asap-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Asap";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/asap-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Asap";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/asap-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Asap";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/asap-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Asap";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/asap-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/eb-garamond-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/eb-garamond-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/eb-garamond-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/eb-garamond-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/eb-garamond-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/eb-garamond-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- tokens ---------- */
:root{
  --red:#e31a18;          /* Grand Magistry web red (theme CSS); spec sheet lists #e31818 */
  --red-text:#c80e00;     /* darker red from the GM theme CSS, for link text on grey (contrast) */
  --ink:#454545;          /* GM body text */
  --ink-strong:#111;
  --muted:#5f5f5f;
  --grey:#f3f3f3;
  --rule:#c7c7c7;
  --white:#fff;
  --sky:#a7b7d5;          /* right edge of the official banner photograph */
  --sky-left:#8ca2c7;     /* left edge of the same photograph */
  --ui:"Asap","Segoe UI",Arial,sans-serif;
  --display:"EB Garamond",Garamond,"Times New Roman",serif;
  --wrap:1180px;
  --gutter:clamp(16px,3vw,32px);
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --fast:160ms;--med:280ms;
  color-scheme:light;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:var(--s5)}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--white);color:var(--ink);font:400 1.0625rem/1.65 var(--ui);font-kerning:normal;font-variant-ligatures:common-ligatures;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--red);text-underline-offset:.18em;text-decoration-thickness:1px;transition:color var(--fast) var(--ease),text-decoration-color var(--fast) var(--ease)}
a:hover{text-decoration-thickness:2px}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px}
main:focus{outline:none}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--s4);top:-60px;z-index:50;background:var(--ink-strong);color:#fff;padding:var(--s2) var(--s4);text-decoration:none;font-weight:600;transition:top var(--fast) var(--ease)}
.skip:focus{top:var(--s4)}
body>main{flex:1 0 auto}
h1,h2,h3,h4{color:var(--ink-strong);text-wrap:balance;margin:0}
p{margin:0}
.small{font-size:.9rem;color:var(--muted)}
.label{font:600 .8rem/1.3 var(--ui);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.byline{font-size:.92rem;color:var(--muted)}
.byline a{color:inherit}
.display{font:500 clamp(2.05rem,4.2vw,3.1rem)/1.06 var(--display);letter-spacing:-.01em}
.display-m{font:500 clamp(1.6rem,2.8vw,2.15rem)/1.12 var(--display)}
.display-s{font:500 1.45rem/1.2 var(--display)}
.lead{font-size:clamp(1.08rem,1.6vw,1.2rem);line-height:1.6;color:#333}
.lead-s{font-size:1.06rem;color:#333;max-width:65ch}
.link-strong{font-weight:600;text-decoration:none;color:var(--red)}
.link-strong:hover{text-decoration:underline}
.band-grey .link-strong,.band-grey a:not(.btn){color:var(--red-text)}
.btn{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s5);background:var(--red);color:#fff;font-weight:600;text-decoration:none;border-radius:2px;transition:background var(--fast) var(--ease),transform var(--fast) var(--ease)}
.btn:hover{background:#c41513}
.btn:active{transform:translateY(1px)}

/* ---------- page transitions (cross-document view transitions, progressive) ---------- */
@view-transition{navigation:auto}
/* the transition name makes the header its own stacking context; lift it so dropdowns sit above animated page content */
.site-header{view-transition-name:site-header;position:relative;z-index:30}
/* the menu bar stays at the top once the page scrolls past the banner: the header is sticky, shifted up by
   everything above the menu (site.js measures it into --stick); without JavaScript the header scrolls away as before */
.site-header.sticky{position:sticky;top:calc(-1 * var(--stick,0px))}
html.has-sticky{scroll-padding-top:calc(var(--nav-h,0px) + 24px)}
@media (max-width:960px){.site-header.sticky .menu.open>.nav-list{max-height:calc(100dvh - var(--nav-h,48px));overflow-y:auto;overscroll-behavior:contain}}
.site-footer{view-transition-name:site-footer}
/* the Magistry frame holds still: the new header and footer are shown at once (the old ones, which may carry an open mobile menu, are dropped) */
::view-transition-group(site-header),::view-transition-group(site-footer),::view-transition-new(site-header),::view-transition-new(site-footer){animation:none}
::view-transition-old(site-header),::view-transition-old(site-footer){display:none}
/* the page beneath: the browser's own balanced cross-fade (no dip to white), slowed a little, no movement */
::view-transition-old(root),::view-transition-new(root){animation-duration:550ms;animation-timing-function:cubic-bezier(.4,0,.2,1)}
/* within a section: the side menu stays put, the content slides in from the right */
html:active-view-transition-type(slide) .side-nav{view-transition-name:side-nav}
html:active-view-transition-type(slide) .page-main{view-transition-name:page-main}
html:active-view-transition-type(slide)::view-transition-group(side-nav),html:active-view-transition-type(slide)::view-transition-new(side-nav),html:active-view-transition-type(slide)::view-transition-group(page-main){animation:none}
html:active-view-transition-type(slide)::view-transition-old(side-nav){display:none}
html:active-view-transition-type(slide)::view-transition-old(page-main){animation:slide-out 240ms cubic-bezier(.4,0,1,1) both}
html:active-view-transition-type(slide)::view-transition-new(page-main){animation:slide-in 560ms cubic-bezier(.16,1,.3,1) 100ms both}
@keyframes slide-out{to{opacity:0;transform:translateX(-28px)}}
@keyframes slide-in{from{opacity:0;transform:translateX(48px)}}


/* ---------- header (Grand Magistry frame) ---------- */
.topbar{background:var(--red);color:#fff;font-size:.8rem}
.topbar .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s5);min-height:36px}
.topbar a{color:#fff;text-decoration:none}
.topbar a:hover{text-decoration:underline}
.topbar-home{font-weight:600;letter-spacing:.02em}
.topbar-social{display:flex;gap:var(--s4)}
.lang{display:flex;gap:2px;margin-left:auto}
.lang a{display:inline-grid;place-items:center;min-width:32px;min-height:28px;padding:0 6px;border-radius:2px;font-weight:500;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}
.lang a:hover{background:rgba(255,255,255,.18);text-decoration:none}
.lang a[aria-current]{background:#fff;color:var(--red);font-weight:700}
/* the official 2546×218 banner photograph, centred at native height as in the Grand Magistry theme; the personalised lockup sits on it */
.banner{position:relative;background-color:var(--sky);background-image:linear-gradient(90deg,rgba(14,28,46,0) 38%,rgba(14,28,46,.5) 62%,rgba(14,28,46,.6) 100%),url(/img/banner/banner-photo.webp),linear-gradient(90deg,var(--sky-left) 50%,var(--sky) 50%);background-repeat:no-repeat;background-size:100% 100%,2546px 218px,100% 100%;background-position:0 0,max(-653px,calc(50vw - 1273px)) 0,0 0}
.banner .wrap{display:flex;align-items:center;justify-content:flex-end;min-height:218px;padding-block:var(--s4);position:relative}
.banner{--shield:107px}
/* lockup: the shield keeps the Grand Magistry web size and top; accents may rise above it (--t), clear space Y = .077 × shield */
.banner-home{position:absolute;left:max(var(--gutter),env(safe-area-inset-left,0px));top:30px;line-height:0}
.lockup{display:block;width:auto;height:calc(var(--shield)*var(--h));margin-top:calc(var(--shield)*var(--t))}
.fullname{color:#fff;text-align:right;font:600 clamp(.74rem,1.2vw,1rem)/1.32 var(--ui);letter-spacing:.035em;text-transform:uppercase;max-width:31em;text-shadow:0 1px 2px rgba(0,0,0,.45),0 0 14px rgba(14,28,46,.5)}
.fullname span{display:block;margin-top:5px;font-size:.86em;letter-spacing:.09em}
.mainnav{background:var(--ink)}
.menu-toggle{display:none}
.nav-list{list-style:none;margin:0;padding:0;display:flex}
.nav-list>li{position:relative;flex:1 1 auto}
.nav-list>li>a{display:block;text-align:center;padding:13px 10px;color:#fff;text-decoration:none;font-size:.8rem;letter-spacing:.07em;text-transform:uppercase;border-right:1px solid rgba(255,255,255,.13);transition:background var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}
.nav-list>li:last-child>a{border-right:0}
.nav-list>li>a:hover,.nav-list>li:focus-within>a{background:#383838}
.nav-list>li>a[aria-current],.nav-list>li>a.is-active,.nav-list>li.is-active>a{background:#2f2f2f;box-shadow:inset 0 -3px 0 var(--red)}
.nav-list .is-active{background:#2f2f2f;box-shadow:inset 0 -3px 0 var(--red)}
.sub-toggle{display:none}
.sub{list-style:none;margin:0;padding:var(--s2) 0;position:absolute;left:0;top:100%;min-width:100%;width:max-content;max-width:340px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.14);z-index:20;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--fast) var(--ease),transform var(--fast) var(--ease),visibility 0s linear var(--fast)}
.sub a{display:block;padding:9px 18px;color:var(--ink);text-decoration:none;font-size:.92rem;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}
.sub a:hover{background:var(--grey);color:var(--red-text)}
/* the last items open their list leftwards, so no list reaches past the right edge (a hidden list still widens the page at tablet widths) */
.nav-list>li:nth-last-child(-n+3)>.sub{left:auto;right:0}
@media (hover:hover) and (min-width:961px){
  .has-sub:hover>.sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .nav-list>li:hover>a{box-shadow:inset 0 -3px 0 var(--red)}
  /* while the pointer is on another menu item, a menu kept open only by focus (after a click) closes */
  .nav-list:hover>.has-sub:not(:hover)>.sub{opacity:0;visibility:hidden;transition-delay:0s}
  .nav-list:hover>li:not(:hover)>a:not(.is-active):not([aria-current]){box-shadow:none}
}
/* one red line for every state: the item's own 3px underline, as wide as the item (the dropdown carries no rule of its own) */
@media (min-width:961px){.nav-list>li:focus-within>a,.has-sub.open>a{box-shadow:inset 0 -3px 0 var(--red)}}
@media (min-width:961px){.has-sub.closed:focus-within>.sub{opacity:0;visibility:hidden;transition-delay:0s}}  /* shut with Escape while the item keeps focus */
.has-sub:focus-within>.sub,.has-sub.open>.sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}

@media (max-width:960px){
  .topbar-social{display:none}
  /* photo pinned to a fixed height so the lockup never meets the name; it fades into the menu grey below */
  .banner{background-color:var(--ink);background-image:linear-gradient(180deg,rgba(69,69,69,0) 60px,var(--ink) 124px),url(/img/banner/banner-photo.webp);background-size:100% 100%,auto 128px;background-position:0 0,-383px 0}
  .banner .wrap{justify-content:flex-start;align-items:flex-end;min-height:0;padding-top:104px;padding-bottom:var(--s3)}
  .fullname{text-align:left;font-size:.72rem}
  .banner{--shield:60px}
  .banner-home{top:16px}
  .mainnav .wrap{padding-left:0;padding-right:0}
  .mainnav{border-top:1px solid rgba(255,255,255,.12)}
  .menu-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 max(var(--gutter),env(safe-area-inset-left,0px));background:none;border:0;color:#fff;font:600 .85rem var(--ui);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
  .menu-toggle::before{content:"";width:18px;height:12px;background:linear-gradient(#fff,#fff) 0 0/100% 2px no-repeat,linear-gradient(#fff,#fff) 0 50%/100% 2px no-repeat,linear-gradient(#fff,#fff) 0 100%/100% 2px no-repeat;transition:transform var(--med) var(--ease)}
  .menu-toggle[aria-expanded="true"]::before{transform:rotate(90deg)}
  .menu{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--med) var(--ease)}
  .menu>.nav-list{overflow:hidden;min-height:0}
  .js .menu{grid-template-rows:0fr}
  .js .menu.open{grid-template-rows:1fr}
  .nav-list{flex-direction:column}
  .nav-list>li{display:grid;grid-template-columns:1fr auto;border-top:1px solid rgba(255,255,255,.12)}
  .nav-list>li>a{text-align:left;padding:13px max(var(--gutter),env(safe-area-inset-left,0px));border-right:0;font-size:.85rem}
  .sub-toggle{display:grid;place-items:center;width:52px;background:none;border:0;border-left:1px solid rgba(255,255,255,.12);color:#fff;cursor:pointer}
  .sub-toggle span{width:9px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--med) var(--ease)}
  .sub-toggle[aria-expanded="true"] span{transform:rotate(225deg) translate(-2px,-2px)}
  .sub{position:static;grid-column:1/-1;max-width:none;width:auto;box-shadow:none;border-top:0;background:#3c3c3c;padding:0;opacity:1;visibility:visible;transform:none;display:none}
  .has-sub.open>.sub{display:block}
  .has-sub:focus-within:not(.open)>.sub{display:none}
  .sub a{color:#fff;padding:11px calc(max(var(--gutter),env(safe-area-inset-left,0px)) + 14px)}
  .sub a:hover{background:#333;color:#fff}
}

/* ---------- sections ---------- */
.band{padding-block:clamp(var(--s7),7vw,var(--s9))}
.band-grey{background:var(--grey)}
.section-head{display:grid;gap:var(--s3);max-width:68ch;margin-bottom:var(--s6)}
.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(var(--s5),5vw,var(--s8))}
.split-head{display:grid;gap:var(--s3);align-content:start}

/* ---------- home ---------- */
.home-open{padding-block:clamp(var(--s7),6vw,var(--s9)) clamp(var(--s7),6vw,var(--s8))}
/* home opening: no photograph (client decision, 2026-10-14); heading and introduction left, the facts and links right,
   top-aligned with the lead. The palace photograph lives on its own page. */
.home-open{padding-block:var(--s7) var(--s8)}
/* the opening fills the first screen on desktop, so the calendar below starts only after scrolling
   (301px = topbar + banner + menu at desktop widths; below 960px the opening is taller than a phone screen anyway) */
@media (min-width:961px){
  .home-open{display:grid;align-content:start}
}
.home-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);grid-template-areas:"title next" "main next" "facts facts";grid-template-rows:auto 1fr auto;gap:var(--s5) clamp(var(--s6),6vw,96px);align-items:start}
/* the calendar list starts level with the lead, not with the heading */
.home-title{grid-area:title;display:flex;align-items:center;gap:clamp(var(--s4),2.4vw,var(--s6))}
.home-intro-main{grid-area:main;align-self:stretch;display:flex;flex-direction:column;gap:var(--s5);max-width:66ch}
.home-intro-main .text-links{margin-top:auto}
.home-intro:has(.home-feature) .home-intro-main{padding-bottom:var(--s5)}
.home-motto{margin:0;padding-left:var(--s5);border-left:1px solid var(--red)}
.home-motto p{margin:0;font:italic 400 clamp(1.45rem,2.4vw,1.9rem)/1.2 var(--display);color:var(--ink-strong)}
.home-motto footer{margin-top:var(--s1);font-size:.9rem;color:var(--muted)}
.home-next{grid-area:next;display:flex;flex-direction:column;align-self:stretch}
.home-next>p:last-child{margin:auto 0 0}
.home-next h2{margin-bottom:var(--s3)}
.next-list{list-style:none;margin:0 0 var(--s4);padding:0;border-top:1px solid var(--rule)}
.next-list li{display:grid;grid-template-columns:minmax(0,8.5em) minmax(0,1fr);gap:var(--s4);padding:11px 0;border-bottom:1px solid var(--rule);line-height:1.35}
.next-list li:nth-child(n+5){display:none}
.next-list time{display:grid;font-weight:600;color:var(--ink-strong);font-variant-numeric:tabular-nums}
.next-list span{display:grid}
.next-list b{font-weight:500;color:var(--ink-strong)}
.next-list small{font-size:.86rem;color:var(--muted);font-weight:400}
/* first screen, right: news carousel in a grey panel that bleeds to the right edge of the window */
.home-feature{grid-area:next;position:relative;align-self:stretch;display:grid;grid-template-rows:auto 1fr;padding:var(--s5) var(--s6)}
.home-feature::before{content:"";position:absolute;inset:0;background:var(--grey);border-top:3px solid var(--red);z-index:-1}
.hf-tabs{display:flex;gap:var(--s5);border-bottom:1px solid var(--rule);margin-bottom:var(--s5)}
.hf-tabs button{min-height:44px;padding:0;background:none;border:0;font:600 .82rem var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;box-shadow:inset 0 -2px 0 transparent}
.hf-tabs button[aria-selected="true"]{color:var(--ink-strong);box-shadow:inset 0 -2px 0 var(--red)}
.hf-tabs button:focus-visible,.hf-nav button:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.hf-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto;gap:var(--s4) var(--s5)}
.hf-panel[hidden]{display:none}
#hf-next:not([hidden]){display:block}
.hf-viewport{height:clamp(230px,27vh,260px);overflow:hidden}
.hf-track{list-style:none;margin:0;padding:0;height:100%;transition:transform 650ms var(--ease)}
.hf-slide{height:100%;display:grid;align-content:start;gap:var(--s3);transition:opacity 650ms var(--ease)}
.hf-slide:not(.is-current){opacity:.25}
.hf-meta{margin:0;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}
.hf-meta span{color:var(--red-text);font-weight:600}
.hf-slide h3{margin:0;font:500 clamp(1.5rem,2.3vw,2rem)/1.15 var(--display);color:var(--ink-strong);text-wrap:balance;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hf-slide h3 a{color:inherit;text-decoration:none}
.hf-slide h3 a:hover{color:var(--red-text);text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:1px}
.hf-sum{margin:0;max-width:52ch;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hf-slide h3+.hf-sum{-webkit-line-clamp:2}
.hf-nav{grid-row:1/3;grid-column:2;display:flex;flex-direction:column;align-items:center;gap:var(--s2)}
.hf-step{width:36px;height:36px;border:1px solid var(--rule);background:#fff;border-radius:50%;cursor:pointer;color:var(--ink-strong);font:600 1rem var(--ui)}
.hf-step:hover{border-color:var(--red);color:var(--red-text)}
.hf-dots{list-style:none;margin:var(--s2) 0;padding:0;display:grid;gap:6px}
.hf-dots button{display:block;width:36px;height:30px;padding:0;background:none;border:0;cursor:pointer}
.hf-dots span{display:block;width:3px;height:100%;margin:auto;background:#cfcfcf;border-radius:2px;position:relative;overflow:hidden}
.hf-dots [aria-current="true"] span{background:var(--ink-strong)}
.hf-dots [aria-current="true"] span::after{content:"";position:absolute;inset:0;background:var(--red);transform-origin:top;animation:hf-fill var(--hf-ms,7000ms) linear forwards}
.home-feature.is-paused .hf-dots span::after{animation-play-state:paused}
@keyframes hf-fill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.hf-all{grid-column:1;margin:0;align-self:end}
.home-feature .home-next h2{display:none}
@media (prefers-reduced-motion:reduce){.hf-track,.hf-slide{transition:none}.hf-dots span::after{animation:none!important}}
@media (max-width:960px){
  .home-feature{padding:var(--s5) var(--s4);margin:0 calc(-1 * var(--gutter))}
  .home-feature::before{inset:0}
}
.facts.home-facts{grid-area:facts;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--s6);margin:0}
.facts.home-facts div{grid-template-columns:minmax(0,1fr);gap:2px;border-bottom:0;padding:var(--s3) 0 0}
@media (max-width:960px){
  .home-intro{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "main" "next" "facts"}
  .facts.home-facts{grid-template-columns:minmax(0,1fr);border-top:0}
  .facts.home-facts div{grid-template-columns:minmax(0,11em) minmax(0,1fr);gap:var(--s4);border-bottom:1px solid var(--rule);padding:10px 0}
  .facts.home-facts div:first-child{border-top:1px solid var(--rule)}
}
.page-figure figcaption{font-size:.8rem;color:var(--muted);margin-top:var(--s2)}
.facts{margin:var(--s2) 0 0;border-top:1px solid var(--rule)}
.facts div{display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr);gap:var(--s4);padding:10px 0;border-bottom:1px solid var(--rule);font-size:.97rem}
.facts dt{color:var(--muted)}
.facts dd{margin:0;color:var(--ink-strong);font-weight:500}
.facts dd a{color:inherit}
.text-links{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}
.text-links a{font-weight:600;text-decoration:none}
.text-links a:hover{text-decoration:underline}

/* calendar */
.cal-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(var(--s5),4vw,var(--s7));align-items:start}
.cal-side{display:grid;gap:var(--s3)}
.services{margin:0;border-top:1px solid var(--rule);font-variant-numeric:tabular-nums}
.services div{display:grid;grid-template-columns:1fr auto;gap:var(--s4);align-items:baseline;padding:11px 0;border-bottom:1px solid var(--rule)}
.services dt{font-weight:600;color:var(--ink-strong)}
.services dt span{display:block;font-weight:400;color:var(--ink);font-size:.93rem}
.services dd{margin:0;font-weight:700;color:var(--ink-strong)}
.cal-widget{position:relative;min-height:420px;background:#fff;border:1px solid var(--rule)}
.addcal-host{display:block;min-height:inherit}
.cal-widget .skeleton,.cal-widget .cal-loading,.cal-widget .cal-fallback{display:none}
.cal-widget[data-state="loading"] .skeleton{display:grid}
.cal-widget[data-state="loading"] .cal-loading{display:block;position:absolute;left:var(--s5);bottom:var(--s4);font-size:.85rem;color:var(--muted)}
.cal-widget[data-state="loading"] .addcal-host{position:absolute;inset:0;opacity:0}
.cal-widget[data-state="ready"] .addcal-host{animation:fade-in var(--med) var(--ease)}
.cal-widget[data-state="failed"]{min-height:0}
.cal-widget[data-state="failed"] .cal-fallback{display:block;padding:var(--s5)}
.cal-widget[data-state="failed"] .addcal-host{display:none}
/* no JavaScript: the widget cannot load, so the public calendar link replaces the loading state */
html:not(.js) .cal-widget{min-height:0}
html:not(.js) .cal-widget .skeleton,html:not(.js) .cal-widget .cal-loading,html:not(.js) .cal-widget .addcal-host{display:none}
html:not(.js) .cal-widget .cal-fallback{display:block;padding:var(--s5)}
.cal-skeleton{gap:14px;padding:var(--s5)}
.cal-skeleton span{height:44px}
.cal-skeleton span:first-child{height:28px;width:45%}
.subscribe{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s5);margin-top:var(--s5)}
.dl-block{display:grid;gap:var(--s3);margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--rule)}
.downloads{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s7)}
.downloads li{display:grid;grid-template-rows:auto auto 1fr;align-content:start;gap:4px;padding:var(--s5);background:#fff;border:1px solid var(--rule);border-top:3px solid var(--red)}
.downloads b{font:600 1rem/1.35 var(--ui);color:var(--ink-strong)}
.dl-note{font-size:.86rem;color:var(--muted)}
.dl-files{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:var(--s2);margin-top:var(--s4)}
.dl-files a{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:0 10px 0 12px;border:1px solid var(--rule);border-radius:2px;font-weight:600;font-size:.92rem;text-decoration:none;color:var(--red-text);background:#fff;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}
.dl-files a:hover{border-color:var(--red);background:#fdf3f2}
.dl-files a:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.file-meta{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--muted);border:1px solid var(--rule);padding:0 4px;border-radius:2px}
.cal-below{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(var(--s5),4vw,var(--s7));margin-top:var(--s7)}
.cal-below section{display:grid;gap:var(--s3);align-content:start}
.cal-below .downloads{grid-template-columns:1fr}

/* works, news */
.works{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.works a{display:grid;grid-template-columns:minmax(0,15em) minmax(0,1fr);gap:var(--s4);padding:15px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:background var(--med) var(--ease)}
.works a>*,.index-list a>*{transition:transform var(--med) var(--ease),color var(--fast) var(--ease)}
@media (hover:hover){.works a:hover>*,.index-list a:hover>*{transform:translateX(var(--s3))}}
.works a:hover{background:linear-gradient(90deg,var(--grey),rgba(243,243,243,0))}
.works b{font:500 1.15rem/1.3 var(--display);color:var(--ink-strong)}
.works a:hover b{color:var(--red-text)}
.news-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.n-item{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:var(--s4);padding:13px 0;border-bottom:1px solid var(--rule)}
.n-item time{font-size:.86rem;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:2px}
.n-item a{font-weight:500;color:var(--ink-strong);text-decoration:none}
.n-item a:hover{color:var(--red-text);text-decoration:underline}
/* the whole news row is the tap target, not just the title line */
.n-item{position:relative}
.n-item a::after{content:"";position:absolute;inset:0}
.band-grey .n-item a{color:var(--ink-strong)}
.n-excerpt{font-size:.93rem;color:var(--muted);margin-top:3px;max-width:70ch}
.dated-list{list-style:none;margin:var(--s3) 0 0;padding:0;border-top:1px solid var(--rule)}
.dated-list li{display:grid;grid-template-columns:9.5em minmax(0,1fr);gap:var(--s4);padding:10px 0;border-bottom:1px solid var(--rule)}
.dated-list time{color:var(--muted);font-variant-numeric:tabular-nums}
.dated-list b{font-weight:500;color:var(--ink-strong)}
.dated-list strong{font-weight:700;color:var(--ink-strong)}
.dated-list span{display:block;font-size:.9rem;color:var(--muted)}
.cal-year{margin-top:var(--s7);max-width:52rem}
.gm-feed{list-style:none;margin:var(--s3) 0 0;padding:0;border-top:1px solid var(--rule)}
.gm-feed li{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:var(--s4);padding:12px 0;border-bottom:1px solid var(--rule)}
.gm-feed time{font-size:.86rem;color:var(--muted)}
.gm-feed a{color:var(--ink-strong);font-weight:500;text-decoration:none}
.gm-feed a:hover{color:var(--red-text);text-decoration:underline}

/* ---------- inner pages ---------- */
.crumbs{padding-top:var(--s5)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 0;font-size:.82rem;color:var(--muted)}
.crumbs li:not(:last-child)::after{content:"/";margin:0 .55em;color:var(--rule)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--red-text);text-decoration:underline}
.page{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5) clamp(var(--s6),5vw,var(--s8));padding-block:var(--s5) clamp(var(--s7),7vw,var(--s9))}
.page--with-side{grid-template-columns:minmax(0,1fr) 270px}
.page-head{grid-column:1/-1;display:grid;gap:var(--s3);padding-block:var(--s4) var(--s2);max-width:58rem}
.page-main{min-width:0;display:grid;gap:var(--s6);align-content:start}
.page-side{min-width:0}
.page-figure{margin:0;max-width:800px}
.page-figure img{width:auto;max-width:100%;height:auto;max-height:min(72vh,620px)}
.emblem{margin:0 0 var(--s3);width:clamp(120px,14vw,170px)}
.emblem img{width:100%;height:auto;background:transparent}
.content-status{margin:0}
.content-status span{display:block;max-width:var(--wrap);margin-inline:auto;padding:7px max(var(--gutter),env(safe-area-inset-left,0px));font-size:.8rem;font-weight:500}
.content-status--existing{background:#fbf3d9;color:#5b4700}
.content-status--new{background:#e8eef7;color:#1f3a63}
.content-status--approval{background:#fde4e2;color:#7a1410}
.content-status--verified{background:#e5f2e8;color:#1d4d2b}

.prose{max-width:68ch;display:grid;gap:1.05em;font-size:1.0625rem}
.prose h2{font:500 1.6rem/1.2 var(--display);margin-top:.9em}
.prose h3{font:600 1.1rem/1.35 var(--ui);margin-top:.6em}
.prose h4{font:600 1rem/1.4 var(--ui)}
.prose ul,.prose ol{margin:0;padding-left:1.3em;display:grid;gap:.35em}
.prose blockquote{margin:0;padding-left:var(--s5);border-left:1px solid var(--red);font:italic 1.2rem/1.5 var(--display);color:#333}
.prose figure{margin:0}
.prose img{height:auto}
.prose hr{border:0;border-top:1px solid var(--rule);width:100%}
.prose a{word-break:break-word}
.table-wrap{overflow-x:auto;max-width:100%;border-top:1px solid var(--rule)}
.table-wrap:focus-visible{outline-offset:0}
.prose table{border-collapse:collapse;width:100%;font-size:.95rem;font-variant-numeric:tabular-nums}
.prose td,.prose th{text-align:left;vertical-align:top;padding:8px 12px 8px 0;border-bottom:1px solid var(--rule)}
.prose td:first-child{color:var(--muted);width:3.5em}

.index-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);max-width:68ch}
.index-list a{display:grid;gap:3px;padding:16px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:background var(--med) var(--ease)}
.index-list a:hover{background:linear-gradient(90deg,var(--grey),rgba(243,243,243,0))}
.index-list b{font:500 1.3rem/1.25 var(--display);color:var(--ink-strong)}
.index-list a:hover b{color:var(--red-text)}
.index-list span{font-size:.94rem;color:var(--muted)}

.side-nav{position:sticky;top:var(--s5);border-top:3px solid var(--red);padding-top:var(--s3);font-size:.94rem}
.side-nav .label a{color:var(--muted);text-decoration:none}
.side-nav ul{list-style:none;margin:var(--s2) 0 0;padding:0}
.side-nav ul ul{margin:0 0 var(--s2) var(--s4);font-size:.9rem}
.side-nav a{display:block;padding:6px 0;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--grey);transition:color var(--fast) var(--ease)}
.side-nav a:hover{color:var(--red-text)}
.side-nav a[aria-current]{color:var(--ink-strong);font-weight:600;box-shadow:inset 2px 0 0 var(--red);padding-left:var(--s3)}

.contact-card{margin:0;border-top:1px solid var(--rule);max-width:68ch}
.contact-card+.label{margin-top:var(--s7)}
.contact-card div{display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr);gap:var(--s4);padding:12px 0;border-bottom:1px solid var(--rule)}
.contact-card dt{color:var(--muted)}
.contact-card dd{margin:0;color:var(--ink-strong)}

.pager{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);border-top:1px solid var(--rule);padding-top:var(--s5)}
.pager a{display:grid;gap:2px;text-decoration:none;color:var(--ink-strong);font-weight:500}
.pager a span{font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:400}
.pager a:hover{color:var(--red-text)}
.pager-next{text-align:right}

/* news archive: tabs */
.tabs{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:var(--s2);border-bottom:1px solid var(--rule);padding-bottom:var(--s3)}
.tabs a{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border:1px solid var(--rule);border-radius:2px;color:var(--ink);text-decoration:none;font-size:.9rem;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease)}
.tabs a:hover{border-color:var(--ink)}
.tabs a[aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}
.tabs .count{font-size:.75rem;opacity:.85;font-variant-numeric:tabular-nums}
.years{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);font-size:.92rem}
.years a{color:var(--muted);text-decoration:none;padding:4px 0}
.years a[aria-current]{color:var(--ink-strong);font-weight:700;box-shadow:inset 0 -2px 0 var(--red)}
.years a:hover{color:var(--red-text)}
.year-group{grid-column:1/-1;display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--s4)}
.year{font:500 1.6rem/1.2 var(--display);padding-top:10px}
.empty{color:var(--muted)}

/* ---------- footer (matches Grand Magistry: grey / white / red) ---------- */
.site-footer{margin-top:0}
.f-nav{background:#6f6f6f}
.f-nav ul{list-style:none;margin:0;padding:var(--s6) 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3) var(--s5)}
.f-nav a{color:#fff;text-decoration:none;font:700 .82rem var(--ui);letter-spacing:.05em;text-transform:uppercase}
.f-nav a:hover{text-decoration:underline}
.f-id .wrap{padding-block:var(--s5);display:grid;gap:4px;font-size:.9rem}
.f-name{font-weight:700;color:var(--ink-strong)}
.f-id a{color:var(--red-text)}
.f-red{background:var(--red);color:#fff;font-size:.85rem}
.f-red .wrap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3) var(--s6);padding-block:var(--s5)}
.f-red a{color:#fff}

/* ---------- touch: standalone links get a finger-sized target (44px) without changing desktop ---------- */
@media (pointer:coarse){
  .crumbs li>*,.link-strong,.f-nav a,.f-red a,.contact-card a,.facts dd a{display:inline-block;padding-block:12px}
  .crumbs{padding-top:var(--s2)}
  .crumbs ol{gap:0}
  .f-nav ul{row-gap:0}
  .f-red .wrap{row-gap:0}
}

/* long tables (Grand Masters, heads of the Grand Priory) are laid out only when scrolled near */
.table-wrap{content-visibility:auto;contain-intrinsic-size:auto 600px}

/* ---------- loading: skeletons and image placeholders ---------- */
.skeleton span{display:block;border-radius:2px;background:rgba(0,0,0,.05);animation:breathe 2.4s ease-in-out infinite alternate}
@keyframes breathe{to{opacity:.45}}
.ph-img{background:rgba(0,0,0,.05);transition:filter 900ms cubic-bezier(.16,1,.3,1)}
/* set by site.js only on images still downloading; cached images show at once */
.ph-img.is-loading{filter:grayscale(1) contrast(.35) brightness(1.35)}
@keyframes fade-in{from{opacity:0}to{opacity:1}}


/* ---------- responsive ---------- */
@media (max-width:960px){
  .split,.cal-grid,.page--with-side,.cal-below{grid-template-columns:minmax(0,1fr)}
  .side-nav{position:static}
  .f-nav ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f-red .wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:1rem}
  .facts div,.contact-card div,.works a,.n-item,.gm-feed li,.dated-list li{grid-template-columns:minmax(0,1fr);gap:2px}
  .downloads{grid-template-columns:1fr}
  .year-group{grid-template-columns:1fr;gap:0}
  .pager{grid-template-columns:1fr}
  .pager-next{text-align:left}
  .cal-widget{min-height:360px}
  .topbar-home{flex-basis:100%;padding-top:6px}
  .lang{margin-left:0;padding-bottom:6px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
@media print{
  .topbar,.mainnav,.site-footer .f-nav,.f-red,.cal-widget,.side-nav,.content-status{display:none!important}
  .banner{background:none!important}.fullname{color:#000;text-shadow:none;text-align:left}.lockup{display:none}
  a{color:#000}
}

/* ---------- /pridat-aktualitu/: staff news editor (api/news.js) ---------- */
.btn--ghost{background:none;color:var(--red);box-shadow:inset 0 0 0 1px var(--red);cursor:pointer}
.btn--ghost:hover{background:var(--red);color:#fff}
button.btn{border:0;font-family:var(--ui);font-size:1rem;cursor:pointer}
button.btn[disabled]{opacity:.65;cursor:progress}
.link-btn{background:none;border:0;padding:0;font:600 .9rem var(--ui);color:var(--red-text);text-decoration:underline;text-underline-offset:.18em;cursor:pointer}
.ne{max-width:860px}
.ne [hidden]{display:none!important}
.ne form,.ne-card{display:grid;gap:var(--s5);margin-top:var(--s5)}
.ne-card{max-width:440px;padding:var(--s6);background:var(--grey);border-top:3px solid var(--red)}
.ne-who{font-size:.92rem;color:var(--muted)}
.ne-field{display:grid;gap:6px;border:0;margin:0;padding:0;min-width:0}
.ne-field>span,.ne-field>legend{font-weight:600;color:var(--ink-strong);font-size:.95rem;padding:0}
.ne-field small{font-weight:400;color:var(--muted)}
.ne-field i{font-style:normal;color:var(--red-text)}
.ne input:not([type=checkbox]):not([type=file]),.ne textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #8a8a8a;border-radius:2px;font:inherit;font-size:1rem;color:var(--ink-strong);background:#fff}
.ne select{width:100%;min-height:46px;padding:10px 12px;font:inherit;font-size:1rem;color:var(--ink-strong)}
.ne #ne-title{font:500 1.5rem/1.3 var(--display);min-height:54px}
.ne input:focus-visible,.ne textarea:focus-visible{outline:2px solid var(--red);outline-offset:0;border-color:var(--red)}
.ne-row{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:var(--s5)}
.ne-cats{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s5)}
.ne-cats label{display:flex;align-items:center;gap:var(--s2);min-height:40px;cursor:pointer}
.ne input[type=checkbox]{width:20px;height:20px;accent-color:var(--red)}
.ne-hint{font-size:.85rem;color:var(--muted)}
/* the writing area looks like the published article */
.ne-text-wrap{border:1px solid #8a8a8a;border-radius:2px;background:#fff}
.ne-text-wrap:focus-within{outline:2px solid var(--red);border-color:var(--red)}
.ne .ql-toolbar.ql-snow{border:0;border-bottom:1px solid var(--rule);background:var(--grey);font-family:var(--ui);padding:6px 8px}
.ne .ql-container.ql-snow{border:0;font:inherit}
.ne .ql-editor{min-height:320px;padding:var(--s5);font:400 1.0625rem/1.65 var(--ui);color:var(--ink);max-width:none}
.ne .ql-editor>*+*{margin-top:1.05em}
.ne .ql-editor h2{font:500 1.6rem/1.2 var(--display);color:var(--ink-strong);margin-top:.9em}
.ne .ql-editor h3{font:600 1.1rem/1.35 var(--ui);color:var(--ink-strong);margin-top:.6em}
.ne .ql-editor blockquote{margin:0;padding-left:var(--s5);border-left:1px solid var(--red);font:italic 1.2rem/1.5 var(--display);color:#333}
.ne .ql-editor a{color:var(--red)}
.ne .ql-editor img{max-width:100%;height:auto}
.ne .ql-editor.ql-blank::before{font-style:normal;color:var(--muted);left:var(--s5)}
.ne .ql-snow .ql-picker.ql-header .ql-picker-label::before,.ne .ql-snow .ql-picker.ql-header .ql-picker-item::before{content:"Běžný text"}
.ne .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,.ne .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before{content:"Nadpis"}
.ne .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,.ne .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before{content:"Podnadpis"}
.ne .ql-snow .ql-picker.ql-header{width:118px}
.ne .ql-snow .ql-picker-item[data-value="2"]::before{font:500 1.25rem var(--display)}
.ne .ql-snow .ql-picker-item[data-value="3"]::before{font-weight:600}
.ne .ql-snow.ql-toolbar button:hover .ql-stroke,.ne .ql-snow.ql-toolbar button.ql-active .ql-stroke,.ne .ql-snow .ql-picker-label:hover .ql-stroke{stroke:var(--red)}
.ne .ql-snow.ql-toolbar button:hover .ql-fill,.ne .ql-snow.ql-toolbar button.ql-active .ql-fill{fill:var(--red)}
.ne .ql-snow.ql-toolbar button:hover,.ne .ql-snow.ql-toolbar button.ql-active,.ne .ql-snow .ql-picker-label:hover,.ne .ql-snow .ql-picker-label.ql-active{color:var(--red)}
.ne .ql-snow .ql-tooltip{font-family:var(--ui);z-index:3}
.ne .ql-snow .ql-tooltip[data-mode=link]::before{content:"Adresa odkazu:"}
.ne .ql-snow .ql-tooltip.ql-editing a.ql-action::after{content:"Uložit"}
.ne .ql-snow .ql-tooltip::before{content:"Odkaz:"}
.ne .ql-snow .ql-tooltip a.ql-action::after{content:"Upravit"}
.ne .ql-snow .ql-tooltip a.ql-remove::before{content:"Odstranit"}
/* files */
.ne-pick{justify-self:start;position:relative}
.ne-pick:focus-within{outline:2px solid var(--red);outline-offset:3px}
.ne-drop{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s4);padding:var(--s5);border:1px dashed #8a8a8a;background:var(--grey);transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease)}
.ne-drop.is-over{background:#fde4e2;border-color:var(--red)}
.ne-files{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.ne-files:empty{display:none}
.ne-files li{display:grid;grid-template-columns:minmax(0,1fr) 120px auto auto;gap:var(--s3);align-items:center;padding:8px 0;border-bottom:1px solid var(--rule);font-size:.92rem}
.ne-files li input{min-height:38px!important;padding:6px 10px!important}
.ne-photo li{grid-template-columns:96px minmax(0,1fr) 120px auto auto}
.ne-photo img{width:96px;height:64px;object-fit:cover;background:var(--grey)}
.ne-files progress{width:100%;height:6px;appearance:none;border:0;border-radius:3px;background:#ddd;accent-color:var(--red)}
.ne-files progress::-webkit-progress-bar{background:#ddd;border-radius:3px}
.ne-files progress::-webkit-progress-value{background:var(--red);border-radius:3px}
.ne-files progress::-moz-progress-bar{background:var(--red)}
.ne-file-state{color:var(--muted);font-size:.85rem}
.ne-files li.is-error .ne-file-state{color:var(--red-text);grid-column:1/-2}
.ne-files li.is-error progress{display:none}
.ne-file-name{overflow-wrap:anywhere}
.ne-submit{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s5);padding:var(--s5) var(--s6);background:var(--grey);border-top:3px solid var(--red)}
.ne-submit .btn{min-height:52px;padding:0 var(--s6);font-size:1.05rem}
.ne-msg{margin:0;font-size:.95rem;color:var(--ink-strong)}
.ne-msg--error{padding:var(--s3) var(--s4);border-left:4px solid var(--red);background:#fff;color:var(--ink-strong)}
.ne-tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-top:var(--s4)}
.ne-tabs button{min-height:46px;padding:0 var(--s5);background:none;border:0;font:600 .95rem var(--ui);color:var(--muted);cursor:pointer;box-shadow:inset 0 -3px 0 transparent;transition:color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}
.ne-tabs button:hover{color:var(--ink-strong)}
.ne-tabs button[aria-selected="true"]{color:var(--ink-strong);box-shadow:inset 0 -3px 0 var(--red)}

/* editor in candid's "ledger" app style: soft ground, white cards with hairline borders, rounded controls,
   a segmented tab switch and a focus ring; the Order's red stays the one accent */
.ne{--ne-ground:#f2f4f7;--ne-surface:#fbfbfc;--ne-border:#e3e5e8;--ne-input:#d4d4d4;--ne-ring:rgba(227,26,24,.28);--ne-r:8px;--ne-rc:6px}
.ne-card,.ne #ne-editor,.ne #ne-manage,.ne #ne-events{padding:var(--s6);background:var(--ne-surface);border:1px solid var(--ne-border);border-radius:var(--ne-r);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.ne-card{border-top:1px solid var(--ne-border)}
#ne-login{width:100%;max-width:400px;margin-top:var(--s6)}
.ne input:not([type=checkbox]):not([type=file]),.ne textarea,.ne select,.ne-text-wrap{border:1px solid var(--ne-input);border-radius:var(--ne-rc);background:#fff;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}
.ne input:focus-visible,.ne textarea:focus-visible,.ne-text-wrap:focus-within{outline:0;border-color:var(--red);box-shadow:0 0 0 3px var(--ne-ring)}
.ne-text-wrap{overflow:hidden}
.ne .ql-toolbar.ql-snow{background:var(--ne-ground);border-bottom:1px solid var(--ne-border)}
.ne-drop{border-radius:var(--ne-r);border-color:var(--ne-input);background:var(--ne-ground)}
.ne-submit{border-top:1px solid var(--ne-border);border-radius:var(--ne-r);background:var(--ne-ground)}
.ne .btn{border-radius:var(--ne-rc)}
.ne button.btn:not(.btn--ghost){background:#141414;color:#fff}
.ne button.btn:not(.btn--ghost):hover{background:var(--red)}
.ne-msg--error{border:1px solid #f5c2c0;border-radius:var(--ne-rc);background:#ffedea;color:#831c1e}
.ne-tabs{display:inline-flex;gap:2px;padding:3px;border:0;border-radius:var(--ne-r);background:#e9ebef}
.ne-tabs button{min-height:36px;padding:0 var(--s4);border-radius:var(--ne-rc);box-shadow:none}
.ne-tabs button[aria-selected="true"]{background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.12)}
.ne-who{display:inline-block;padding:2px 10px;border-radius:999px;background:#eeeeee;color:#3d3d3d}
.ne-list li{border-radius:var(--ne-rc)}
.ne-blocks{display:block}
.ne-block .ql-container{height:auto}
.ne-block{border:1px solid var(--ne-input);border-radius:var(--ne-rc);background:#fff;overflow:hidden;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}
.ne-block:focus-within{border-color:var(--red);box-shadow:0 0 0 3px var(--ne-ring)}
.ne-block.is-drag{opacity:.45}
.ne-block-bar{display:flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;background:var(--ne-ground);border-bottom:1px solid var(--ne-border);font:600 .8rem var(--ui);color:var(--muted)}
.ne-handle{cursor:grab;font-size:1rem;line-height:1;padding:4px 2px;user-select:none}
.ne-block-name{flex:1;text-transform:uppercase;letter-spacing:.06em}
.ne-block-bar button,.ne-ins button,.ne-photo-more{min-height:32px;min-width:32px;padding:0 var(--s3);border:1px solid transparent;border-radius:var(--ne-rc);background:transparent;font:600 .9rem var(--ui);color:var(--ink-strong);cursor:pointer}
.ne-block-bar button:hover:not(:disabled),.ne-ins button:hover,.ne-photo-more:hover{border-color:var(--red);color:var(--red-text);background:#fff}
.ne-block-bar button:disabled{opacity:.3;cursor:default}
.ne-blocks button:focus-visible{outline:0;border-color:var(--red);box-shadow:0 0 0 3px var(--ne-ring)}
.ne-block .ql-editor{min-height:120px}
.ne-block--photo .ne-block-body{padding:var(--s4)}
.ne-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s3)}
.ne-photos:empty{display:none}
.ne-photos figure{position:relative;margin:0}
.ne-photos img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--ne-rc);border:1px solid var(--ne-border)}
.ne-photo-x{position:absolute;top:6px;right:6px;width:28px;height:28px;border:1px solid var(--ne-border);border-radius:var(--ne-rc);background:#fff;cursor:pointer}
.ne-photo-x:focus-visible{outline:0;border-color:var(--red);box-shadow:0 0 0 3px var(--ne-ring)}
.ne-photo-more{margin-top:var(--s3);border-color:var(--ne-input);background:#fff}
.ne-ins{display:flex;justify-content:center;gap:var(--s2);padding:6px 0;opacity:.55;transition:opacity var(--fast) var(--ease)}
.ne-ins:hover,.ne-ins:focus-within,.ne-ins:last-child,.ne-ins:only-child{opacity:1}
.ne-ins button{border:1px dashed var(--ne-input);background:var(--ne-ground);font-size:.85rem}
.ne #ne-manage{display:grid;gap:var(--s4);margin-top:var(--s5)}
.ne-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.ne-list li{display:grid;grid-template-columns:7.5em minmax(0,1fr) auto auto;gap:var(--s4);align-items:center;padding:10px 0;border-bottom:1px solid var(--rule)}
.ne-list time{color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}
.ne-list-title{display:block;font:500 1.12rem/1.3 var(--display);color:var(--ink-strong);text-decoration:none}
.ne-list-title:hover{color:var(--red-text);text-decoration:underline}
.ne-list-meta{font-size:.82rem;color:var(--muted)}
.ne-list li.ne-list-empty{display:block;color:var(--muted)}
.btn.ne-small{min-height:36px;padding:0 var(--s4);font-size:.9rem}
.ne-del{color:var(--red-text)}
.ne-editing{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:#e8eef7;color:#1f3a63}
.ne-editing a{color:inherit;font-weight:600}
.ne-locked{display:grid;gap:var(--s4)}
.ne-locked .prose{padding:var(--s5);border:1px dashed var(--rule);background:#fafafa;max-width:none}
@media (max-width:640px){
  .ne-row{grid-template-columns:minmax(0,1fr)}
  .ne-files li,.ne-photo li{grid-template-columns:minmax(0,1fr) auto}
  .ne-photo img{grid-column:1/-1}
  .ne-files progress{grid-column:1/-1;order:3}
  .ne-card{padding:var(--s5)}
  .ne-list li{grid-template-columns:minmax(0,1fr) auto auto}
  .ne-list time{grid-column:1/-1}
  .ne-tabs button{padding:0 var(--s3)}
  .ne-submit{padding:var(--s5)}
}
/* photo grid: two or more photos in a row in an article (as on the school sites) */
.photo-run{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:6px}
.photo-run>*{margin:0}
.photo-run a{display:block;line-height:0;height:100%}
.photo-run img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.prose img{max-height:80vh;width:auto}
.prose .photo-run img{max-height:none;width:100%}

/* ---------- published content: pinned notice, events, gallery (shared by the Order of Malta sites) ---------- */
.pinned{background:var(--grey);border-bottom:1px solid var(--rule)}
.pinned .wrap{padding-block:var(--s3)}
.pinned p{margin:0;padding-left:var(--s4);border-left:3px solid var(--red);font-size:.97rem}
.pinned a{font-weight:600;color:var(--red-text);white-space:nowrap}
.photo-posts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--s5) var(--s4)}
.photo-posts li{min-width:0}
.photo-posts a{display:grid;gap:var(--s2);color:var(--ink-strong);text-decoration:none}
.photo-posts a:hover b{color:var(--red-text);text-decoration:underline}
.photo-posts img{display:block;width:100%;aspect-ratio:800/470;object-fit:cover;background:rgba(0,0,0,.05)}
.photo-posts b{font-weight:600;line-height:1.3}
.photo-posts span{font-size:.86rem;color:var(--muted)}
.ne-flags{align-items:center}
.ne-check{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.ne-check small{color:var(--muted)}
.ne-unpublished time{color:var(--red-text)}
#ne-date-hint{display:block;color:var(--red-text)}
#ne-events .ne-card{margin-bottom:var(--s5)}

.events{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.events li{display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:var(--s4);padding:12px 0;border-bottom:1px solid var(--rule);scroll-margin-top:var(--s5)}
.events li:target{background:linear-gradient(90deg,var(--grey),rgba(243,243,243,0))}
.events time{font-size:.8rem;color:var(--muted);line-height:1.2;font-variant-numeric:tabular-nums}
.events time b{display:block;font:500 1.6rem/1 var(--display);color:var(--ink-strong)}
.events div b{display:block;font-weight:600;color:var(--ink-strong)}
.events div span{display:block;font-size:.92rem;color:var(--muted)}
.prose .events{margin-block:var(--s4) var(--s6)}

/* ---------- /gdpr/: consent forms (static/js/gdpr.js → api/gdpr.js), in the editor's .ne field style ---------- */
.gdpr-form{display:grid;gap:var(--s5);margin-top:var(--s5)}
.gdpr-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--s4)}
.gdpr-row .ne-field>span{font-weight:400;font-size:.9rem;color:var(--muted)}
.gdpr-actions{display:flex;flex-wrap:wrap;gap:var(--s3)}
.gdpr-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.ne-msg--ok{padding:var(--s3) var(--s4);border:1px solid #b9dcc2;border-radius:var(--ne-rc);background:#eef8f1;color:#1d5a2e}

/* home opening: its links are buttons, so they read as actions (outlined; filled on hover) */
.home-open .text-links{gap:var(--s2) var(--s3)}
.home-open .text-links a,.home-next>p>a,.hf-all a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s4);border:1px solid var(--red);border-radius:2px;background:#fff;color:var(--red-text);font-weight:600;text-decoration:none;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}
.home-open .text-links a:hover,.home-next>p>a:hover,.hf-all a:hover{background:var(--red);color:#fff;text-decoration:none}
.home-open .text-links a:focus-visible,.home-next>p>a:focus-visible,.hf-all a:focus-visible{outline:2px solid var(--red);outline-offset:2px}
