/* ============ 01 ATELIER ============ */
.atelier{padding:9rem 0 8rem;position:relative}
.atelier-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:5.5rem;align-items:start}
.atelier-left{position:sticky;top:110px}
.lede{font-family:var(--serif);font-size:clamp(1.2rem,1.9vw,1.55rem);line-height:1.9;color:var(--ink);margin:1.6rem 0 2.4rem}
.botanic{width:min(230px,60%);margin:0 auto;display:block}
.stats{display:flex;gap:3.4rem;margin-top:2.6rem;justify-content:center}
.stat b{font-family:var(--serif);font-size:2.4rem;font-weight:600;display:block;line-height:1}
.stat span{font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;color:var(--ink2)}
.principle{
  display:grid;grid-template-columns:64px 52px 1fr;gap:1.6rem;align-items:start;
  padding:2.4rem 0;border-top:1px solid var(--line);
}
.principle:last-of-type{border-bottom:1px solid var(--line)}
.principle .idx{font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em;padding-top:.5rem}
.principle svg{width:52px;height:52px;padding-top:.3rem}
.principle h3{font-family:var(--serif);font-size:1.45rem;font-weight:600;margin-bottom:.5rem}
.principle p{color:var(--ink2);font-size:.95rem;max-width:46ch}
.atelier-note{
  margin-top:3rem;padding:1.8rem 2rem;border-left:2px solid var(--accent);background:var(--paper2);
  background-image:var(--fabric-dots);background-size:22px 22px;
  border-radius:0 var(--r-lg) var(--r-lg) 0;
  box-shadow:var(--shadow-1),var(--emboss-inset);
}
.atelier-note p{font-size:1.05rem;font-style:normal;line-height:1.9}
.atlas-note,
.atelier-note span{display:block;margin-top:.8rem;font-size:.7rem;letter-spacing:.14em;color:var(--ink2)}

/* ============ 03 COLLECTION ============ */
.collection{padding:8rem 0}
.house-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.house-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem;
  box-shadow:var(--shadow-1),var(--emboss-inset);
  transition:box-shadow .4s var(--ease),transform .4s var(--ease);will-change:transform;
}
.house-card:hover{box-shadow:var(--shadow-3),var(--emboss-inset)}
.label-wrap{border:1px solid var(--line);background:var(--paper2);overflow:hidden;border-radius:var(--r-md)}
.label-svg{width:100%;height:auto;transition:transform .8s var(--ease);display:block}
.house-card:hover .label-svg{transform:scale(1.045)}
.house-body{padding:1.1rem .3rem .4rem}
.house-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.house-top h3{font-family:var(--serif);font-size:1.35rem;font-weight:600}
.price{font-family:var(--mono);font-size:.85rem;color:var(--accent)}
.house-en{font-size:.62rem;letter-spacing:.2em;color:var(--ink2);margin:.35rem 0 .7rem}
.house-blurb{font-size:.88rem;color:var(--ink2);min-height:3.9em}
.house-notes{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 1rem}
.mini-chip{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;
  border:1px solid var(--line);border-radius:999px;padding:.2rem .6rem;color:var(--ink2);
  background:var(--paper);
}
.mini-btn{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--ink);border-radius:var(--r-sm);padding:.55rem 1rem;
  background:var(--card);color:var(--ink);
  box-shadow:var(--shadow-1),var(--emboss-inset);
  transition:background .3s,color .3s,border-color .3s,box-shadow .3s;
}
.mini-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.mini-btn.wide{width:100%}
.mini-btn.danger{border-color:var(--dark-line);color:rgba(233,239,233,.6);background:transparent;box-shadow:none}
.mini-btn.danger:hover{background:var(--accent);border-color:var(--accent);color:var(--card)}

/* ============ 04 VISIT ============ */
.visit{padding:8rem 0;background:var(--paper2);background-image:var(--fabric-dots);background-size:22px 22px;border-top:1px solid var(--line)}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
.visit-info .sec-no{margin-bottom:1.6rem;display:inline-block}
.visit-info h2{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,4.4vw,3.4rem);line-height:1.12}
.visit-info h2 em{display:block;font-family:var(--mono);font-style:normal;font-weight:400;font-size:.78rem;letter-spacing:.34em;color:var(--ink2);margin-top:.8rem}
.visit-info>p{margin:1.6rem 0 2.2rem;color:var(--ink2);max-width:42ch}
.visit-list{list-style:none;border-top:1px solid var(--line)}
.visit-list li{
  display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);
  font-size:.78rem;letter-spacing:.06em;
}
.visit-list li span{color:var(--ink2);font-size:.64rem;letter-spacing:.2em}
.visit-form{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:2.2rem;
  box-shadow:var(--shadow-2),var(--emboss-inset);
}
.visit-form label{
  display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink2);margin-bottom:1.1rem;
}
.visit-form input,.visit-form select{
  display:block;width:100%;margin-top:.45rem;
  background:transparent;border:none;border-bottom:1px solid var(--ink2);
  font-family:var(--sans);font-size:1rem;color:var(--ink);padding:.5rem 0;
  border-radius:0;
}
.visit-form input:focus,.visit-form select:focus{outline:none;border-bottom-color:var(--accent);box-shadow:0 1px 0 var(--accent)}
.visit-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235A564F' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .2rem center}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.form-err{color:var(--accent);font-size:.7rem;margin-top:.8rem;min-height:1.2em}
.book-success{text-align:center;padding:1.5rem 0}
.success-stamp{
  display:inline-block;font-family:var(--mono);font-size:1rem;letter-spacing:.3em;line-height:1.7;
  color:var(--accent-deep);border:2px solid var(--accent);border-radius:var(--r-md);
  padding:.9rem 1.6rem;transform:rotate(-4deg);margin-bottom:1.6rem;
  background:var(--accent-soft);
  box-shadow:var(--shadow-1),var(--emboss-inset);
}
.success-code{font-size:.8rem;letter-spacing:.14em;margin-bottom:.6rem}
.success-code b{color:var(--accent);font-size:1.05rem}
.success-summary{color:var(--ink2);font-size:.92rem;margin-bottom:.4rem}
.hint{font-size:.66rem;letter-spacing:.12em;color:var(--ink2)}
.book-success .btn{margin-top:1.4rem}

/* ============ FOOTER ============ */
footer{background:var(--dark);color:var(--paper-on-dark);padding:5rem 0 0}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:4rem;padding-bottom:4rem}
.foot-brand{min-width:0}
.foot-word{
  font-family:var(--serif);font-weight:600;font-size:clamp(2.6rem,6vw,4.6rem);line-height:.95;letter-spacing:-.01em;overflow-wrap:anywhere;
}
.foot-tag{margin-top:1.2rem;font-size:.66rem;letter-spacing:.28em;color:rgba(233,239,233,.5);overflow-wrap:anywhere}
.foot-cols{min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2rem 3rem;justify-content:end}
.foot-cols a{overflow-wrap:anywhere}
.foot-cols b{font-size:.62rem;letter-spacing:.26em;color:var(--accent-soft);display:block;margin-bottom:1rem}
.foot-cols a{display:block;font-size:.72rem;letter-spacing:.1em;color:rgba(233,239,233,.72);padding:.28rem 0;transition:color .3s,padding-left .3s}
.foot-cols a:hover{color:var(--card);padding-left:.4rem}
.foot-bar{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  border-top:1px solid var(--dark-line);padding:1.4rem 0;font-size:.62rem;letter-spacing:.18em;color:rgba(233,239,233,.4);
}

/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
  .atelier-grid{grid-template-columns:1fr;gap:3.5rem}
  .atelier-left{position:static}
  .house-grid{grid-template-columns:repeat(2,1fr)}
  .visit-grid{grid-template-columns:1fr;gap:3rem}
  .foot-grid{grid-template-columns:1fr}
  .foot-cols{justify-content:start}
}
@media (max-width:640px){
  .house-grid{grid-template-columns:1fr}
  .principle{grid-template-columns:44px 40px 1fr;gap:1rem}
  .visit-list li{grid-template-columns:1fr;gap:.2rem}
  .stats{gap:2rem}
}
