@font-face{font-family:'Fraunces';src:url(/assets/fonts/fraunces-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fraunces';src:url(/assets/fonts/fraunces-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Manrope';src:url(/assets/fonts/manrope-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Manrope';src:url(/assets/fonts/manrope-700.woff2) format('woff2');font-weight:700;font-display:swap}

:root{
  --ink:#171410;
  --paper:var(--c-secondary,#f3efe6);
  --green:var(--c-primary,#1c4a38);
  --gold:var(--c-accent,#c4a265);
  --foam:#f7f3ec;
  --line:color-mix(in srgb,var(--ink) 14%,transparent);
  --head:color-mix(in srgb,var(--green) 30%,#0c0b09);
  --serif:'Fraunces',Georgia,serif;
  --sans:'Manrope',system-ui,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
}
body[data-font="alt"] h1,
body[data-font="alt"] h2,
body[data-font="alt"] h3,
body[data-font="alt"] .leme-word,
body[data-font="alt"] .leme-wordmark{font-family:var(--sans);font-weight:700;letter-spacing:-.03em}
img{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}
h1,h2,.leme-word,.leme-wordmark{font-family:var(--serif);font-weight:500;letter-spacing:-.03em;line-height:1.02}
.leme-skip{position:absolute;left:12px;top:-40px;background:#fff;padding:8px 12px;z-index:5}
.leme-skip:focus{top:12px}
.leme-wrap{width:min(1120px,calc(100% - 40px));margin:0 auto}
.leme-kicker{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green);margin:0 0 10px}
.leme-kicker-light{color:var(--gold)}
.leme-lead{max-width:42rem;color:color-mix(in srgb,var(--ink) 78%,white)}
.leme-head{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:22px;
  padding:14px 22px;
  background:var(--head);
  color:#f6f1e7;
}
.leme-brand{text-decoration:none;margin-right:auto}
.leme-brand img{height:42px;width:auto}
.leme-wordmark{font-size:1.35rem;color:#f6f1e7}
.leme-nav{display:flex;gap:18px;align-items:center}
.leme-nav a{color:#f6f1e7;text-decoration:none;font-size:.92rem}
.leme-nav a:hover,.leme-nav a:focus-visible{color:var(--gold)}
.leme-nav-btn{display:none;background:transparent;color:#f6f1e7;border:1px solid color-mix(in srgb,#fff 30%,transparent);border-radius:999px;padding:8px 14px}
.leme-login-link{display:inline-flex;align-items:center;flex:none;white-space:nowrap;color:#f6f1e7;text-decoration:none;font-weight:700;font-size:.92rem;border:1px solid color-mix(in srgb,#fff 40%,transparent);border-radius:999px;padding:8px 14px}
.leme-login-link:hover,.leme-login-link:focus-visible{color:var(--gold);border-color:var(--gold)}
.leme-logout-head{margin:0;flex:none}
.leme-logout-head button{display:inline-flex;align-items:center;background:transparent;color:#f6f1e7;border:1px solid color-mix(in srgb,#fff 40%,transparent);border-radius:999px;padding:8px 14px;font-weight:700;font-size:.92rem;cursor:pointer;white-space:nowrap}
.leme-logout-head button:hover,.leme-logout-head button:focus-visible{color:var(--gold);border-color:var(--gold)}
.leme-pill,.leme-btn{
  display:inline-flex;align-items:center;justify-content:center;
  text-decoration:none;border:0;cursor:pointer;
  background:var(--gold);color:var(--c-on-accent,#1c1915);
  border-radius:999px;padding:12px 18px;font-weight:700;
}
.leme-btn-ghost{background:transparent;color:#f6f1e7;border:1px solid color-mix(in srgb,#fff 45%,transparent)}
.leme-hero{position:relative;min-height:100svh;display:grid;align-items:end;color:#f7f3ec;overflow:hidden}
.leme-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.leme-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--head) 20%,transparent),color-mix(in srgb,#070706 78%,transparent))}
.leme-hero-copy{position:relative;z-index:1;width:min(1120px,calc(100% - 40px));margin:0 auto 72px}
.leme-word{font-size:clamp(4rem,12vw,9rem);color:#f4efe4;margin:8px 0 12px}
.leme-hero h1{font-size:clamp(2rem,4vw,3.4rem);max-width:16ch;margin-bottom:14px}
.leme-hero .leme-lead{color:#f3ecdf;margin-bottom:22px}
.leme-actions{display:flex;flex-wrap:wrap;gap:12px}
.leme-about,.leme-services,.leme-gallery,.leme-team,.leme-agenda,.leme-reviews{padding:84px 0}
.leme-about h2,.leme-services h2,.leme-gallery h2,.leme-team h2,.leme-agenda h2,.leme-reviews h2,.leme-contact h2,.leme-desk h1{font-size:clamp(2.2rem,5vw,4rem);max-width:16ch;margin-bottom:16px}
.leme-about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.leme-about-grid figure{margin:0;border-radius:18px;overflow:hidden}
.leme-about-grid img{width:100%;height:460px;object-fit:cover}
.leme-about-grid p{margin-top:12px}
.leme-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-top:36px}
.leme-highlights article{background:color-mix(in srgb,var(--green) 8%,var(--foam));border-radius:16px;padding:22px}
.leme-highlights h3{font-family:var(--serif);font-size:1.45rem;font-weight:500;margin-bottom:8px}
.leme-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}
.leme-service{background:#fffdf8;border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.leme-service img{width:100%;height:190px;object-fit:cover}
.leme-service div{padding:16px 16px 20px}
.leme-price{color:var(--green);font-weight:700;font-size:.92rem;margin-bottom:6px}
.leme-service h3,.leme-team h3{font-family:var(--serif);font-weight:500;font-size:1.55rem;margin-bottom:6px}
.leme-gallery-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;margin-top:28px}
.leme-gallery-grid figure{margin:0;position:relative;border-radius:16px;overflow:hidden;min-height:240px}
.leme-gallery-grid figure:first-child{grid-row:span 2;min-height:500px}
.leme-gallery-grid img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.leme-gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px;color:#f7f3ec;background:linear-gradient(transparent,#120f0c);display:flex;flex-direction:column}
.leme-team-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:28px}
.leme-team article{background:#fffdf8;border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.leme-team img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top}
.leme-team h3,.leme-role,.leme-team p{padding:0 16px}
.leme-team h3{padding-top:14px}
.leme-role{color:var(--green);font-weight:700;font-size:.92rem}
.leme-team article p:last-child{padding-bottom:18px}
.leme-board{margin-top:28px;background:#fffdf8;border:1px solid var(--line);border-radius:20px;padding:16px}
.leme-board-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.leme-board-bar p{font-family:var(--serif);font-size:1.35rem}
.leme-board-bar button,.leme-days button,.leme-switch button,.leme-logout button,.leme-dialog button[data-close],.leme-dialog button[data-cancel-slot]{
  background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 12px;cursor:pointer
}
.leme-days{display:flex;gap:8px;overflow:auto;margin:16px 0;padding-bottom:4px}
.leme-days button{min-width:72px}
.leme-days button.is-on,.leme-switch button.is-on{background:var(--green);color:var(--c-on-primary,#fff);border-color:var(--green)}
.leme-days button small{display:block;font-size:.75rem;opacity:.8}
.leme-switch{display:none;gap:8px;margin-bottom:12px}
.leme-cols{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(220px,1fr));gap:12px;overflow-x:auto}
.leme-col{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--foam)}
.leme-col header{display:flex;gap:10px;align-items:center;padding:12px;background:var(--head);color:#f6f1e7}
.leme-col header img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.leme-col header h3{font-family:var(--serif);font-weight:500;font-size:1.15rem}
.leme-col header p{font-size:.8rem;color:var(--gold)}
.leme-col ol{list-style:none;margin:0;padding:8px;display:grid;gap:6px}
.leme-slot{
  width:100%;text-align:left;border:1px solid transparent;background:#fffdf8;border-radius:12px;padding:8px 10px;cursor:pointer
}
.leme-slot strong{display:block;font-size:.95rem}
.leme-slot span{display:block;font-size:.82rem;color:color-mix(in srgb,var(--ink) 70%,white)}
.leme-slot.is-busy{background:color-mix(in srgb,var(--green) 16%,white);border-color:color-mix(in srgb,var(--green) 35%,white)}
.leme-slot.is-pending{background:color-mix(in srgb,var(--gold) 28%,white);border-color:color-mix(in srgb,var(--gold) 50%,white)}
.leme-legend{display:flex;gap:16px;margin-top:14px;font-size:.85rem}
.leme-legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:#fff;border:1px solid var(--line)}
.leme-legend span:nth-child(2)::before{background:color-mix(in srgb,var(--gold) 55%,white)}
.leme-legend span:nth-child(3)::before{background:color-mix(in srgb,var(--green) 55%,white)}
.leme-msg{min-height:1.2em;margin-top:8px}
.leme-access,.leme-access-inline{margin-top:18px;padding:16px 18px;border-radius:16px;background:color-mix(in srgb,var(--green) 10%,var(--foam))}
.leme-access a,.leme-back a{font-weight:700}
.leme-reviews{background:color-mix(in srgb,var(--green) 7%,var(--paper))}
.leme-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.leme-review-grid blockquote{margin:0;background:#fffdf8;border-radius:16px;padding:20px;border:1px solid var(--line)}
.leme-review-grid p{font-family:var(--serif);font-size:1.35rem;line-height:1.35;margin-bottom:14px}
.leme-review-grid footer{display:flex;flex-direction:column;font-size:.92rem}
.leme-contact{background:var(--head);color:#f6f1e7;padding:84px 0}
.leme-contact h2{color:#f6f1e7}
.leme-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}
.leme-facts h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;color:var(--gold);margin-bottom:6px}
.leme-facts a{color:#f6f1e7}
.leme-foot{background:#0c0b09;color:#f6f1e7;padding:48px 0 20px}
.leme-foot-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:24px}
.leme-foot a{display:block;text-decoration:none;margin:6px 0;color:#f6f1e7}
.leme-foot h3{font-family:var(--serif);font-weight:500;color:var(--gold);margin-bottom:8px}
.leme-copy{width:min(1120px,calc(100% - 40px));margin:28px auto 0;padding-top:16px;border-top:1px solid color-mix(in srgb,#fff 12%,transparent);font-size:.85rem}
.leme-wa{
  position:fixed;right:16px;bottom:16px;z-index:15;
  background:#1f7a45;color:#fff;text-decoration:none;font-weight:700;
  border-radius:999px;padding:12px 16px;
  box-shadow:0 8px 24px color-mix(in srgb,#000 25%,transparent)
}
.leme-dialog{border:0;border-radius:20px;padding:0;width:min(440px,calc(100% - 24px));background:#fffdf8}
.leme-dialog::backdrop{background:color-mix(in srgb,#120f0c 55%,transparent)}
.leme-dialog form{padding:22px;display:grid;gap:12px}
.leme-dialog h3{font-family:var(--serif);font-size:1.8rem;font-weight:500}
.leme-dialog label{display:grid;gap:6px;font-size:.92rem;font-weight:700}
.leme-dialog input,.leme-dialog select,.leme-dialog textarea,.leme-login input{
  width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;font-weight:400
}
.leme-dialog-actions{display:flex;flex-wrap:wrap;gap:8px}
.leme-dialog-error{color:#8d2f2f;min-height:1em}
.leme-hp{position:absolute;left:-9999px;height:0;width:0;opacity:0}
.leme-login{min-height:100svh;display:grid;grid-template-columns:1.1fr .9fr}
.leme-login-photo img{width:100%;height:100svh;object-fit:cover}
.leme-login-card{padding:48px 32px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.leme-login form{display:grid;gap:12px;margin-top:8px}
.leme-login label{display:grid;gap:6px;font-weight:700}
.leme-desk{padding:48px 0 72px}
.leme-staff{margin:28px 0 8px;padding:22px;border:1px solid var(--line);border-radius:20px;background:#fffdf8}
.leme-staff h2,.leme-board-block h2{font-size:clamp(1.8rem,3vw,2.6rem);max-width:none;margin:0 0 8px}
.leme-staff h3{font-family:var(--serif);font-size:1.35rem;font-weight:500;margin:0 0 12px}
.leme-board-block{margin-top:36px}
.leme-staff-split{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:24px;align-items:start;margin-top:16px}
.leme-staff-form{display:grid;gap:12px}
.leme-staff label{display:grid;gap:6px;font-weight:700}
.leme-staff input,.leme-staff textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;font-weight:400}
.leme-staff input[type=file]{padding:8px;font-weight:400}
.leme-staff-hint{display:block;font-weight:400;color:color-mix(in srgb,var(--ink) 68%,transparent);font-size:.86rem}
.leme-staff-table-wrap{min-width:0;overflow-x:auto}
.leme-staff-table{width:100%;border-collapse:collapse}
.leme-staff-table th,.leme-staff-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.leme-staff-table th{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 62%,transparent)}
.leme-staff-table strong,.leme-staff-table span{display:block}
.leme-staff-table span{color:color-mix(in srgb,var(--ink) 68%,transparent);font-size:.92rem;margin-top:2px}
.leme-staff-photo{width:48px;height:48px;border-radius:50%;object-fit:cover;display:block}
.leme-staff-table form{display:block}
.leme-staff-table button{background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer}
.leme-logout{margin-top:18px}
.leme-back{margin-top:12px}
body:has(.leme-login) .leme-head{display:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (max-width:900px){
  .leme-about-grid,.leme-service-grid,.leme-team-row,.leme-review-grid,.leme-facts,.leme-foot-grid,.leme-login,.leme-staff-split{grid-template-columns:1fr}
  .leme-gallery-grid{grid-template-columns:1fr 1fr}
  .leme-gallery-grid figure:first-child{grid-row:auto;min-height:280px}
  .leme-highlights{grid-template-columns:1fr}
  .leme-login-photo{display:none}
  .leme-hero{padding-bottom:140px}
  .leme-hero-copy{margin-bottom:24px}
  .leme-head{gap:8px;padding:10px 14px}
  .leme-wordmark{font-size:1.05rem;white-space:nowrap}
  .leme-head .leme-pill{white-space:nowrap;padding:8px 12px;font-size:.82rem;flex:none}
  .leme-login-link,.leme-logout-head button{padding:8px 10px;font-size:.82rem}
  .leme-nav-btn{display:inline-flex;flex:none}
  .leme-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;padding:16px 22px 20px;background:var(--head);z-index:30}
  .leme-nav.is-open{display:flex}
  .leme-board-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .leme-board-bar p{grid-column:1 / -1;grid-row:1;text-align:center;margin:0}
  .leme-board-bar button:first-child{grid-column:1;grid-row:2;justify-self:start}
  .leme-board-bar button:last-child{grid-column:2;grid-row:2;justify-self:end}
  .leme-cols{grid-template-columns:1fr}
  .leme-col{display:none}
  .leme-col.is-on{display:block}
  .leme-switch{display:flex;flex-wrap:wrap}
  .leme-switch button{white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}
