/* moonlightlimoz.com: one stylesheet. Aubergine ink, paper, sodium amber. No inline styles anywhere
   (the host CSP allows style-src 'self' only), so every visual state is a class or the hidden attribute. */
@font-face{font-family:"Gilda Display";src:url("fonts/gilda-normal-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Alegreya Sans";src:url("fonts/alegreya-normal-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Alegreya Sans";src:url("fonts/alegreya-italic-400.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Alegreya Sans";src:url("fonts/alegreya-normal-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Alegreya Sans";src:url("fonts/alegreya-normal-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --mz-night:#1d1626; --mz-dusk:#2b2238; --mz-violet:#3b3049; --mz-mute:#5e5470; --mz-haze:#b9b3c7;
  --mz-paper:#f4efe1; --mz-paper2:#ece6d6; --mz-sheet:#faf7ee; --mz-lamp:#d98a1f; --mz-link:#7b3f0e;
  --mz-rule:#cfc6b2; --mz-ok:#2f5d3a;
  --mz-serif:"Gilda Display", "Iowan Old Style", Georgia, serif;
  --mz-sans:"Alegreya Sans", "Gill Sans", "Trebuchet MS", sans-serif;
  --mz-wrap:1220px; --mz-text:68ch;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--mz-paper);color:var(--mz-dusk);font-family:var(--mz-sans);font-size:1.1875rem;line-height:1.52}
img{max-width:100%;height:auto;display:block}
a{color:var(--mz-link);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--mz-lamp);outline-offset:3px;box-shadow:0 0 0 3px var(--mz-night)}
h1,h2,h3{font-family:var(--mz-serif);font-weight:400;line-height:1.14;color:var(--mz-night);letter-spacing:.004em}
h1{font-size:clamp(2.1rem,4.4vw,3.55rem);margin:.2em 0 .35em}
h2{font-size:clamp(1.6rem,2.7vw,2.25rem);margin:1.6em 0 .5em}
h3{font-size:1.38rem;margin:1.3em 0 .35em}
p,ul,ol,dl,table{margin:0 0 1em}
.mz-wrap{max-width:var(--mz-wrap);margin:0 auto;padding:0 clamp(16px,3vw,36px)}
.mz-prose{max-width:var(--mz-text)}
.mz-skip{position:absolute;left:-9999px;top:0;background:var(--mz-lamp);color:var(--mz-night);padding:.6em 1em;z-index:9}
.mz-skip:focus{left:12px;top:12px}
.mz-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header: one dark band, the masthead as text on the left, phone and the season's hours on the right */
.mz-head{background:var(--mz-night);color:var(--mz-paper)}
.mz-head__in{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;padding-top:16px;padding-bottom:14px}
.mz-mast{display:flex;align-items:center;gap:12px;color:var(--mz-paper);text-decoration:none;margin-right:auto}
.mz-mast__name{font-family:var(--mz-serif);font-size:1.7rem;line-height:1;display:block}
.mz-mast__what{display:block;font-size:.92rem;color:var(--mz-haze);margin-top:4px}
.mz-call{text-align:right;font-size:.95rem;color:var(--mz-haze)}
.mz-call a{color:var(--mz-paper);font-size:1.3rem;font-weight:700;text-decoration:none;white-space:nowrap}
a[href^="tel:"]{white-space:nowrap}
.mz-call a:hover{text-decoration:underline}
.mz-call a.mz-call__more{font-size:.95rem;font-weight:400;color:var(--mz-haze);text-decoration:underline}
.mz-call__h{display:block}
.mz-nav{border-top:1px solid var(--mz-violet)}
.mz-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 4px;align-items:stretch}
.mz-nav li a{display:block;padding:12px 12px;color:var(--mz-paper);text-decoration:none;font-size:1rem;border-bottom:3px solid transparent}
.mz-nav li a:hover,.mz-nav li a[aria-current="page"]{border-bottom-color:var(--mz-lamp)}
.mz-nav li.mz-nav__go{margin-left:auto}
.mz-nav li.mz-nav__go a{background:var(--mz-lamp);color:var(--mz-night);font-weight:700;border-radius:2px;margin:6px 0;padding:6px 16px}
.mz-navbtn{display:none}
@media (max-width:1180px){
  .mz-navbtn{display:inline-block;background:transparent;color:var(--mz-paper);border:1px solid var(--mz-haze);font:inherit;font-size:1rem;padding:6px 14px;margin:8px 0;border-radius:2px;cursor:pointer}
  .mz-nav ul{display:none;flex-direction:column;padding-bottom:10px}
  .mz-nav.is-open ul{display:flex}
  .mz-nav li.mz-nav__go{margin-left:0}
  .mz-call{text-align:left}
}
.mz-nojs .mz-nav ul{display:flex}

/* crumbs */
.mz-crumbs{font-size:.95rem;padding-top:14px;color:var(--mz-mute)}
.mz-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mz-crumbs li+li::before{content:"/";margin-right:6px;color:var(--mz-rule)}

/* home hero: tall photograph on the left, the night panel with the heading and the whole request form on the right */
.mz-hero{background:var(--mz-night);color:var(--mz-paper)}
.mz-hero__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:62vh}
.mz-hero__pic{margin:0;position:sticky;top:0;align-self:start;height:100vh;max-height:1100px;background:var(--mz-dusk);overflow:hidden}
.mz-hero__pic img{width:100%;height:100%;object-fit:cover;object-position:50% 78%}
.mz-hero__pic figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 16px;font-size:.92rem;color:var(--mz-paper);background:rgba(29,22,38,.82)}
.mz-hero__panel{padding:clamp(14px,2vw,28px) clamp(16px,3.4vw,48px) 36px}
.mz-hero h1{color:var(--mz-paper);margin-top:0;font-size:clamp(1.9rem,3vw,2.6rem)}
.mz-hero__panel .mz-lead,.mz-hero__panel .mz-indep{margin-bottom:.7em}
.mz-kicker{font-size:.98rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mz-lamp);margin:0 0 .4em}
.mz-indep{font-size:1.02rem;color:var(--mz-dusk);border-left:3px solid var(--mz-lamp);padding:2px 0 2px 14px;max-width:62ch}
.mz-hero .mz-indep,.mz-sec--night .mz-indep{color:var(--mz-paper)}
.mz-hero .mz-lead{color:var(--mz-haze);max-width:60ch}
.mz-hero a{color:#f3c98a}
@media (max-width:900px){.mz-hero__grid{grid-template-columns:1fr}.mz-hero__pic{position:relative;height:46vh;order:2}}

/* inner page heads: plain paper with a lamp rule, never a photograph */
.mz-pagehead{padding:8px 0 18px;border-bottom:1px solid var(--mz-rule)}
.mz-pagehead .mz-indep{margin-top:.6em}

/* the year: twelve cells, snowfall drawn as a bar and sunrise as a tick, both by code from NOAA numbers */
.mz-year{background:var(--mz-paper2);padding:34px 0 38px}
.mz-year ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.mz-year li a{display:block;background:var(--mz-sheet);border:1px solid var(--mz-rule);padding:10px 8px 8px;text-decoration:none;color:var(--mz-dusk);height:100%}
.mz-year li a:hover{border-color:var(--mz-link)}
.mz-year__m{font-family:var(--mz-serif);font-size:1.22rem;display:block;color:var(--mz-night)}
.mz-year svg{display:block;width:auto;height:72px;max-width:100%;margin:6px 0}
.mz-year__n{display:block;font-size:.86rem;line-height:1.3}
@media (max-width:800px){.mz-year ol{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.mz-year ol{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:420px){.mz-year ol{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* sections */
.mz-sec{padding:34px 0}
.mz-sec--night{background:var(--mz-dusk);color:var(--mz-paper)}
.mz-sec--night h2,.mz-sec--night h3{color:var(--mz-paper)}
.mz-sec--night a{color:#f3c98a}
.mz-sec--sheet{background:var(--mz-sheet);border-top:1px solid var(--mz-rule);border-bottom:1px solid var(--mz-rule)}
.mz-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 44px;align-items:start}
.mz-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px 44px;align-items:start}
.mz-two>*,.mz-split>*,.mz-hero__grid>*{min-width:0}
@media (max-width:900px){.mz-two,.mz-split{grid-template-columns:1fr}}
.mz-band{margin:0}
.mz-band img{width:100%}
.mz-band figcaption,.mz-fig figcaption{font-size:.95rem;color:var(--mz-mute);padding:8px 0 0}
.mz-sec--night .mz-fig figcaption{color:var(--mz-haze)}
.mz-fig{margin:0 0 1em}
.mz-steps{counter-reset:s;list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.mz-steps li{counter-increment:s;border-top:2px solid var(--mz-lamp);padding-top:10px}
.mz-steps li::before{content:counter(s);font-family:var(--mz-serif);font-size:2.2rem;display:block;color:var(--mz-lamp);line-height:1}
@media (max-width:900px){.mz-steps{grid-template-columns:1fr 1fr}}
.mz-steps--two{grid-template-columns:1fr 1fr}
@media (max-width:520px){.mz-steps{grid-template-columns:1fr}}

/* fares */
.mz-tablewrap{overflow-x:auto;max-width:100%}
.mz-fares{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;background:var(--mz-sheet)}
.mz-fares th,.mz-fares td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--mz-rule);vertical-align:top}
.mz-fares thead th{background:var(--mz-night);color:var(--mz-paper);font-weight:500}
.mz-fares td.mz-n{white-space:nowrap}
@media (max-width:560px){
  .mz-fares thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .mz-fares,.mz-fares tbody,.mz-fares tr{display:block}
  .mz-fares tr{padding:8px 0;border-bottom:1px solid var(--mz-rule)}
  .mz-fares th[scope=row]{display:block;border:0;padding:4px 12px}
  .mz-fares td,.mz-fares td.mz-n{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border:0;padding:2px 12px;white-space:normal}
  .mz-fares td::before{content:attr(data-h);font-size:1rem;color:var(--mz-mute)}
}
.mz-fig-price{font-family:var(--mz-serif);font-size:1.5rem;color:var(--mz-night);white-space:nowrap}
.mz-unit{display:block;font-size:.9rem;color:var(--mz-mute)}
.mz-note{font-size:1rem;color:var(--mz-mute)}
.mz-pricenote{font-size:1.05rem;color:var(--mz-dusk);background:var(--mz-paper2);border-left:3px solid var(--mz-lamp);padding:10px 14px;max-width:80ch}
.mz-from{font-family:var(--mz-serif);font-weight:400;font-size:1.3em;color:var(--mz-paper);white-space:nowrap}
.mz-incl{display:grid;grid-template-columns:1fr 1fr;gap:20px 36px}
.mz-incl h3{margin-top:0}
@media (max-width:700px){.mz-incl{grid-template-columns:1fr}}

/* month sheet */
.mz-glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--mz-rule);background:var(--mz-sheet);margin:0 0 1.4em}
.mz-glance div{padding:12px 14px;border-right:1px solid var(--mz-rule)}
.mz-glance div:last-child{border-right:0}
.mz-glance dt{font-size:.9rem;color:var(--mz-mute)}
.mz-glance dd{margin:0;font-family:var(--mz-serif);font-size:1.45rem;color:var(--mz-night)}
@media (max-width:760px){.mz-glance{grid-template-columns:1fr 1fr}.mz-glance div:nth-child(2){border-right:0}.mz-glance div:nth-child(-n+2){border-bottom:1px solid var(--mz-rule)}}
.mz-pager{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--mz-rule);padding-top:14px;margin-top:20px}

/* form */
.mz-form{background:var(--mz-sheet);color:var(--mz-dusk);border-top:4px solid var(--mz-lamp);padding:20px clamp(14px,2.4vw,26px) 22px;margin:1em 0}
.mz-hero .mz-form{margin-top:.8em;padding-top:14px}
.mz-hero .mz-form h2{font-size:1.3rem;margin-bottom:.15em}
.mz-hero .mz-lead{font-size:1.08rem}
.mz-hero .mz-form__intro{margin-bottom:.5em}
.mz-hero h1{margin-bottom:.25em}
.mz-form h2{margin-top:0;font-size:1.7rem}
.mz-form a{color:var(--mz-link)}
.mz-form__intro{font-size:1rem}
.mz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}
.mz-grid .mz-wide{grid-column:1 / -1}
@media (max-width:620px){.mz-grid{grid-template-columns:1fr}}
.mz-f{margin:0 0 12px}
.mz-f label,.mz-fs legend{display:block;font-weight:500;font-size:1rem;margin-bottom:4px}
.mz-hint{display:block;font-weight:400;font-size:.9rem;color:var(--mz-mute)}
.mz-f input,.mz-f select,.mz-f textarea{width:100%;font:inherit;font-size:1.02rem;padding:9px 10px;border:1px solid #9a8f80;border-radius:2px;background:#fff;color:var(--mz-dusk)}
.mz-f textarea{min-height:5.2em}
.mz-fs{border:0;padding:0;margin:0 0 12px}
.mz-pick{display:flex;flex-wrap:wrap;gap:6px 18px}
.mz-pick label{display:flex;gap:8px;align-items:center;font-weight:400}
.mz-pick input{width:24px;height:24px;margin:0}
.mz-out{display:block;background:var(--mz-paper2);border-left:3px solid var(--mz-lamp);padding:10px 12px;margin:2px 0 14px;font-size:1rem}
.mz-out strong{font-weight:700}
.mz-check{display:flex;gap:10px;align-items:flex-start;font-size:1rem;margin:4px 0 12px}
.mz-check input{margin-top:2px;width:24px;height:24px;flex:none}
.mz-btn{display:inline-block;background:var(--mz-night);color:var(--mz-paper);border:0;font:inherit;font-weight:700;font-size:1.08rem;padding:12px 22px;border-radius:2px;cursor:pointer}
.mz-btn:hover{background:var(--mz-violet)}
.mz-pot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.mz-err{color:#8a1c0c;font-size:.95rem}

/* questions */
.mz-qa details{border-bottom:1px solid var(--mz-rule);padding:12px 0}
.mz-qa summary{cursor:pointer;font-family:var(--mz-serif);font-size:1.3rem;color:var(--mz-night)}
.mz-qa details p{margin:.6em 0 0}

/* footer: colophon, centred, with the four seasons of phone hours as a small table */
.mz-foot{background:var(--mz-night);color:var(--mz-haze);padding:40px 0 30px;text-align:center;font-size:1rem}
.mz-foot a{color:var(--mz-paper)}
.mz-foot__mast{font-family:var(--mz-serif);font-size:1.6rem;color:var(--mz-paper);margin:0 0 .2em}
.mz-foot__addr{font-style:normal;margin:0 0 .6em}
.mz-foot__addr a,.mz-foot__links a{display:inline-block;padding:4px 0}
.mz-foot__tel{font-size:1.3rem;font-weight:700}
.mz-season{border-collapse:collapse;margin:14px auto 18px;font-size:.98rem}
.mz-season caption{margin-bottom:6px}
.mz-foot .mz-season caption{color:var(--mz-paper)}
.mz-season th,.mz-season td{padding:4px 14px;border-bottom:1px solid var(--mz-violet);text-align:left;font-weight:400}
.mz-foot__links{list-style:none;padding:0;margin:14px auto;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;max-width:900px}
.mz-foot__indep{max-width:70ch;margin:12px auto}
.mz-foot__c{font-size:.92rem;margin-top:14px}

@media print{.mz-head,.mz-foot,.mz-form{display:none}}

/* the first-screen availability check: date, crossing, button, phone */
.mz-avail{background:var(--mz-dusk);border:1px solid var(--mz-violet);border-top:4px solid var(--mz-lamp);padding:10px 16px 2px;margin:.2em 0 1em}
.mz-avail h2{color:var(--mz-paper);font-size:1.25rem;margin:0 0 .25em}
.mz-avail .mz-f{margin-bottom:8px}
.mz-avail label{color:var(--mz-paper)}
.mz-avail__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:4px 14px;align-items:end}
.mz-avail__go{margin:0 0 8px}
.mz-avail__call{grid-column:1 / -1;margin:0 0 8px;color:var(--mz-haze);font-size:1rem}
.mz-btn--lamp{background:var(--mz-lamp);color:var(--mz-night)}
.mz-btn--lamp:hover{background:#f0a23a}
.mz-btn[disabled]{opacity:.7;cursor:progress}
@media (max-width:1100px){.mz-avail__row{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.mz-avail__go{grid-column:1 / -1}}
/* date and crossing share one row on phones so the button stays on the first screen at 375x667; 320px stacks them */
@media (max-width:560px){.mz-avail__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 10px}.mz-avail__go{grid-column:1 / -1}}
@media (max-width:340px){.mz-avail__row{grid-template-columns:1fr}}
.mz-call__hours{max-width:42ch;margin-left:auto}
picture{display:block}
@media (max-width:560px){
  .mz-head__in{padding-top:10px;padding-bottom:8px;gap:6px 16px}
  .mz-mast__name{font-size:1.45rem}
  .mz-mast__what{font-size:.86rem}
  .mz-call{font-size:.88rem;line-height:1.35}
  .mz-call a{font-size:1.15rem}
  .mz-call__h{display:inline}
  .mz-call__hours{display:block;max-width:none;margin-left:0}
  .mz-navbtn{margin:4px 0}
  .mz-hero__panel{padding-top:10px}
  .mz-kicker{font-size:.86rem;margin-bottom:.2em}
  .mz-hero h1{font-size:1.75rem;margin-bottom:.3em}
  .mz-avail{padding:8px 12px 0}
  .mz-avail h2{font-size:1.1rem}
}
