
:root{--ink:#23362f;--forest:#24483f;--pine:#3b6356;--muted:#62746b;--line:#e2e8df;--cream:#f8f7f1;--sage:#edf3ea;--white:#fff;--shadow:0 18px 48px rgba(25,53,42,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);background:#fff;line-height:1.75;word-break:keep-all;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible{outline:3px solid #95b58c;outline-offset:3px}img{max-width:100%}.wrap{width:min(1120px,calc(100% - 44px));margin-inline:auto}.site-header{background:#ffffffee;position:sticky;top:0;border-bottom:1px solid var(--line);z-index:10;backdrop-filter:blur(14px)}.header-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;text-decoration:none;gap:11px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;background:var(--forest);color:#fff;font-size:23px;font-weight:900;border-radius:12px}.brand-name{font-size:23px;font-weight:900;letter-spacing:-.05em;line-height:1.2}.brand-sub{display:block;color:#7e8d83;font-size:10px;font-weight:600;margin-top:2px}.nav{display:flex;align-items:center;gap:22px}.nav a{font-size:14px;text-decoration:none;font-weight:800;color:#456052}.nav a:hover{color:#152f23}.cta{padding:11px 16px;background:var(--forest);color:#fff!important;border-radius:12px}.crumbs{padding:22px 0;color:#658071;font-size:13px}.crumbs a{text-decoration:none}.crumbs span{color:#899a90}.eyebrow{display:inline-block;font-size:13px;font-weight:900;color:var(--pine);letter-spacing:.03em;margin-bottom:12px}.page-hero{padding:35px 0 63px;background:linear-gradient(145deg,#f5f7f0,#eaf2e8)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(32px,5vw,55px);line-height:1.3;letter-spacing:-.055em;margin:0 0 17px}h2{font-size:clamp(25px,3vw,36px);line-height:1.4;letter-spacing:-.04em;margin:0 0 16px}h3{line-height:1.45;letter-spacing:-.03em}.lead{font-size:17px;color:#5b7164;line-height:1.9;max-width:870px;margin-bottom:23px}.meta-row{display:flex;flex-wrap:wrap;gap:9px}.chip{display:inline-block;border:1px solid #d3e1d3;border-radius:999px;padding:6px 13px;background:#ffffffac;color:#385747;font-size:12px;font-weight:800}.section{padding:73px 0}.section.alt{background:#f8faf7}.section-intro{max-width:850px;color:#63786b;margin:0 0 27px;font-size:16px;line-height:1.9}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:21px}.case-card{display:block;overflow:hidden;text-decoration:none;border-radius:20px;border:1px solid #dfe8df;background:#fff;box-shadow:0 12px 30px #203d2810;transition:transform .2s,box-shadow .2s}.case-card:hover{transform:translateY(-4px);box-shadow:0 15px 34px #203d2825}.case-cover{aspect-ratio:4/3;display:flex;background:#e9f0e8;overflow:hidden;position:relative}.case-cover img{height:100%;width:100%;object-fit:cover;display:block}.case-tag{position:absolute;top:12px;left:12px;color:#284935;font-weight:850;background:#ffffffee;border-radius:99px;padding:6px 11px;font-size:12px}.case-copy{padding:20px}.case-copy h2{font-size:20px;line-height:1.5;margin-bottom:10px}.case-copy p{font-size:13px;color:#677a6c;line-height:1.7;margin:0 0 14px}.case-cta{color:#28523d;font-weight:850;font-size:13px}.filter-row{display:flex;gap:9px;flex-wrap:wrap;margin:24px 0 30px}.filter{cursor:pointer;border:1px solid #cbdacb;border-radius:50px;padding:9px 17px;background:white;color:#486355;font-weight:800;font-size:13px}.filter.is-active,.filter[aria-pressed=true]{background:var(--forest);color:white;border-color:var(--forest)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0 36px}.stat{padding:17px;border:1px solid #e0e9e0;border-radius:13px;background:#fff}.stat strong{display:block;color:#315744;font-size:12px;margin-bottom:5px}.stat span{font-size:15px;font-weight:750}.story-hero{padding:35px 0 55px;background:linear-gradient(145deg,#f8faf5,#ecf2e9)}.story-summary{max-width:930px;color:#526a59;line-height:1.95;font-size:17px}.compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.photo-figure{margin:0;border:1px solid #e1e8df;overflow:hidden;border-radius:17px;background:white}.photo-frame{height:380px;display:flex;align-items:center;justify-content:center;background:#edf1ec}.photo-frame img{height:100%;width:100%;object-fit:contain;display:block}.photo-figure figcaption{font-size:13px;line-height:1.7;padding:13px 16px;color:#5c7164}.photo-figure figcaption strong{display:block;color:var(--forest);font-size:13px}.step-label{display:inline-block;font-size:12px;color:#60836b;font-weight:900;letter-spacing:.04em;margin-bottom:9px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.photo-grid .photo-frame{height:330px}.photo-grid .photo-figure:first-child:nth-last-child(2),.photo-grid .photo-figure:first-child:nth-last-child(2)~.photo-figure{grid-column:span 1}.note{padding:21px 23px;border-left:4px solid #91b497;background:#f2f7f0;border-radius:10px;font-size:14px;color:#55715d;line-height:1.85}.back-link{display:inline-flex;padding:13px 19px;border-radius:11px;background:var(--forest);color:#fff;text-decoration:none;font-weight:850;font-size:14px;margin-top:19px}.bottom{padding:50px 0;background:#243e32;color:#f5faf5}.bottom p{color:#cadbd0}.bottom a{color:white}.footer{padding:24px 0;background:#1a3228;color:#cbd9cc;font-size:12px}.footer a{color:#e8eee8}.case-hidden{display:none!important}
@media (max-width:900px){.case-grid,.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,1fr)}.photo-grid .photo-frame{height:320px}.nav{gap:13px}}@media (max-width:640px){.wrap{width:calc(100% - 32px)}.header-inner{height:73px}.brand-name{font-size:21px}.nav>a:first-child{display:none}.nav{gap:9px}.nav a{font-size:12px}.cta{padding:9px 11px}.page-hero{padding:30px 0 46px}.section{padding:50px 0}.lead{font-size:15px}.case-grid,.photo-grid{grid-template-columns:1fr;gap:14px}.compare-grid{grid-template-columns:1fr}.photo-frame{height:365px}.photo-grid .photo-frame{height:355px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat{padding:11px}.stat span{font-size:12px}.section-intro{font-size:14px}.story-summary{font-size:15px}.case-copy{padding:17px}.case-copy h2{font-size:18px}}

/* 2026-11: gallery photos flow at their actual aspect ratio, without padded fixed-height frames.
   Applied only to case-detail galleries: homepage, consultation and other layout unchanged. */
.compare-grid,.photo-grid{align-items:start}
.photo-figure{align-self:start}
.photo-frame,.photo-grid .photo-frame{height:auto;min-height:0;display:block;background:transparent}
.photo-frame img,.photo-grid .photo-frame img{display:block;width:100%;height:auto;max-height:none;object-fit:initial;vertical-align:top}

/* 실제 2장 사진 분리: 나란히 보이되 각각 독립적으로 누르는 영역. */
.dual-photo-frame{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:0;overflow:hidden;background:#edf1ec}
.dual-photo-frame>.dual-photo-link{display:block;min-width:0;line-height:0;cursor:zoom-in;overflow:hidden;text-decoration:none}
.dual-photo-frame>.dual-photo-link:not(:last-child){border-right:2px solid #fff}
.dual-photo-frame>.dual-photo-link img{width:100%;height:auto;display:block;max-height:none;object-fit:contain}
.dual-photo-frame>.dual-photo-link:focus-visible{outline:3px solid #4b8966;outline-offset:-3px;position:relative;z-index:1}

/* Compact category pages: move actual work photos near the top; main homepage is unchanged. */
.portfolio-breadcrumbs{padding-top:17px;padding-bottom:13px}
.portfolio-list-section{padding-top:26px;padding-bottom:63px}
.portfolio-list-section .eyebrow{display:block;font-size:12px;margin:0 0 5px}
.portfolio-list-section .portfolio-heading{font-size:clamp(25px,3.5vw,36px);line-height:1.35;letter-spacing:-.04em;margin:0 0 15px}
.portfolio-list-section .filter-row{margin:0 0 24px}
@media(max-width:640px){
  .portfolio-breadcrumbs{padding-top:14px;padding-bottom:10px;font-size:12px}
  .portfolio-list-section{padding-top:18px;padding-bottom:46px}
  .portfolio-list-section .portfolio-heading{font-size:27px;margin-bottom:13px}
  .portfolio-list-section .filter-row{gap:8px;margin-bottom:18px}
  .portfolio-list-section .filter{padding:8px 13px;font-size:12px;line-height:1.4}
}
