:root{
  --lab-bg:#f3ece1;
  --lab-bg-soft:#faf4ea;
  --lab-surface:#ffffff;
  --lab-ink:#2b2117;
  --lab-ink-soft:#574939;
  --lab-line:#e2d6c3;
  --lab-terracotta:#b35a36;
  --lab-terracotta-soft:#e39873;
  --lab-mustard:#c89735;
  --lab-mustard-soft:#e9c781;
  --lab-smoky:#5a7891;
  --lab-smoky-soft:#a7bccd;
  --lab-sage:#7c8a70;
  --lab-shadow:0 10px 28px rgba(60,40,18,0.08);
  --lab-shadow-lift:0 18px 40px rgba(60,40,18,0.12);
  --lab-radius:14px;
  --lab-radius-sm:8px;
  --lab-maxw:1160px;
  --lab-gap:20px;
  --lab-font-body:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  --lab-font-label:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--lab-font-body);
  background:var(--lab-bg);
  color:var(--lab-ink);
  line-height:1.75;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto}
a{color:var(--lab-terracotta);text-decoration:none}
a:hover{color:var(--lab-ink)}
button{font-family:inherit;cursor:pointer;border:0;background:none}

.lab-skip{position:absolute;left:-999px;top:0;background:var(--lab-ink);color:#fff;padding:8px 14px;border-radius:4px}
.lab-skip:focus{left:12px;top:12px;z-index:9999}

.lab-header{
  position:sticky;top:0;z-index:80;
  background:rgba(243,236,225,0.96);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--lab-line);
}
.lab-nav{
  max-width:var(--lab-maxw);
  margin:0 auto;
  padding:14px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.lab-brand{display:flex;align-items:center;gap:12px;color:var(--lab-ink)}
.lab-brand-mark{
  width:40px;height:40px;border-radius:10px;
  background:linear-gradient(135deg,var(--lab-terracotta),var(--lab-mustard));
  display:grid;place-items:center;color:#fff;
}
.lab-brand-name{font-weight:700;font-size:1.05rem;line-height:1.1}
.lab-brand-sub{font-family:var(--lab-font-label);font-size:.72rem;letter-spacing:.12em;color:var(--lab-ink-soft);text-transform:uppercase}

.lab-tabs{list-style:none;display:flex;gap:6px;align-items:center}
.lab-tab{position:relative}
.lab-tab>a,.lab-tab>button{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 12px;border-radius:8px;
  color:var(--lab-ink-soft);font-weight:500;font-size:.94rem;
}
.lab-tab>a:hover,.lab-tab>button:hover{background:var(--lab-bg-soft);color:var(--lab-ink)}
.lab-tab[aria-current="page"]>a{background:var(--lab-ink);color:#fff}
.lab-tab-ico{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}

.lab-dropdown{
  position:absolute;top:calc(100% + 8px);left:0;
  min-width:280px;background:var(--lab-surface);
  border:1px solid var(--lab-line);border-radius:12px;
  padding:10px;display:none;box-shadow:var(--lab-shadow-lift);
}
.lab-dropdown[data-open="true"]{display:block}
.lab-dropdown a{
  display:block;padding:10px 12px;border-radius:8px;color:var(--lab-ink);
  font-size:.92rem;line-height:1.35;
}
.lab-dropdown a:hover{background:var(--lab-bg-soft);color:var(--lab-terracotta)}
.lab-dropdown .lab-drop-meta{font-family:var(--lab-font-label);font-size:.7rem;color:var(--lab-ink-soft);letter-spacing:.1em;text-transform:uppercase}

.lab-cta-round{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:999px;
  background:var(--lab-terracotta);color:#fff;
  font-weight:600;font-size:.9rem;
  box-shadow:var(--lab-shadow);
}
.lab-cta-round:hover{background:var(--lab-ink);color:#fff}
.lab-cta-round svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}

.lab-burger{display:none;width:40px;height:40px;border-radius:10px;background:var(--lab-surface);border:1px solid var(--lab-line);align-items:center;justify-content:center}
.lab-burger svg{width:20px;height:20px;stroke:var(--lab-ink);fill:none;stroke-width:2}

@media (max-width:880px){
  .lab-tabs{display:none;position:absolute;top:100%;left:0;right:0;background:var(--lab-surface);flex-direction:column;align-items:stretch;gap:0;padding:10px;border-bottom:1px solid var(--lab-line)}
  .lab-tabs[data-open="true"]{display:flex}
  .lab-tab>a,.lab-tab>button{width:100%;justify-content:flex-start}
  .lab-dropdown{position:static;box-shadow:none;border:0;padding:0 0 0 28px}
  .lab-cta-round{display:none}
  .lab-burger{display:inline-flex}
}

main{max-width:var(--lab-maxw);margin:0 auto;padding:36px 22px 80px}

.lab-bento{
  display:grid;gap:var(--lab-gap);
  grid-template-columns:repeat(12,1fr);
}
.lab-block{
  background:var(--lab-surface);border-radius:var(--lab-radius);
  padding:26px;box-shadow:var(--lab-shadow);
  border:1px solid var(--lab-line);
  transition:transform .18s ease, box-shadow .18s ease;
}
.lab-block:hover{transform:translateY(-2px);box-shadow:var(--lab-shadow-lift)}

.lab-block.is-hero{grid-column:span 8;min-height:300px;background:linear-gradient(135deg,rgba(179,90,54,0.92),rgba(200,151,53,0.88)),url('../../img/home-bento-hero.jpg') center/cover;color:#fff;border:0;padding:40px}
.lab-block.is-hero .lab-eyebrow{color:rgba(255,255,255,.85)}
.lab-block.is-hero h1{color:#fff;font-size:2.2rem;line-height:1.3;margin:14px 0 12px;font-weight:700}
.lab-block.is-hero p{color:rgba(255,255,255,.92);max-width:42ch}
.lab-block.is-hero .lab-hero-cta{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}

.lab-block.is-board{grid-column:span 4;background:var(--lab-smoky);color:#fff;border:0}
.lab-block.is-board h3{color:#fff;font-size:1.05rem;margin-bottom:14px}
.lab-block.is-board ul{list-style:none}
.lab-block.is-board li{padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.25);font-size:.92rem}
.lab-block.is-board li:last-child{border:0}

.lab-block.is-terms{grid-column:span 5;background:var(--lab-mustard-soft);border:0}
.lab-block.is-terms h3{color:var(--lab-ink)}
.lab-block.is-notes{grid-column:span 7;background:var(--lab-bg-soft)}

.lab-eyebrow{
  font-family:var(--lab-font-label);
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--lab-ink-soft);
}
h2{font-size:1.5rem;line-height:1.35;margin:0 0 8px}
h3{font-size:1.1rem;line-height:1.4;margin:0 0 6px}

.lab-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 20px;border-radius:10px;
  background:var(--lab-ink);color:#fff;font-weight:600;font-size:.92rem;
}
.lab-btn:hover{background:var(--lab-terracotta);color:#fff}
.lab-btn.is-outline{background:transparent;border:1.5px solid #fff;color:#fff}
.lab-btn.is-outline:hover{background:#fff;color:var(--lab-ink)}
.lab-btn.is-ghost{background:var(--lab-bg-soft);color:var(--lab-ink);border:1px solid var(--lab-line)}
.lab-btn.is-ghost:hover{background:var(--lab-ink);color:#fff}

.lab-section{margin-top:56px}
.lab-section-head{margin-bottom:22px}
.lab-section-head h2{margin-top:6px}
.lab-section-head p{color:var(--lab-ink-soft);max-width:62ch}

.lab-glossary{
  display:grid;gap:16px;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.lab-gloss-card{
  background:var(--lab-surface);border:1px solid var(--lab-line);
  border-radius:var(--lab-radius-sm);padding:18px;
  border-left:4px solid var(--lab-terracotta);
}
.lab-gloss-card:nth-child(2){border-left-color:var(--lab-mustard)}
.lab-gloss-card:nth-child(3){border-left-color:var(--lab-smoky)}
.lab-gloss-card:nth-child(4){border-left-color:var(--lab-sage)}
.lab-gloss-term{font-family:var(--lab-font-label);font-size:.78rem;letter-spacing:.1em;color:var(--lab-ink-soft);text-transform:uppercase}
.lab-gloss-card h3{font-size:1rem;margin:6px 0 8px}
.lab-gloss-card p{font-size:.9rem;color:var(--lab-ink-soft)}

.lab-cards{
  display:grid;gap:20px;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
.lab-card{
  background:var(--lab-surface);border-radius:var(--lab-radius);
  overflow:hidden;border:1px solid var(--lab-line);
  box-shadow:var(--lab-shadow);display:flex;flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
}
.lab-card:hover{transform:translateY(-3px);box-shadow:var(--lab-shadow-lift)}
.lab-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.lab-card-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.lab-chip{
  display:inline-block;font-family:var(--lab-font-label);
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 9px;border-radius:999px;
  background:var(--lab-bg-soft);color:var(--lab-ink-soft);
  border:1px solid var(--lab-line);width:fit-content;
}
.lab-card-body h3{font-size:1.08rem;line-height:1.4}
.lab-card-body p{color:var(--lab-ink-soft);font-size:.92rem;flex:1}
.lab-card-meta{font-family:var(--lab-font-label);font-size:.72rem;color:var(--lab-ink-soft);letter-spacing:.08em}
.lab-card a.lab-card-link{color:var(--lab-terracotta);font-weight:600;font-size:.9rem}
.lab-card a.lab-card-link:hover{color:var(--lab-ink)}

.lab-about{
  display:grid;gap:28px;
  grid-template-columns:1.1fr .9fr;align-items:center;
}
.lab-about img{border-radius:var(--lab-radius);aspect-ratio:5/4;object-fit:cover}
.lab-about-text p{margin-bottom:12px;color:var(--lab-ink-soft)}
.lab-about-text .lab-btn{margin-top:8px}

.lab-pillars{
  display:grid;gap:18px;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.lab-pillar{
  background:var(--lab-surface);border-radius:var(--lab-radius);padding:22px;
  border:1px solid var(--lab-line);position:relative;overflow:hidden;
}
.lab-pillar::before{
  content:"";position:absolute;left:0;top:0;width:6px;height:100%;
  background:var(--lab-terracotta);
}
.lab-pillar:nth-child(2)::before{background:var(--lab-mustard)}
.lab-pillar:nth-child(3)::before{background:var(--lab-smoky)}
.lab-pillar:nth-child(4)::before{background:var(--lab-sage)}
.lab-pillar-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--lab-bg-soft);margin-bottom:12px}
.lab-pillar-ico svg{width:20px;height:20px;stroke:var(--lab-terracotta);fill:none;stroke-width:1.8}
.lab-pillar h3{font-size:1rem}
.lab-pillar p{font-size:.9rem;color:var(--lab-ink-soft)}

.lab-mission{
  display:grid;gap:24px;
  grid-template-columns:1fr 1fr;align-items:stretch;
}
.lab-mission-card{
  background:var(--lab-surface);border-radius:var(--lab-radius);padding:28px;
  border:1px solid var(--lab-line);box-shadow:var(--lab-shadow);
}
.lab-mission-card.is-mustard{background:var(--lab-mustard-soft);border:0}
.lab-mission-card.is-smoky{background:var(--lab-smoky);color:#fff;border:0}
.lab-mission-card.is-smoky h3,.lab-mission-card.is-smoky .lab-eyebrow{color:#fff}
.lab-mission-card.is-smoky p{color:rgba(255,255,255,.92)}

.lab-closing{
  margin-top:56px;padding:44px;
  border-radius:var(--lab-radius);
  background:linear-gradient(120deg,var(--lab-ink) 0%,#3d2e1f 100%);
  color:#fff;text-align:center;
}
.lab-closing h2{color:#fff;margin:10px 0 10px;font-size:1.6rem}
.lab-closing p{color:rgba(255,255,255,.88);max-width:60ch;margin:0 auto 20px}
.lab-closing .lab-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.lab-article{
  background:var(--lab-surface);border-radius:var(--lab-radius);
  padding:38px;box-shadow:var(--lab-shadow);border:1px solid var(--lab-line);
}
.lab-article-head{margin-bottom:22px}
.lab-article-head img{border-radius:var(--lab-radius-sm);aspect-ratio:16/7;object-fit:cover;margin-bottom:20px}
.lab-byline{font-family:var(--lab-font-label);font-size:.78rem;letter-spacing:.1em;color:var(--lab-ink-soft);text-transform:uppercase}
.lab-article h1{font-size:1.9rem;line-height:1.4;margin:8px 0 10px}
.lab-article h2{font-size:1.25rem;margin:26px 0 10px;color:var(--lab-terracotta)}
.lab-article h3{font-size:1.05rem;margin:20px 0 8px;color:var(--lab-smoky)}
.lab-article p{margin-bottom:12px;color:var(--lab-ink)}
.lab-article ul{margin:0 0 14px 22px;color:var(--lab-ink-soft)}
.lab-article ul li{margin-bottom:6px}
.lab-qa{background:var(--lab-bg-soft);border-left:4px solid var(--lab-mustard);padding:16px 18px;border-radius:0 var(--lab-radius-sm) var(--lab-radius-sm) 0;margin:16px 0}
.lab-qa strong{display:block;font-family:var(--lab-font-label);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lab-mustard);margin-bottom:4px}

.lab-prevnext{
  display:grid;gap:14px;grid-template-columns:1fr 1fr;margin-top:36px;
}
.lab-prevnext a{
  display:block;padding:18px;border:1px solid var(--lab-line);border-radius:var(--lab-radius-sm);
  background:var(--lab-bg-soft);color:var(--lab-ink);
}
.lab-prevnext a:hover{background:var(--lab-surface);border-color:var(--lab-terracotta)}
.lab-prevnext small{display:block;font-family:var(--lab-font-label);font-size:.72rem;letter-spacing:.1em;color:var(--lab-ink-soft);margin-bottom:4px}
.lab-prevnext strong{font-size:.95rem}

.lab-contact-bento{
  display:grid;gap:20px;
  grid-template-columns:repeat(12,1fr);
}
.lab-contact-bento .lab-block.is-info{grid-column:span 5}
.lab-contact-bento .lab-block.is-form{grid-column:span 7}
.lab-contact-bento .lab-block.is-map{grid-column:span 12;padding:0;overflow:hidden}

.lab-info-list{list-style:none;margin-top:16px;display:grid;gap:14px}
.lab-info-list li{display:flex;gap:12px;align-items:flex-start}
.lab-info-ico{width:38px;height:38px;border-radius:10px;background:var(--lab-bg-soft);display:grid;place-items:center;flex-shrink:0}
.lab-info-ico svg{width:18px;height:18px;stroke:var(--lab-terracotta);fill:none;stroke-width:1.8}
.lab-info-list small{font-family:var(--lab-font-label);font-size:.72rem;letter-spacing:.1em;color:var(--lab-ink-soft);text-transform:uppercase;display:block;margin-bottom:2px}

.lab-form{display:grid;gap:14px;margin-top:14px}
.lab-form label{font-size:.88rem;font-weight:600;color:var(--lab-ink)}
.lab-form input,.lab-form textarea{
  width:100%;padding:12px 14px;border:1px solid var(--lab-line);
  border-radius:var(--lab-radius-sm);background:var(--lab-bg-soft);
  font-family:inherit;font-size:.94rem;color:var(--lab-ink);
}
.lab-form input:focus,.lab-form textarea:focus{outline:2px solid var(--lab-terracotta);outline-offset:1px;background:#fff}
.lab-form textarea{min-height:120px;resize:vertical}
.lab-form .lab-btn{justify-self:flex-start}

.lab-map-frame{width:100%;height:420px;border:0}
.lab-map-foot{padding:14px 20px;border-top:1px solid var(--lab-line);display:flex;justify-content:space-between;align-items:center;background:var(--lab-bg-soft)}
.lab-map-foot a{font-size:.88rem;font-weight:600}

.lab-legal h1{font-size:1.6rem;margin-bottom:8px}
.lab-legal h2{font-size:1.1rem;color:var(--lab-terracotta);margin:22px 0 8px}
.lab-legal p,.lab-legal li{color:var(--lab-ink);font-size:.95rem}
.lab-legal ul{margin:0 0 14px 22px}

.lab-footer{
  background:#2b2117;color:#d9c9b3;margin-top:40px;padding:48px 0 18px;
}
.lab-footer-inner{max-width:var(--lab-maxw);margin:0 auto;padding:0 22px;display:grid;gap:28px;grid-template-columns:1.3fr 1fr 1fr}
.lab-footer h4{font-family:var(--lab-font-label);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:#f3d9b8;margin-bottom:14px}
.lab-footer ul{list-style:none;display:grid;gap:10px}
.lab-footer a{color:#d9c9b3;font-size:.92rem}
.lab-footer a:hover{color:#fff}
.lab-footer-info p{font-size:.92rem;margin-bottom:6px;color:#d9c9b3}
.lab-footer-info strong{color:#fff;font-weight:600}
.lab-footer-bottom{max-width:var(--lab-maxw);margin:26px auto 0;padding:14px 22px 0;border-top:1px solid #4a3a28;font-size:.78rem;color:#b09d84;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.lab-footer-bottom button{color:#f3d9b8;font-size:.78rem;text-decoration:underline}
.lab-footer-bottom button:hover{color:#fff}

.lab-cookie{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:var(--lab-ink);color:#fff;
  padding:14px 22px;display:none;
  box-shadow:0 3px 14px rgba(0,0,0,.22);
}
.lab-cookie[data-open="true"]{display:block}
.lab-cookie-inner{max-width:var(--lab-maxw);margin:0 auto;display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.lab-cookie p{font-size:.88rem;color:#f3d9b8;flex:1;min-width:260px}
.lab-cookie p a{color:var(--lab-mustard-soft);text-decoration:underline}
.lab-cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.lab-cookie-actions button{padding:9px 18px;border-radius:8px;font-weight:600;font-size:.88rem}
.lab-cookie-actions .is-accept{background:var(--lab-mustard);color:var(--lab-ink)}
.lab-cookie-actions .is-accept:hover{background:#fff}
.lab-cookie-actions .is-reject{background:transparent;color:#f3d9b8;border:1px solid #6b553d}
.lab-cookie-actions .is-reject:hover{background:#4a3a28}

.lab-modal{
  position:fixed;inset:0;background:rgba(43,33,23,.72);
  display:none;align-items:center;justify-content:center;z-index:110;padding:22px;
}
.lab-modal[data-open="true"]{display:flex}
.lab-modal-card{
  background:var(--lab-surface);border-radius:var(--lab-radius);
  max-width:420px;padding:28px;text-align:center;box-shadow:var(--lab-shadow-lift);
}
.lab-modal-card h3{margin-bottom:10px}
.lab-modal-card p{color:var(--lab-ink-soft);margin-bottom:16px}

@media (max-width:880px){
  .lab-block.is-hero,.lab-block.is-board,.lab-block.is-terms,.lab-block.is-notes{grid-column:span 12}
  .lab-contact-bento .lab-block.is-info,.lab-contact-bento .lab-block.is-form,.lab-contact-bento .lab-block.is-map{grid-column:span 12}
  .lab-about{grid-template-columns:1fr}
  .lab-mission{grid-template-columns:1fr}
  .lab-footer-inner{grid-template-columns:1fr}
  .lab-prevnext{grid-template-columns:1fr}
  .lab-article{padding:26px 20px}
  .lab-article h1{font-size:1.5rem}
}

@media (max-width:560px){
  main{padding:24px 16px 60px}
  .lab-block{padding:20px}
  .lab-block.is-hero{padding:28px 22px}
  .lab-block.is-hero h1{font-size:1.6rem}
  .lab-closing{padding:30px 22px}
}
