.sanbonjuku-builder-app { margin:0; background:#edf1ec; color:#18231f; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.builder-toolbar { position:sticky; z-index:10; top:0; display:flex; justify-content:space-between; padding:1rem 1.5rem; background:#174134; color:#fff; }
.builder-toolbar a { color:#fff; }
.builder-workspace { width:min(54rem,calc(100% - 2rem)); margin:2rem auto; }
.builder-workspace label { display:grid; gap:.35rem; margin-bottom:1rem; font-weight:600; }
.builder-workspace input,.builder-workspace textarea,.builder-workspace select { width:100%; padding:.75rem; border:1px solid #b8c2bc; border-radius:.35rem; background:#fff; font:inherit; }
.builder-card { margin:1rem 0; padding:1.25rem; border:1px solid #d8ddd7; border-radius:.35rem; background:#fff; box-shadow:0 10px 28px rgba(24,35,31,.08); }
.builder-card header,.builder-actions,.builder-add,.builder-presets { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; }
.builder-card header { margin-bottom:1rem; text-transform:capitalize; }
.builder-card button,.builder-add button,.builder-actions button { min-height:2.75rem; padding:.55rem .85rem; border:1px solid #225b49; border-radius:.35rem; background:#fff; color:#174134; font:inherit; font-weight:700; cursor:pointer; }
.builder-presets label { flex:1 1 10rem; }
.builder-add,.builder-actions { margin-top:1.5rem; }
.builder-actions { position:static; margin-top:1.5rem; padding:1rem 0 0; border-top:1px solid #d8ddd7; background:transparent; }
.builder-actions .button { background:#225b49; color:#fff; }
.builder-page-list { margin:0; padding:0; list-style:none; }
.builder-page-list li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid #d8ddd7; }
.builder-page-list span { display:block; color:#5d6863; font-size:.85rem; }
.builder-edit-shortcut { position:fixed; z-index:50; right:1rem; bottom:1rem; padding:.7rem 1rem; border-radius:.35rem; background:#174134; color:#fff!important; box-shadow:0 10px 28px rgba(24,35,31,.22); font-weight:700; text-decoration:none; }
.builder-section { padding-block:2.5rem; }
.builder-section--compact { padding-block:1.25rem; }
.builder-section--generous { padding-block:4.5rem; }
.builder-section + .builder-section { border-top:1px solid rgba(24,35,31,.06); }
.builder-section--forest + .builder-section--forest { border-top-color:rgba(255,255,255,.12); }
.builder-section--white { background:#fff; }
.builder-section--mist { background:#edf1ec; }
.builder-section--forest { background:#225b49; color:#fff; }
.builder-section--center { text-align:center; }
.builder-image-text { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(2rem,5vw,5rem); }
@media (max-width:700px) { .builder-image-text { grid-template-columns:1fr; } }

.builder-toolbar nav { display:flex; flex-wrap:wrap; gap:1rem; }
.builder-notice { margin-bottom:1rem; padding:1rem; border-left:4px solid #225b49; background:#fff; font-weight:700; }
.builder-help { margin:-.25rem 0 1rem; color:#5d6863; }
.builder-image-control { display:grid; grid-template-columns:minmax(10rem,16rem) 1fr; align-items:center; gap:1rem; margin-bottom:1rem; padding:1rem; border:1px solid #d8ddd7; border-radius:.35rem; background:#f8faf7; }
.builder-image-preview { display:block; width:100%; max-height:12rem; border-radius:.25rem; object-fit:cover; }
.builder-image-empty { display:grid; min-height:8rem; place-items:center; padding:1rem; border:1px dashed #aeb9b2; border-radius:.25rem; color:#5d6863; text-align:center; }
.builder-image-control div { display:flex; flex-wrap:wrap; gap:.75rem; }
@media (max-width:560px) { .builder-image-control { grid-template-columns:1fr; } .builder-toolbar { align-items:flex-start; gap:.75rem; } }

.builder-studio { width:min(100%,120rem); margin:0 auto; padding:1rem; }
.builder-studio>.builder-notice { margin:0 0 1rem; }
.builder-studio__grid { display:grid; grid-template-columns:minmax(24rem,38rem) minmax(32rem,1fr); gap:1rem; align-items:start; }
.builder-controls { max-height:calc(100vh - 6rem); overflow:auto; padding:0 1rem 2rem 0; }
.builder-controls>form>label { display:grid; gap:.35rem; margin:0 0 1rem; font-weight:700; }
.builder-controls input,.builder-controls textarea,.builder-controls select { box-sizing:border-box; width:100%; padding:.75rem; border:1px solid #b8c2bc; border-radius:.35rem; background:#fff; font:inherit; }
.builder-canvas { position:sticky; top:4.75rem; overflow:hidden; min-height:calc(100vh - 6rem); border:1px solid #cbd3cd; border-radius:.5rem; background:#dfe5e0; box-shadow:0 12px 30px rgba(24,35,31,.12); }
.builder-canvas__bar { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 1rem; background:#fff; border-bottom:1px solid #d8ddd7; }
.builder-canvas__bar span { color:#5d6863; font-size:.85rem; }
.builder-canvas__viewport { overflow:auto; max-height:calc(100vh - 9rem); padding:2rem; }
.builder-preview-page { min-height:46rem; background:#faf8f2; box-shadow:0 5px 24px rgba(24,35,31,.13); }
.builder-preview-page>h1,.builder-preview-page>.eyebrow { margin-inline:clamp(1.5rem,7vw,7rem); }
.builder-preview-page>.eyebrow { padding-top:4rem; color:#b65f43; font-size:.75rem; font-weight:800; letter-spacing:.16em; }
.builder-preview-page>h1 { margin-top:.75rem; margin-bottom:3rem; font-size:clamp(2.5rem,5vw,5rem); }
.builder-preview-page .wrap { width:min(52rem,calc(100% - 3rem)); margin-inline:auto; }
.builder-preview-placeholder { display:grid; min-height:12rem; place-items:center; background:#dce5df; color:#5d6863; font-weight:700; }
.builder-preview-empty { padding:4rem 2rem; color:#5d6863; text-align:center; }
.builder-preview-page .button { display:inline-block; padding:.8rem 1.1rem; border-radius:.25rem; background:#225b49; color:#fff; font-weight:700; }
.builder-workspace--index { width:min(70rem,calc(100% - 2rem)); }
@media (max-width:1000px) {
  .builder-studio__grid { grid-template-columns:1fr; }
  .builder-controls { max-height:none; overflow:visible; padding-right:0; }
  .builder-canvas { position:static; min-height:32rem; }
}

.site-manager { width:min(72rem,calc(100% - 2rem)); margin:2.5rem auto 4rem; }
.site-manager__heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.site-manager__heading h1 { margin:.25rem 0; font-size:clamp(2.25rem,6vw,4.5rem); line-height:1; }
.site-manager__heading p { color:#5d6863; }
.site-manager__heading .button,.site-manager .button { display:inline-flex; align-items:center; justify-content:center; min-height:2.75rem; padding:.55rem .9rem; border:1px solid #225b49; border-radius:.35rem; background:#225b49; color:#fff; font-weight:700; text-decoration:none; }
.site-manager-hub { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-bottom:2rem; }
.site-manager-hub__card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.25rem; min-height:8rem; padding:1.5rem; border:1px solid #d8ddd7; border-radius:.5rem; background:#fff; color:#18231f; box-shadow:0 10px 28px rgba(24,35,31,.08); text-decoration:none; }
.site-manager-hub__card>span { color:#b65f43; font-size:.8rem; font-weight:800; letter-spacing:.12em; }
.site-manager-hub__card h2 { margin:0 0 .3rem; }
.site-manager-hub__card p { margin:0; color:#5d6863; }
.site-manager-hub__card--disabled { opacity:.55; cursor:default; }
.site-manager-pages details { margin-top:1rem; padding-top:1rem; border-top:1px solid #d8ddd7; }
.site-manager-pages summary { cursor:pointer; font-weight:700; }
.site-manager-pages details form { margin-top:1rem; }
.site-manager-form { max-width:56rem; }
.site-manager-form label { display:grid; gap:.4rem; margin-bottom:1rem; font-weight:700; }
.site-manager-form input,.site-manager-form textarea,.site-manager-form select { box-sizing:border-box; width:100%; padding:.8rem; border:1px solid #b8c2bc; border-radius:.35rem; background:#fff; font:inherit; }
.site-manager-form__columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.site-manager-image { display:grid; grid-template-columns:minmax(10rem,18rem) 1fr; align-items:center; gap:1rem; margin-bottom:1rem; }
.site-manager-image img { width:100%; max-height:18rem; object-fit:cover; border-radius:.35rem; }
.site-manager-image button { width:max-content; min-height:2.75rem; padding:.55rem .85rem; border:1px solid #225b49; border-radius:.35rem; background:#fff; color:#174134; font:inherit; font-weight:700; cursor:pointer; }
.site-manager-list { display:grid; gap:1rem; }
.site-manager-list__item { display:grid; grid-template-columns:5rem 1fr auto; align-items:center; gap:1rem; padding:1rem; border:1px solid #d8ddd7; border-radius:.5rem; background:#fff; }
.site-manager-list__item img { width:5rem; height:5rem; border-radius:.35rem; object-fit:cover; }
.site-manager-list__item h2,.site-manager-list__item p { margin:.2rem 0; }
.builder-actions>div { display:flex; gap:.75rem; }
@media (max-width:700px) {
 .site-manager__heading { align-items:flex-start; flex-direction:column; }
 .site-manager-hub,.site-manager-form__columns { grid-template-columns:1fr; }
 .site-manager-image { grid-template-columns:1fr; }
 .site-manager-list__item { grid-template-columns:4rem 1fr; }
 .site-manager-list__item>.button { grid-column:1/-1; }
}

.site-manager-tabs { display:flex; gap:.5rem; margin:0 0 1.5rem; padding:.35rem; border-radius:.45rem; background:#dfe5e0; }
.site-manager-tabs a { padding:.7rem 1rem; border-radius:.3rem; color:#174134; font-weight:700; text-decoration:none; }
.site-manager-tabs a[aria-current="page"] { background:#225b49; color:#fff; }
.site-manager-form--wide { max-width:none; }
.site-manager-check { display:flex!important; grid-template-columns:auto 1fr; align-items:center; justify-content:start; }
.site-manager-check input { width:auto; }
.site-menu-item header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.site-menu-item header button { min-width:2.75rem; }
.button--secondary { background:#fff!important; color:#174134!important; }


/* Homepage section manager. */
.home-section-manager { margin-top:2rem; }
.home-section-manager__heading { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; margin-bottom:1rem; }
.home-section-manager__heading h2 { margin:0 0 .3rem; }
.home-section-manager__heading p { margin:0; }
#home-sections { display:grid; gap:1rem; }
.home-section-card { margin:0; }
.home-section-card__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid #d8ddd7; }
.home-section-card__header h3 { margin:.2rem 0 0; }
.home-section-card__type { color:#b65f43; font-size:.78rem; font-weight:800; letter-spacing:.08em; }
.home-section-card__actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.4rem; }
.home-section-card__actions button { min-width:2.75rem; min-height:2.5rem; padding:.4rem .65rem; border:1px solid #225b49; border-radius:.35rem; font:inherit; font-weight:700; cursor:pointer; }
.home-section-card__actions button:disabled { opacity:.35; cursor:not-allowed; }
.home-section-card__delete { border-color:#9d452f!important; color:#843822!important; }
@media (max-width:700px) {
 .home-section-manager__heading,.home-section-card__header { align-items:stretch; flex-direction:column; }
 .home-section-manager__heading .button { width:100%; }
 .home-section-card__actions { justify-content:flex-start; }
}
