/* ============================================================
   Crit Lab — /floor-map/ page-specific styles
   Depends on: common.css (variables, shell, buttons, final CTA)
   ============================================================ */

.floor-page .section{padding-top:clamp(44px,6vw,96px);padding-bottom:clamp(44px,6vw,96px);}
.floor-page .section-head{margin-bottom:clamp(24px,3vw,38px);}
.floor-page .section-head>p{max-width:850px;margin-top:18px;color:#53534d;line-height:1.95;}
.floor-page .section-soft{background:transparent;max-width:none;}
.floor-page .section-soft>*{max-width:var(--content-max);margin-left:auto;margin-right:auto;}

/* ---- 02 studio photos (no cards, no frames) ---- */
.floor-page .fl-photo img,.floor-page .fl-split>img{height:auto;}
.fl-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.fl-photo{margin:0;}
.fl-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:16px;}
.fl-photo figcaption{padding:14px 2px 0;}
.fl-photo figcaption strong{display:block;margin-bottom:6px;font-size:1.1rem;}
.fl-photo figcaption p{color:#55554e;font-size:.92rem;line-height:1.75;}

/* ---- 03 dimensions ---- */
.fl-dim{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(28px,4vw,56px);align-items:stretch;}
.fl-plan-wrap{display:grid;grid-template-columns:minmax(0,1fr) 126px;align-items:center;gap:18px;height:460px;background:#fff;border:1px solid #deddd5;border-radius:16px;padding:clamp(12px,1.6vw,20px);}
.fl-plan-svg{display:block;width:100%;height:100%;min-height:0;}
.fl-plan-svg .floor{fill:#fffaf0;}
.fl-plan-svg .wall{fill:none;stroke:var(--text);stroke-width:2.6;}
.fl-plan-svg .window-wall{fill:none;stroke:var(--blue);stroke-width:7;stroke-linecap:round;}
.fl-plan-svg .pillar{fill:#b9b5aa;stroke:var(--text);stroke-width:1.2;}
.fl-plan-svg .dim{fill:none;stroke:#6d6a60;stroke-width:1.2;}
.fl-plan-svg .dim-key{fill:none;stroke:var(--text);stroke-width:1.6;}
.fl-plan-svg .dim-window{fill:none;stroke:var(--blue-text);stroke-width:1.6;}
.fl-plan-svg .tick{fill:none;stroke:var(--blue);stroke-width:1.4;}
.fl-plan-svg .door{fill:none;stroke:var(--yellow-deep,#d9a800);stroke-width:1.8;stroke-dasharray:5 5;}
.fl-plan-svg .door-gap{stroke:#fffaf0;stroke-width:5;}
.fl-plan-svg .door-leaf{stroke:var(--yellow-deep,#d9a800);stroke-width:6;stroke-linecap:round;}
.fl-plan-svg .ceil-chip{fill:var(--yellow);}
.fl-plan-svg text{font-family:"Zen Kaku Gothic New",sans-serif;fill:var(--text);}
.fl-plan-svg .t-major{font-size:38px;font-weight:700;}
.fl-plan-svg .t-mid{font-size:32px;font-weight:700;}
.fl-plan-svg .t-small{font-size:24px;font-weight:500;fill:#5d5a51;}
.fl-plan-svg .t-window{fill:var(--blue-text);}
.fl-plan-svg .t-door{fill:#8a6a00;}

.fl-plan-legend{display:flex;flex-direction:column;gap:14px;padding-left:18px;border-left:1px solid rgba(0,5,1,.12);font-size:.83rem;color:#55554e;}
.fl-plan-legend span{display:inline-flex;align-items:center;gap:8px;}
.fl-plan-legend i{display:block;font-style:normal;}
.fl-plan-legend .k-window{width:18px;height:6px;border-radius:3px;background:var(--blue);}
.fl-plan-legend .k-door{width:18px;height:6px;border-radius:3px;background:#d9a800;}
.fl-plan-legend .k-pillar{width:12px;height:12px;border-radius:2px;background:#b9b5aa;border:1px solid rgba(0,5,1,.4);}
.fl-plan-legend .k-floor{width:14px;height:12px;border-radius:2px;background:#fffaf0;border:1.5px solid var(--text);}

.fl-dim-list{display:flex;flex-direction:column;justify-content:space-between;height:460px;min-height:0;}
.fl-dim-list div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px dashed rgba(0,5,1,.22);}
.fl-dim-list div:first-child{padding-top:0;}
.fl-dim-list dt{font-size:.95rem;font-weight:700;}
.fl-dim-list dd{margin:0;font-family:"Poppins",sans-serif;font-size:1.3rem;font-weight:600;}
.fl-dim-list dd em{font-style:normal;font-family:"Zen Kaku Gothic New",sans-serif;font-size:.78rem;font-weight:500;color:#67665f;margin-left:6px;}

/* ---- shared note ---- */
.fl-note{margin-top:28px;padding:22px 26px;background:#fff7d7;border-left:5px solid var(--yellow);}
.fl-note h3{margin:0 0 8px;font-size:1.05rem;}
.fl-note p{font-size:.93rem;line-height:1.9;}
.fl-note.is-provisional{background:#fff;border-left-color:var(--blue);border:1px solid #deddd5;border-left-width:5px;}
.fl-badge{display:inline-block;margin-right:8px;padding:2px 10px;border-radius:999px;background:var(--blue);color:#fff;font-size:.72rem;font-weight:700;vertical-align:1px;}

/* ---- 04 cyclorama ---- */
.fl-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,48px);align-items:start;}
.fl-split>img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:16px;}
.fl-spec{display:flex;flex-direction:column;gap:0;}
.fl-spec div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px dashed rgba(0,5,1,.22);}
.fl-spec div:first-child{padding-top:0;}
.fl-spec dt{font-size:.95rem;font-weight:700;}
.fl-spec dd{margin:0;font-family:"Poppins",sans-serif;font-size:1.3rem;font-weight:600;}
.fl-spec dd em{font-style:normal;font-family:"Zen Kaku Gothic New",sans-serif;font-size:.78rem;font-weight:500;color:var(--blue-text);margin-left:6px;}

/* ---- layout diagrams ---- */
.fl-layouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,26px);}
.fl-layout h3{font-size:1.1rem;margin:16px 0 8px;}
.fl-layout p{font-size:.9rem;line-height:1.85;color:#55554e;}
.fl-diagram{position:relative;aspect-ratio:1;border:1.5px solid rgba(0,5,1,.28);border-radius:12px;background:#fff;}
.fl-diagram i{position:absolute;display:block;font-style:normal;}
.fl-d-subject{width:15%;aspect-ratio:1;border-radius:50%;background:var(--text);}
.fl-d-cam{width:15%;height:11%;border-radius:3px;background:var(--blue);}
.fl-d-light{width:12%;aspect-ratio:1;background:var(--yellow);border:1px solid rgba(0,5,1,.4);transform:rotate(45deg);}
.fl-d-table{height:8%;border-radius:3px;background:#ddd9c8;border:1px solid rgba(0,5,1,.25);}
.fl-d-back{left:8%;right:8%;top:8%;height:11%;border-radius:4px;background:repeating-linear-gradient(90deg,#f1efe5 0 6px,#e4e1d3 6px 12px);}
.fl-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:26px;font-size:.83rem;color:#55554e;}
.fl-legend span{display:inline-flex;align-items:center;gap:8px;}
.fl-legend i{display:block;font-style:normal;}
.fl-legend .k-subject{width:12px;height:12px;border-radius:50%;background:var(--text);}
.fl-legend .k-cam{width:14px;height:10px;border-radius:2px;background:var(--blue);}
.fl-legend .k-light{width:11px;height:11px;background:var(--yellow);border:1px solid rgba(0,5,1,.4);transform:rotate(45deg);}
.fl-legend .k-table{width:16px;height:7px;border-radius:2px;background:#ddd9c8;border:1px solid rgba(0,5,1,.25);}
.fl-legend .k-back{width:16px;height:8px;border-radius:2px;background:repeating-linear-gradient(90deg,#f1efe5 0 4px,#e4e1d3 4px 8px);border:1px solid rgba(0,5,1,.2);}
.fl-layout-note{margin-top:24px;font-size:.93rem;line-height:1.9;}

/* ---- 07 checklist ---- */
.fl-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 32px;}
.fl-checks li{display:flex;align-items:flex-start;gap:12px;padding:15px 0;border-bottom:1px solid rgba(0,5,1,.12);font-size:.95rem;line-height:1.7;}
.fl-checks li::before{content:"";flex:0 0 auto;width:20px;height:20px;margin-top:3px;border-radius:50%;background:var(--yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000501' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5.2 5.2L20 6.9'/%3E%3C/svg%3E") center/12px no-repeat;}

/* ---- 08 planning points ---- */
.fl-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,44px);}
.fl-point{border-top:3px solid var(--yellow);padding-top:22px;}
.fl-point span{font-family:"Poppins",sans-serif;font-weight:600;font-size:1.7rem;color:var(--blue-text);line-height:1;}
.fl-point h3{margin:12px 0 10px;font-size:1.2rem;}
.fl-point p{font-size:.93rem;line-height:1.9;color:#55554e;}

/* ---- final CTA text link ---- */
.fl-final-link{display:inline-flex;margin-top:20px;color:var(--text);font-weight:700;text-decoration:underline;text-underline-offset:5px;}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1024px){
  .fl-layouts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fl-checks{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:860px){
  .fl-dim{grid-template-columns:1fr;}
  .fl-plan-wrap{height:auto;}
  .fl-dim-list{height:auto;}
  .fl-split{grid-template-columns:1fr;}
  .fl-points{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .fl-plan-wrap{grid-template-columns:1fr;gap:12px;}
  .fl-plan-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding:14px 0 0;border-top:1px solid rgba(0,5,1,.12);border-left:0;}
  .fl-photos{grid-template-columns:1fr;gap:22px;}
  .fl-layouts{grid-template-columns:1fr;}
  .fl-checks{grid-template-columns:1fr;}
  .fl-plan-wrap{padding:10px;}
  .fl-plan-svg .callout{display:none;}
  .fl-plan-svg .t-major{font-size:48px;}
  .fl-plan-svg .t-mid{font-size:40px;}
  .fl-plan-svg .t-small{font-size:34px;}
}
