/* Atelier Library · kymo. Light theme, TodayBEF, dense grid. */

@font-face{font-family:'TodayBEF';src:url('fonts/todaybef-extralight-webfont.woff') format('woff');font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:'TodayBEF';src:url('fonts/todaybef-regular-webfont.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'TodayBEF';src:url('fonts/todaybef-medium-webfont.woff') format('woff');font-weight:500;font-style:normal;font-display:swap}

:root{
  --kymo-blue:#1A2B3C;
  --accent:#309FEA;
  --accent-light:#41ABF1;
  --cognac:#9D6525;
  --olive:#90A74E;
  --bg:#F6F6F6;
  --white:#FFFFFF;
  --border:#DDDEE0;
  --grey-light:#E2E2E2;
  --text-body:#343843;
  --text-muted:#5A5F69;
  --text-subtle:#82878C;
  --gutter:16px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden}
body{
  background:var(--bg);
  color:var(--text-body);
  font-family:TodayBEF,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;
  letter-spacing:.02em;
  line-height:1.7;
}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}
a{color:var(--accent)}

h1,h2,h3{font-family:'TodayBEF',sans-serif;font-weight:200;text-transform:uppercase;letter-spacing:.06em;line-height:1.125;margin:0}

/* ---- header ---- */
.head{background:var(--kymo-blue);color:#fff}
.head-bar{display:flex;align-items:center;gap:14px;padding:16px var(--gutter) 0}
.head-logo{height:26px;width:auto}
.head-kicker{font-weight:500;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#fff;opacity:.85}
.board-btn{margin-left:auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:999px;padding:6px 12px;font-size:13px;display:flex;align-items:center;gap:6px}
.board-btn .hz{color:var(--accent-light);font-size:14px}
.head-intro{padding:22px var(--gutter) 30px;max-width:900px}
.head-intro h1{font-size:clamp(30px,5vw,52px);margin-bottom:14px}
.head-intro p{font-size:15px;color:rgba(255,255,255,.82);letter-spacing:.01em;max-width:620px}

/* ---- filter bar ---- */
.filterbar{
  position:sticky;top:0;z-index:20;background:var(--white);border-bottom:1px solid var(--border);
  padding:12px var(--gutter);display:flex;flex-wrap:wrap;gap:18px 24px;align-items:flex-start;
}
.fgroup{display:flex;flex-direction:column;gap:6px;min-width:0}
.fgroup-label{font-family:'TodayBEF',sans-serif;font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-subtle)}
.fchips{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}
.fchip{
  border:1px solid var(--border);background:var(--white);color:var(--text-body);
  border-radius:999px;padding:5px 12px;font-size:12.5px;letter-spacing:.02em;white-space:nowrap;
}
.fchip[aria-pressed="true"]{background:var(--kymo-blue);border-color:var(--kymo-blue);color:#fff}
.fchip:hover{border-color:var(--accent)}
.fclear{margin-left:auto;align-self:center;background:none;border:none;color:var(--accent);font-size:12.5px;text-decoration:underline}

/* ---- grid ---- */
.grid{
  display:grid;grid-template-columns:repeat(6,1fr);grid-auto-flow:dense;grid-auto-rows:1fr;
  gap:10px;padding:16px var(--gutter) 40px;
}
@media(max-width:1000px){.grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.grid{grid-template-columns:repeat(2,1fr);gap:8px}}

.tile{
  position:relative;border:none;background:var(--grey-light);padding:0;overflow:hidden;
  grid-column:span 1;grid-row:span 1;display:block;width:100%;height:100%;text-align:left;
}
.tile.tile-room{grid-column:span 2;grid-row:span 2}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.tile:hover img{transform:scale(1.035)}
.tile .tag{
  position:absolute;left:0;bottom:0;right:0;padding:8px 10px;
  background:linear-gradient(0deg,rgba(26,43,60,.72),rgba(26,43,60,0));
  color:#fff;font-size:11.5px;letter-spacing:.02em;opacity:0;transition:opacity .2s;
}
.tile:hover .tag,.tile:focus-visible .tag{opacity:1}
.tile .ai-mark{
  position:absolute;top:6px;right:6px;background:rgba(26,43,60,.72);color:#fff;
  font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:3px;
}
.tile .heart{
  position:absolute;top:6px;left:6px;background:rgba(26,43,60,.55);color:#fff;border:none;
  border-radius:50%;width:26px;height:26px;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.tile .heart.on{color:var(--accent-light);background:rgba(26,43,60,.85)}

.empty-state{padding:40px var(--gutter);color:var(--text-muted);text-align:center}

/* ---- panel overlay ---- */
.panel-overlay{
  position:fixed;inset:0;background:rgba(26,43,60,.62);z-index:100;
  display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:0;
}
.panel-overlay[hidden]{display:none}
.panel{
  background:var(--white);width:100%;max-width:1100px;min-height:100vh;position:relative;
  padding:0 0 40px;
}
@media(min-width:760px){.panel{min-height:auto;margin:32px var(--gutter);border-radius:4px}}
.panel-close{
  position:absolute;top:12px;right:12px;z-index:5;background:var(--kymo-blue);color:#fff;border:none;
  width:36px;height:36px;border-radius:50%;font-size:18px;line-height:1;
}
.panel-body{padding:0}

/* ---- inline detail unit: replaces the modal, sits directly under the clicked tile's row,
   full grid width, feed continues below it (Denis 16.09.) ---- */
.detail-unit{
  position:relative;background:#fff;border:1px solid var(--border);border-radius:4px;overflow:hidden;
  box-shadow:0 2px 14px rgba(26,43,60,.1);
}
.detail-close{
  position:absolute;top:10px;right:10px;z-index:5;background:var(--kymo-blue);color:#fff;border:none;
  width:32px;height:32px;border-radius:50%;font-size:16px;line-height:1;
}
.pd-media{background:#EDEDED}
.pd-room-img{width:100%;aspect-ratio:4/3;object-fit:cover}
.pd-toggle{display:flex;gap:8px;padding:10px var(--gutter) 0}
.pd-toggle button{border:1px solid var(--border);background:#fff;border-radius:999px;padding:5px 12px;font-size:12px}
.pd-toggle button[aria-pressed="true"]{background:var(--kymo-blue);color:#fff;border-color:var(--kymo-blue)}
.pd-corner{width:100%;max-height:340px;object-fit:cover}
.pd-ai-note{padding:8px var(--gutter) 0;font-size:11.5px;color:var(--text-subtle)}
@media(min-width:760px){
  /* room large, the pair corner beside it, per spec. Each image sizes from its own
     aspect-ratio (own column width) rather than a shared row height, so nothing depends
     on a sibling having rendered first. */
  .pd-media{display:grid;grid-template-columns:1.4fr 1fr}
  .pd-media .pd-room-img{grid-column:1;grid-row:1/4;aspect-ratio:4/3;height:auto}
  .pd-media .pd-toggle{grid-column:2;grid-row:1}
  .pd-media .pd-corner{grid-column:2;grid-row:2;aspect-ratio:1/1;height:auto;max-height:none}
  .pd-media .pd-ai-note{grid-column:1/-1;grid-row:3}
}

.follow{padding:8px var(--gutter) 26px;border-top:1px solid var(--border);margin-top:8px}
.follow-heading{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle);margin:14px 0 10px}
.followgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-auto-flow:dense;gap:8px}
.followgrid .tile{height:auto;aspect-ratio:1}
.followgrid .detail-unit{grid-column:1/-1;margin:4px 0}

.pd-body{padding:22px var(--gutter) 0}
.pd-kicker{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--cognac)}
.pd-title{font-size:26px;margin:8px 0 4px}
.pd-sub{color:var(--text-muted);font-size:13.5px;margin-bottom:16px}
.pd-custom{
  background:#FBF3E9;border:1px solid #E9D2AF;color:#7A4E1B;font-size:12.5px;padding:8px 12px;
  border-radius:3px;margin-bottom:16px;
}
.pd-facts{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 0;margin:16px 0}
.pd-facts h3{font-size:12px;letter-spacing:.14em;margin-bottom:8px}
.pd-facts ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:13px;color:var(--text-body)}
@media(max-width:560px){.pd-facts ul{grid-template-columns:1fr}}
.pd-facts li b{font-weight:500;color:var(--text-muted)}

.pd-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.btn{border-radius:2px;padding:11px 18px;font-size:13px;letter-spacing:.04em;text-decoration:none;display:inline-block;border:1px solid transparent}
.btn-primary{background:var(--kymo-blue);color:#fff}
.btn-primary:hover{background:#233b52}
.btn-ghost{background:#fff;border-color:var(--border);color:var(--text-body)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-heart{background:#fff;border-color:var(--border);color:var(--text-body)}
.btn-heart.on{border-color:var(--accent);color:var(--accent)}

.pd-colourway h3{font-size:12px;letter-spacing:.14em;color:var(--text-subtle);margin-bottom:8px}
.pd-cw-row{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:22px}
.pd-cw{width:56px;flex:0 0 auto;border:none;background:none;padding:0;text-align:center}
.pd-cw img{width:56px;height:56px;object-fit:cover;border-radius:3px;border:2px solid transparent}
.pd-cw[aria-current="true"] img{border-color:var(--accent)}
.pd-cw span{display:block;font-size:9.5px;color:var(--text-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- board ---- */
.panel-board .panel-body{padding:26px var(--gutter)}
.board-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:16px 0}
.board-item{position:relative;border:1px solid var(--border);border-radius:3px;overflow:hidden}
.board-item img{width:100%;aspect-ratio:1/1;object-fit:cover}
.board-item button{position:absolute;top:4px;right:4px;background:rgba(26,43,60,.7);color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:12px}
.board-empty{color:var(--text-muted);padding:20px 0}
.board-share{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}

.shared-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--kymo-blue);color:#fff;
  padding:12px var(--gutter);display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px;
}
.shared-banner[hidden]{display:none}
.shared-banner button{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:999px;padding:5px 12px}
#sharedBannerDismiss{border:none;padding:0 6px;font-size:16px}

/* ---- footer ---- */
.foot{background:var(--kymo-blue);color:rgba(255,255,255,.8);padding:30px var(--gutter);margin-top:20px}
.foot-claim{color:#fff;font-family:'TodayBEF',sans-serif;font-weight:500;letter-spacing:.14em;font-size:14px;margin-bottom:10px}
.foot-legal{font-size:11.5px;line-height:1.6}
.foot-legal a{color:var(--accent-light)}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.foot-note{margin-top:6px;opacity:.6;font-size:12px}

.proj-mark{position:absolute;right:8px;top:8px;background:#1A2B3C;color:#fff;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:2px;z-index:2}
