@charset "utf-8";
/*==================================================================
  studio.css — 새 틀 (2026-08-27)

  shared/studio/head.php 가 이 파일 하나만 읽는다.
  옛 틀(표 레이아웃)은 css/mall.css 다. 한 페이지가 둘 다 읽는 일은 없다.

  ★ 무엇이 다른가 — mall.css 와의 차이 넷
    ① 폭이 고정이 아니다. mall.css 는 --page-w:1000px 고정 + body{zoom}
      사다리로 화면 크기에 대응했다. 여기는 창을 따라 흐른다.
      🔴 그래서 이 파일을 쓰는 페이지에는 **세로 높이 예산(779px)이 없다.**
        zoom 사다리가 없으므로 페이지가 길어져도 꼬리말이 잘리지 않는다.
    ② DOCTYPE 이 <!DOCTYPE html> (full standards) 다. mall.css 쪽은 표
      레이아웃 때문에 HTML 4.01 almost-standards 에 묶여 있다.
    ③ 리셋이 있다 (* {margin:0;padding:0;box-sizing:border-box}).
      mall.css 는 일부러 리셋을 안 넣었다 — 넣으면 표 레이아웃이 어긋난다.
    ④ 모바일이 여기 같이 산다. m/css/m.css 를 쓰는 별벌 페이지는
      옛 틀이 남아 있는 동안만 존재한다.

  ★ 색 — mall.css 의 :root 색 블록과 **같은 값을 다시 적어뒀다.**
    두 파일이 동시에 살아 있는 동안은 어쩔 수 없다(한 페이지가 둘 다 읽지
    않으므로 공유할 방법이 없다). mall.css 쪽 색을 고치면 여기도 같이 고칠 것.
    옛 틀이 전부 사라지면 mall.css 와 함께 이 주석도 지운다.
    🔴 새 코드에 #RRGGBB 를 직접 쓰지 말 것 (CLAUDE.md 12절). 아래 이름을 쓴다.

  ★ 크기 — rem 하나로 흐른다
    폭·여백·글자를 전부 rem 으로 적고, html{font-size} 만 창 크기를 따라
    움직인다. 그래서 화면이 커지면 레이아웃 전체가 같은 비율로 커진다.
    mall.css 의 zoom 사다리가 하던 일을 표준 방식으로 바꿔 놓은 것이다.
    (zoom 은 표준이 아니고 Firefox 가 오래 지원하지 않았다)
==================================================================*/

/*------------------------------------------------------------------
  글꼴 — mall.css 와 같은 파일 하나를 나눠 쓴다.
  @font-face 를 두 파일에 적어도 브라우저는 같은 URL 이면 한 번만 받는다.
------------------------------------------------------------------*/
@font-face{
	font-family: 'Pretendard';
	src: url('/fonts/PretendardVariable.woff2') format('woff2-variations');
	font-weight: 45 920;
	font-style: normal;
	font-display: swap;
}

/*==================================================================
  리셋
  ★ box-sizing:border-box — 이 한 줄이 없으면 padding 을 줄 때마다 폭이
    늘어나서, 아래의 % 격자 계산이 전부 어긋난다.
==================================================================*/
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box }

ul, ol { list-style:none }

/* 링크는 색을 물려받는다. 밑줄은 필요한 곳에서만 다시 켠다.
   ★ 이 사이트에서 링크는 대부분 사진과 메뉴다 — 파란 밑줄이 붙으면
     그것이 사진보다 먼저 눈에 들어온다. 글 안의 링크만 .st-a 로 밑줄을 준다. */
a { color:inherit; text-decoration:none }

/* 제목 태그는 뜻(문서 구조)만 갖고 모양은 갖지 않는다.
   ★ 그래야 "여기는 h2 여야 하는데 크기가 안 맞아서 div 로 둔다" 가 없어진다.
     크기는 자리마다 클래스가 정한다. */
h1, h2, h3, h4, h5, h6 { font-size:inherit; font-weight:inherit }

img, picture, svg, video { display:block; max-width:100% }

button { font:inherit; color:inherit; background:none; border:0 }

/*==================================================================
  뿌리 — 크기 사다리

  html{font-size} 하나가 페이지 전체의 축척이다.
    좁은 화면   14px ~ 16px 로 흐른다 (창 폭의 3.6%)
    901px 이상  16px 고정 — 여기부터는 레이아웃이 자리를 잡는다
    아주 넓은 화면  17 -> 18px. 손님 연령대가 높아 큰 화면에서 더 키운다

  🔴 px 로 적은 이유 — rem/em/% 로 적으면 브라우저 기본 글자크기 설정이
    두 번 곱해진다. 대신 clamp() 의 min 을 14px 로 잡아 너무 작아지지 않게 했다.
  ※ 사용자가 브라우저에서 글자를 키우면 여기 값과 무관하게 커진다
    (font-size 를 px 로 적어도 브라우저 확대(ctrl +)는 그대로 먹는다).
==================================================================*/
html{
	/* 🔴 하한 15px — 14px 이었을 때 tools/responsive-check.js 가 320px 화면에서
	   **가장 작은 글씨 9.6px** 을 잡아냈다. 주 고객층 연령을 생각하면 그 크기는
	   못 읽는다. 하한을 올리고, 가장 작은 클래스도 .75rem 으로 올렸다
	   (지금은 어느 폭에서도 11px 아래로 안 내려간다). */
	/* 🔴 하한 15px — 14px 이었을 때 tools/responsive-check.js 가 320px 화면에서
	   **가장 작은 글씨 9.6px** 을 잡아냈다. 주 고객층 연령을 생각하면 그 크기는
	   못 읽는다. 하한을 올리고 가장 작은 클래스도 .75rem 으로 올려서, 지금은
	   어느 폭에서도 11.3px 아래로 안 내려간다.
	   ★ 마크업이나 글자 크기를 고친 뒤에는 그 도구를 다시 돌릴 것 —
	     넘침 개수와 함께 '가장 작은 글씨' 도 폭마다 찍어준다. */
	font-size: clamp(15px, 3.6vw, 16px);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	/* 스크롤바가 있는 페이지와 없는 페이지 사이에서 창 폭이 달라지는 것을 막는다.
	   mall.css 의 html{overflow-y:scroll} 과 같은 목적인데, 이쪽은 표준 속성이라
	   스크롤바 자리를 미리 잡아둘 뿐 늘 막대를 그리지는 않는다. */
	scrollbar-gutter: stable;
}
@media (min-width:901px){ html{ font-size:16px } }
@media (min-width:1600px){ html{ font-size:17px } }
@media (min-width:2000px){ html{ font-size:18px } }

:root{
	/*--- 색 (mall.css 의 :root 와 같은 값 — 위 머리말 참고) ---*/
	--bg:         #ffffff;
	--bg-raise:   #F7F7F6;
	--color-text: #1A1A1A;
	--color-dim:  #6E6C67;
	--color-mute: #8C8A85;
	--rule:       #E2E0DC;
	--line:       #D8D6D1;
	--color-brand:#8A5A0C;
	--color-now:  #8C8A85;	/* "지금 여기" — 안 고른 것이 검정일 때만 통한다 */
	--color-danger:#B3261E;
	--color-accent:   #1A1A1A;	/* 선택 테두리·강조선·화살표 */
	--color-on-accent:#ffffff;	/* 위 색을 바탕으로 깔았을 때 그 위 글자 */

	/* 덮개 메뉴(좁은 화면)의 검은 막. 색이 아니라 '가림막' 이라 별도로 둔다 */
	--scrim:      rgba(0,0,0,.88);

	/*--- 글꼴 ---*/
	--font: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI',
	        'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif;
	/* 아래 셋은 shared/layer_popup.php 가 자기 <style> 안에서 부르는 이름이다.
	   그 파일은 두 틀에서 같이 쓰이므로(메인 페이지) 여기에도 있어야 한다.
	   ※ mall.css 쪽과 같은 값이다 — 팝업이 어느 틀에서 열리든 같아야 한다 */
	--font-body: var(--font);
	--font-form: var(--font);
	--size-body: 12px;

	/*--- 사진을 상자에 어떻게 앉힐지 ---
	  cover  = 잘라서 꽉 채운다 (참고 디자인. 지금 값)
	  contain= 안 자르고 넣는다. 남는 자리는 페이지 바탕
	  ★ 되돌리려면 이 낱말 하나만 고치면 된다. 규칙은 한 곳에만 적혀 있다.
	  ※ 둘로 나눠 둔 이유 — 목록과 메인은 잘림의 무게가 다르다. 목록은
	    격자의 세로선이 맞는 것이 중요하고, 메인은 사진 한 장이 전부다. */
	--tile-fit: cover;		/* 목록 격자의 사진 (.st-tile img) */
	--hero-fit: cover;		/* 메인 사진 (.st-hero) */

	/*--- 좌우 여백 (창 크기를 따라 세 단계) ---
	  이 값 하나가 머리·본문·꼬리말의 왼쪽 끝을 한 세로선에 세운다.
	  따로 적지 말고 var(--pad) 를 쓸 것. */
	--pad: 1.25rem;			/* 20px */

	/*--- 본문 최대 폭 ---
	  글이 한 줄에 너무 길면 눈이 다음 줄을 못 찾는다. 사진 격자는 이 제한을
	  받지 않는다(격자는 --pad 안에서 창을 꽉 채운다). */
	--read-w: 46rem;

	/*--- 로고 높이 ---
	  🔴 로고는 **폭이 아니라 높이**로 잰다. img/logo_yg.svg 가 세로로 긴
	    모양이라(374:476) 폭으로 잡으면 머리말이 통째로 두꺼워진다.
	  ★ 크기를 바꿀 곳은 여기 하나다. 아래 --hd-h 와 짝이다 —
	    [머리말 위여백 + --logo-h] 가 --hd-h 를 넘으면 로고가 잘린다. */
	--logo-h: 3.25rem;		/* 52px */

	/*--- 머리말이 차지하는 높이 ---
	  머리말이 position:fixed 라 본문이 그 밑으로 깔린다. 본문 위 여백을
	  이 값에서 뽑아 쓴다. 머리 높이를 바꾸면 여기만 고치면 된다. */
	--hd-h: 5rem;
}
@media (min-width:768px){ :root{ --pad:3.125rem; --logo-h:5rem;    --hd-h:8rem } }
@media (min-width:901px){ :root{ --pad:6.5625rem; --logo-h:7.5rem; --hd-h:10rem } }

body{
	background: var(--bg);
	color: var(--color-text);
	font-family: var(--font);
	font-size: .875rem;
	line-height: 1.75;
	letter-spacing: .01em;
	/* 좁은 화면에서 가로로 밀리는 것을 막는다. 전체화면 사진(100vw)이
	   스크롤바 폭만큼 넘칠 수 있어서다. */
	overflow-x: hidden;
}

/*==================================================================
  화면에 안 보이지만 낭독기는 읽는 글
  ★ display:none 으로 바꾸지 말 것 — 그러면 낭독기도 못 읽어 한 일이 없어진다.
    (mall.css 의 .sr-only 와 같은 규칙이다)
==================================================================*/
.sr-only{
	position:absolute; width:1px; height:1px;
	margin:-1px; padding:0; border:0;
	clip-path: inset(50%); overflow:hidden; white-space:nowrap;
}

/* 키보드로 왔을 때만 초점 테두리를 그린다.
   ★ 새 링크·버튼에 outline:0 을 주지 말 것. 키보드만 쓰는 사람이 길을 잃는다. */
:where(a, button, input, select, textarea):focus-visible{
	outline: 2px solid var(--color-text);
	outline-offset: 3px;
}

/*==================================================================
  머리말 — shared/studio/header.php

  ┌ 좁은 화면 ────────────────────────────────────────────────┐
  │ [로고]                                              [≡]   │
  └───────────────────────────────────────────────────────────┘
     [≡] 를 누르면 검은 덮개가 화면을 덮고 메뉴가 가운데 선다.

  ┌ 901px 이상 ───────────────────────────────────────────────┐
  │ [로고]          FURNITURE  ABOUT  NEWS  CONTACT           │
  │                  Tables Beds Storages Cabinets ...        │
  └───────────────────────────────────────────────────────────┘
     로고는 왼쪽 끝, 메뉴는 화면 정가운데. 로고 폭이 바뀌어도 메뉴는 안 밀린다
     (메뉴가 position:absolute 로 전체 폭 위에 얹혀 가운데 정렬된다).

  ★ position:fixed — 사진을 넘기며 아래로 내려가도 메뉴가 늘 손에 닿는다.
    본문은 --hd-h 만큼 위 여백을 받아 머리 밑으로 숨지 않는다.
==================================================================*/
.st-hd{
	position: fixed; top:0; left:0; width:100%;
	z-index: 64;
	padding: .875rem var(--pad);
	background: var(--bg);
	/* 🔴 min-height 가 있어야 하는 이유 — 메뉴(.st-nav)와 단추(.st-mb)가
	   position:absolute 라 머리말의 높이 계산에 들어가지 않는다. 이 줄이
	   없으면 흰 띠가 로고 높이(18px)까지밖에 안 그려져서, 스크롤하면
	   본문 사진이 메뉴 글자 뒤로 지나간다. --hd-h 와 같은 값이다. */
	min-height: var(--hd-h);
}

/*--- 본문으로 건너뛰기 ---
  키보드·낭독기로 오는 사람이 메뉴 20개를 매 페이지 지나치지 않게 한다.
  평소에는 화면 위로 밀어 두고 Tab 으로 초점이 닿을 때만 내려온다.
  ★ display:none 으로 숨기지 말 것 — 그러면 초점이 아예 닿지 않는다. */
.st-skip{
	position:fixed; left:.75rem; top:-4rem; z-index:128;
	padding:.6rem 1.1rem;
	background: var(--color-text); color: var(--bg);
	font-size:.8125rem;
	transition: top .15s ease-out;
}
.st-skip:focus{ top:.75rem }

.st-hd__logo{ position:relative; z-index:2; display:block; width:max-content }
/* 🔴 height 를 주고 width 는 auto 다 (그 반대가 아니다 — 위 --logo-h 주석).
   aspect-ratio 는 파일의 제 비율. 로고 파일을 갈아끼우면 여기와
   studio/header.php 의 width/height 두 숫자를 같이 고칠 것. */
.st-hd__logo img{ height:var(--logo-h); width:auto; aspect-ratio:374/449 }
@media (min-width:901px){
	.st-hd{ padding:1.75rem var(--pad) 0 }
}

/*--- 메뉴 (한 벌의 DOM, 두 모양) ---
  studio/header.php 가 찍는 짜임새는 하나다:
      .st-nav > .st-nav__inr > [ .st-nav__main | .st-nav__sub ]
  좁은 화면에서는 검은 덮개 위에 세로로 서고, 901px 이상에서는 화면 정가운데
  두 줄로 눕는다. 링크를 두 벌 찍지 않는 이유는 그 파일 주석에 있다.

  ★ "지금 여기" 는 흐리게 표시한다 (--color-now). 굵게도 밑줄도 쓰지 않는다.
    이 규칙은 **안 고른 것이 검정일 때만** 통한다 — 회색을 회색으로 흐릴 수는 없다.
    (aria-current 를 그대로 선택자로 쓴다. 낭독기에 알리는 값과 눈에 보이는
     표시가 한 곳에서 나오므로 둘이 어긋날 수가 없다) */
.st-nav__inr{ display:flex; flex-flow:column; justify-content:center; align-items:center }
.st-nav__main{ display:flex; flex-flow:column; align-items:center }
.st-nav__sub { display:flex; flex-flow:column; align-items:center }

.st-nav a{
	display:block;
	letter-spacing:.12em;
	font-size:1.25rem; line-height:2.4;
	padding:0 1em;
	color:#fff;			/* 좁은 화면의 검은 덮개 위에 놓인다 */
}
.st-nav__sub a{ font-size:.9375rem; line-height:2.1; color:rgba(255,255,255,.62) }

/* 섹션이 없는 화면(메인·사이트맵)에서는 이 상자가 **정말로 비어 있다**
   (header.php 가 여는 태그와 닫는 태그를 붙여서 찍는다). 그래서 :empty 로
   가름줄과 여백을 같이 걷어낼 수 있다 — 빈 줄이 남지 않는다. */
.st-nav__sub:not(:empty){
	margin-top:1.25rem; padding-top:1.25rem;
	border-top:1px solid rgba(255,255,255,.18);
}

@media (min-width:901px){
	.st-nav{ position:absolute; top:2.5rem; left:0; width:100% }
	.st-nav__inr { display:block; padding:0; min-height:0 }
	.st-nav__main{ flex-flow:row; justify-content:center; flex-wrap:wrap }
	.st-nav__sub {
		flex-flow:row; justify-content:center; flex-wrap:wrap;
		/* 항목이 없어도 자리는 남긴다 — 접히면 그 페이지만 본문이 위로 튄다 */
		min-height:1.6rem;
	}
	.st-nav__sub:not(:empty){ margin-top:.25rem; padding-top:0; border-top:0 }

	.st-nav a{
		display:inline-block;
		font-size:.75rem; letter-spacing:.07em; line-height:1.2;
		padding:.5em 1.15em;
		color: var(--color-text);
		transition: color .2s;
	}
	.st-nav__sub a{
		font-size:.75rem; letter-spacing:.05em; line-height:1.6;
		padding:.2em .8em;
		color: var(--color-text);
	}
	.st-nav a:hover,
	.st-nav a[aria-current]{ color: var(--color-now) }
}

/*--- 메뉴 단추 (900px 이하) ---
  ★ <button type='button'> 이다. 주소가 없고 화면을 조작하기만 하므로.
    (CLAUDE.md '링크냐 버튼이냐') */
.st-mb{
	position:absolute; top:.75rem; right:calc(var(--pad) - .35rem);
	width:2.75rem; height:2.75rem;		/* 손가락이 닿는 최소 크기 44px */
	z-index:33; cursor:pointer;
}
.st-mb__l{
	position:absolute; left:50%; top:50%;
	width:1.125rem; height:1.5px; margin-left:-.5625rem;
	background: var(--color-text);
	transition: transform .23s ease-in-out, background-color .23s;
}
.st-mb__l:nth-child(1){ transform:translateY(-4px) }
.st-mb__l:nth-child(2){ transform:translateY(4px) }
/* 열렸을 때 — 두 줄이 X 로 모인다 */
.is-menu-open .st-mb__l{ background:#fff }
.is-menu-open .st-mb__l:nth-child(1){ transform:rotate(45deg) }
.is-menu-open .st-mb__l:nth-child(2){ transform:rotate(-45deg) }

@media (min-width:901px){ .st-mb{ display:none } }

/*--- 덮개 메뉴 (900px 이하) ---*/
@media (max-width:900px){
	.st-nav{
		position:fixed; top:0; left:0; width:100%; height:100%;
		z-index:32; overflow:auto;
		background: var(--scrim);
		opacity:0; visibility:hidden;
		transition: opacity .4s ease-in-out, visibility .4s;
	}
	.st-nav__inr{ min-height:100%; padding:5rem 1.25rem }
	.is-menu-open .st-nav{ opacity:1; visibility:visible }
	/* 덮개가 떠 있는 동안 뒤 페이지가 같이 스크롤되지 않게 한다 */
	body.is-menu-open{ overflow:hidden }
}

/*==================================================================
  본문 틀

  .st-page       기본 — 좌우 --pad, 위는 머리말 높이 + 숨구멍
  .st-page--wide 사진 격자용 — 좌우 여백을 조금 더 준다
  .st-read       읽는 글 — 한 줄이 너무 길어지지 않게 --read-w 로 묶는다
==================================================================*/
.st-page{
	padding: calc(var(--hd-h) + 2.5rem) var(--pad) 5rem;
}
@media (min-width:901px){
	.st-page{ padding: calc(var(--hd-h) + 4.5rem) var(--pad) 7.5rem }
}

.st-read{ max-width: var(--read-w) }

/*--- 좌우 여백이 없는 본문 (메인 사진처럼 화면 끝까지 가는 것) ---
  ★ 위 .st-page 규칙들보다 **뒤에** 있어야 한다. 우선순위가 같으므로
    순서가 이긴다 — 앞으로 옮기면 좌우 여백이 되살아난다.
  ※ 아래 여백은 .st-page 것을 그대로 물려받는다 (꼬리말과 붙지 않게) */
.st-page--flush{ padding-left:0; padding-right:0; padding-top:var(--hd-h) }

/*==================================================================
  메인 사진 (히어로) — index.php

  🔴 이 절이 하는 일은 하나다: **깜빡이지 않게 한다.**

  예전 메인이 깜빡이던 이유는 셋이었고 전부 없앴다.
    ① 슬라이드쇼가 같은 <img> 의 src 를 갈아끼웠다. 새 사진이 아직 안
      받아졌으면 그 순간 빈 칸이 보인다 -> 흰 번쩍임.
    ② 다음 장을 <td> 배경으로 미리 깔고 앞장을 지워 드러내는 방식이라,
      배경이 안 받아졌으면 페이드 도중 바탕색이 그대로 드러났다.
    ③ <img> 에 width/height 가 없어서 사진이 도착하는 순간 아래가 밀렸다.

  지금
    · 사진은 한 장이고 src 를 바꾸지 않는다. 갈아끼울 일이 없으니 깜빡일 일도 없다.
    · 상자 크기가 CSS 로 먼저 잡혀 있고 php 가 width/height 를 실제 값으로
      적어 준다. 사진이 오기 전에도 자리가 이미 있다 (레이아웃 이동 0).
    · <head> 에서 rel=preload 로 미리 받는다. 이 사진이 이 페이지의 LCP 다
      (검색엔진이 점수로 보는 '가장 큰 것이 언제 그려졌나').
    · 다 받아진 뒤에 한 번에 나타난다 — 위에서 아래로 서서히 그려지는
      (progressive JPEG 특유의) 모습이 안 보인다. 아래 .js 규칙.

  ★ JS 가 없어도 사진은 그냥 보인다.
    opacity:0 은 <html class="js"> 일 때만 걸린다. 그 클래스는 head.php 의
    인라인 한 줄이 붙인다. 스크립트가 막히면 클래스가 안 붙고, 규칙이 통째로
    안 걸려서 사진이 처음부터 보인다. **절대 .js 없이 opacity:0 을 걸지 말 것** —
    스크립트 하나 막혔다고 메인 사진이 영영 안 보이게 된다.
==================================================================*/
.st-hero{
	display:block; width:100%;
	object-fit: var(--hero-fit);
	object-position: center;
	background: var(--bg-raise);	/* 사진이 오기 전의 빈 자리 */
}

/* 좁은 화면 — 사진 제 비율대로 둔다.
   ★ 여기서 화면 높이를 꽉 채우면 안 된다. 등록되는 사진은 가로로 긴
     것들인데(2000x944 등) 세로로 긴 폰 화면을 cover 로 채우면 사진의
     가운데 한 뼘만 남는다. 무엇을 찍은 사진인지 알 수 없게 된다. */
.st-hero{ height:auto }

/* 넓은 화면 — 머리말 아래 화면을 꽉 채운다 (참고 디자인의 모습).
   ★ 100svh 를 쓰는 이유: 폰·태블릿에서 100vh 는 주소창이 보이는 상태의
     높이라, 스크롤해서 주소창이 접히는 순간 사진이 갑자기 늘어난다. */
@media (min-width:901px){
	.st-hero{
		height: calc(100svh - var(--hd-h));
		min-height: 26rem;		/* 세로가 아주 짧은 창에서 띠처럼 되는 것을 막는다 */
	}
}
/* 100svh 를 모르는 브라우저를 위한 대비. 위 규칙보다 먼저 와야 덮어쓰인다 */
@supports not (height: 100svh){
	@media (min-width:901px){ .st-hero{ height: calc(100vh - var(--hd-h)) } }
}

/* 다 받아진 뒤에 한 번에 나타난다 (위 머리말 참고) */
.js .st-hero{ opacity:0; transition: opacity .5s ease-in }
.js .st-hero.is-loaded{ opacity:1 }

/*==================================================================
  메인 공지 팝업 — shared/layer_popup.php

  ★ 팝업의 모양은 그 파일 안의 <style> 이 갖고 있다 (두 틀에서 같이 쓴다).
    여기 있는 것은 **새 틀에서만 달라져야 하는 두 가지** 뿐이다.
    🔴 모양을 고칠 일이 생기면 layer_popup.php 를 볼 것. 여기가 아니다.

  🔴 선택자에 html 을 붙인 이유 — 그 파일의 <style> 은 본문 안에 있어서
    이 파일보다 **뒤에** 온다. #Layerpopup 끼리는 우선순위가 같으므로 뒤가
    이긴다. html 을 하나 붙이면 순서와 상관없이 이쪽이 이긴다.
    (!important 를 쓰지 않는 이유: 그 파일에서 다시 덮을 길이 막힌다)
==================================================================*/
/* ① 머리말 높이가 옛 틀과 다르다. 그 파일의 top:130px 은 옛 머리(166px)에
     맞춰 잰 값이라 새 틀에서는 메뉴를 가린다. */
html #Layerpopup{ top: calc(var(--hd-h) + 1.5rem) }

/* ② 그 파일은 폭이 837px 고정이다 (2007년 PC 전용 화면 기준).
     새 틀은 폰에서도 열리므로 화면을 넘지 않게 묶는다.
     ※ 글 폭(.pop-text 의 793px)은 공지 페이지 본문과 묶인 값이라 넓은
       화면에서는 건드리지 않는다 — 한쪽만 바꾸면 같은 글의 줄바꿈이
       두 곳에서 어긋난다 (CLAUDE.md 지뢰표). 좁을 때만 줄인다. */
@media (max-width: 900px){
	html #Layerpopup{
		left:1rem; right:1rem; width:auto; margin-left:0;
	}
	html #Layerpopup .pop-text{ width:auto; max-height:50vh }
}

/*--- 글 안의 링크만 밑줄 ---
  ★ 색으로 링크를 표시하지 않는다. 검정 + 밑줄이다 (CLAUDE.md 색 규칙) */
.st-a{ text-decoration:underline; text-underline-offset:.18em }
.st-a:hover{ text-decoration:none }

/*--- 제목 ---
  ★ 위계는 색이 아니라 크기·굵기·자간이 쥔다. --color-brand 는 소제목에만.
    여기저기 갖다 쓰면 파랑 시절로 되돌아간다. */
.st-h2{
	font-size:1.125rem; line-height:1.5; font-weight:600;
	letter-spacing:.01em;
	color: var(--color-brand);
	margin: 0 0 1rem;
}
.st-h3{
	font-size:.9375rem; line-height:1.6; font-weight:600;
	margin: 2rem 0 .5rem;
}

/*==================================================================
  사진 격자 — 가구 목록 / 전시회 / 미디어

  ┌───────┐ ┌───────┐ ┌───────┐
  │ 사진   │ │ 사진   │ │ 사진   │     901px 이상  3칸
  └───────┘ └───────┘ └───────┘        768~900    3칸
   이름       이름       이름            ~767      2칸
   코드       코드       코드

  ★ 칸 폭을 px 로 적지 않는다. grid 가 남는 자리를 알아서 나눈다 —
    mall.css 쪽 목록이 [칸 308 x 3 + 간격 38 x 2 = 1000] 을 손으로 맞춰야
    했던 것과 정반대다. 창을 아무렇게나 줄여도 격자가 안 무너진다.

  ★ 사진은 aspect-ratio 로 **칸 크기를 미리 잡는다.**
    사진이 도착하기 전에도 자리가 잡혀 있어서, 목록을 스크롤하는 도중에
    아래 칸이 밀려 내려가는 일(레이아웃 이동)이 없다. 검색엔진이 이것을
    점수로 본다 (Core Web Vitals 의 CLS).
==================================================================*/
.st-grid{
	display:grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.25rem 1.25rem;
}
@media (min-width:768px){
	.st-grid{ grid-template-columns: repeat(3, 1fr); gap:3.5rem 2rem }
}

.st-tile{ display:block }
.st-tile img{
	width:100%; height:auto;
	aspect-ratio: 308 / 205;	/* 썸네일(_d_s1.jpg)이 만들어지는 비율과 같다 */
	object-fit: var(--tile-fit);
	background: var(--bg-raise);	/* 사진이 오기 전/없을 때의 빈 칸 */
	transition: opacity .3s ease-in-out;
}
.st-tile:hover img{ opacity:.72 }

.st-tile__cap{
	margin-top:.625rem;
	font-size:.75rem; letter-spacing:.02em; line-height:1.45;
}
.st-tile__name{ font-weight:600; color:var(--color-text) }
.st-tile__meta{ color:var(--color-mute); font-weight:350 }

/*==================================================================
  가구 상세 — furniture/detail.php

  ┌ 901px 이상 ───────────────────────────────────────────────┐
  │ ┌──────────────────┐   나비 테이블                        │
  │ │      사진 1      │   TA0601                             │
  │ └──────────────────┘   ─────────────────                  │
  │ ┌──────────────────┐   크기  2600W X 900D X 750H          │
  │ │      사진 2      │   목재  참나무                        │
  │ └──────────────────┘   마감  천연오일                      │
  │         ...            가격  ￦8,000,000                   │
  │                        설명글…                            │
  │                        ← → 목록                           │
  └───────────────────────────────────────────────────────────┘
  좁은 화면에서는 사진이 먼저, 그 아래로 오른쪽 칸이 이어진다.

  ★ 오른쪽 칸은 position:sticky 다. 사진을 여러 장 내리는 동안 크기·재료가
    화면에 남아 있는다 — 가구를 고르는 사람이 실제로 필요로 하는 정보다.

  ★ 사진을 세로로 전부 늘어놓는다 (2026-08-27).
    예전에는 큰 사진 한 장 + 밑에 작은 썸네일 줄이었고, 썸네일을 누르면
    JS 가 큰 사진의 src 를 갈아끼웠다. 그 방식은 메인 슬라이드쇼와 똑같은
    문제를 갖고 있었다 — 누른 사진이 아직 안 받아졌으면 그 순간 빈 칸이
    보인다. 전부 늘어놓으면 갈아끼울 일이 없고 스크롤이 그 일을 대신한다.
    (썸네일 줄 CSS·JS 약 40줄이 같이 없어졌다)
==================================================================*/
.st-detail__photos img{
	width:100%; height:auto;
	background: var(--bg-raise);	/* 사진이 오기 전의 빈 자리 */
}
.st-detail__photos img + img{ margin-top:1rem }

.st-detail__side{ margin-top:2rem }
.st-detail__name{ font-size:1.25rem; line-height:1.4; font-weight:600 }
.st-detail__code{
	margin-top:.15rem;
	font-size:.75rem; letter-spacing:.06em; color:var(--color-mute);
}

/*--- 크기·목재·마감·가격 ---
  ★ 라벨은 지어낸 말이 아니다. 모바일 상세(m/furni_desc.php)가 2007년부터
    쓰던 그 낱말 그대로다 — 크기 / 목재 / 마감 / 가격. PC 쪽에만 없었다.
  ※ <dl> 인 이유: 낱말과 뜻의 짝이다. 검색엔진·AI 도 이 짜임새를 읽는다. */
.st-spec{ margin-top:1.5rem; border-top:1px solid var(--rule) }
.st-spec > div{
	display:flex; gap:1rem;
	padding:.6rem 0; border-bottom:1px solid var(--rule);
}
.st-spec dt{ flex:0 0 3.5rem; color:var(--color-dim) }
.st-spec dd{ flex:1 1 auto; min-width:0; word-break:keep-all }
.st-spec, .st-detail__desc{ font-size:.8125rem; line-height:1.85 }
.st-detail__desc{ margin-top:1.5rem }

.st-pager{ margin-top:2.5rem }

@media (min-width:901px){
	.st-detail{
		display:grid;
		grid-template-columns: minmax(0,2fr) minmax(17rem,1fr);
		gap:3.5rem; align-items:start;
	}
	.st-detail__photos img + img{ margin-top:1.5rem }
	.st-detail__side{
		margin-top:0;
		position:sticky; top:calc(var(--hd-h) + 3rem);
	}
}

/*==================================================================
  전시회 목록 — exhibition/list.php   [사진 | 글] 카드

  ★ 왜 가구처럼 사진 격자로 안 만드나 (2026-08-21 의 판단을 그대로 잇는다)
    전시회 항목은 제목이 길고(평균 35자, 최대 54자) 그 밑에 기간·장소가
    여러 줄 붙는다(최대 214자 — 서울/광주/미국을 도는 전시가 있다).
    사진 밑에 글이 붙는 격자에 넣으면 칸마다 글 높이가 달라져 줄이 어긋난다.
    참고 디자인의 NEWS 페이지도 이 짜임새다 ([왼쪽 날짜·제목 | 오른쪽 본문]).

  ★ 칸 수를 px 로 정하지 않는다. auto-fill 이 **들어갈 수 있는 만큼** 넣는다 —
    창을 아무렇게나 줄여도 칸이 찌그러지지 않고 개수만 준다.
==================================================================*/
.st-cards{
	display:grid; gap:2.25rem 3rem;
	grid-template-columns: repeat(auto-fill, minmax(21rem, 1fr));
}
.st-card{ display:flex; gap:1.25rem; align-items:flex-start }
.st-card__img{ flex:0 0 8rem }
.st-card__img img{
	width:100%; aspect-ratio:1;
	object-fit: var(--tile-fit); background:var(--bg-raise);
	transition: opacity .3s ease-in-out;
}
.st-card a:hover img{ opacity:.72 }
.st-card__t{ flex:1 1 auto; min-width:0; font-size:.8125rem; line-height:1.7 }
.st-card__title{ font-weight:600 }
.st-card__sub{ margin-top:.35rem; color:var(--color-dim) }

/*==================================================================
  미디어(보도) 목록 — press/list.php   잡지 표지 격자

  표지는 세로로 긴 인쇄물이라 비율이 정해져 있다 (150:200).
  가구 격자와 달리 칸이 작고 개수가 많아 화면 폭에 따라 3 -> 4 -> 6 칸.
==================================================================*/
.st-covers{
	display:grid; gap:1.75rem 1.25rem;
	grid-template-columns: repeat(3, 1fr);
}
@media (min-width:640px){ .st-covers{ grid-template-columns:repeat(4,1fr) } }
@media (min-width:901px){ .st-covers{ grid-template-columns:repeat(6,1fr); gap:2.5rem 1.5rem } }

.st-cover img{
	width:100%; aspect-ratio:150/200;
	object-fit: var(--tile-fit); background:var(--bg-raise);
	transition: opacity .3s ease-in-out;
}
.st-cover a:hover img{ opacity:.72 }
.st-cover figcaption{ margin-top:.5rem; font-size:.75rem; line-height:1.45 }
.st-cover__name{ font-weight:600 }
.st-cover__date{ color:var(--color-mute) }

/*==================================================================
  전시·보도 상세 — exhibition/view.php · press/view.php

  🔴 2026-08-27 — **팝업 창이 아니라 보통 페이지가 됐다.**
    예전에는 목록에서 window.open() 으로 700px 짜리 창을 띄웠다. 그래서
      · 폰에서는 팝업이 제대로 안 뜬다 (그래서 모바일은 따로 만들어야 했다)
      · 주소를 복사해 보낼 수는 있는데 열면 머리·꼬리말 없는 반쪽이 나왔다
      · 팝업 차단기가 막으면 아무 일도 안 일어났다
      · 없는 글일 때 진짜 404 를 못 냈다 (팝업에 404 화면은 더 이상하다)
        -> not_found_js() 라는 팝업 전용 우회가 필요했다
    지금은 그냥 페이지라 위 넷이 한꺼번에 없어졌다.
==================================================================*/
.st-article{ max-width:60rem; margin:0 auto }
.st-article__hd{ margin-bottom:1.5rem }
.st-article__title{ font-size:1.125rem; line-height:1.55; font-weight:600 }
.st-article__sub{ margin-top:.4rem; font-size:.8125rem; line-height:1.75; color:var(--color-dim) }
.st-article__photo img{ width:100%; height:auto; background:var(--bg-raise) }
.st-article__ft{
	display:flex; align-items:center; justify-content:space-between;
	gap:1rem; margin-top:1.25rem;
}
/* 사진이 한 장뿐이면 넘기는 줄이 비어 있다 — 그때도 [목록] 은 오른쪽 끝에 선다 */
.st-article__ft .pg-bar{ flex:1 1 auto }
.st-back{ font-size:.75rem; letter-spacing:.05em; color:var(--color-dim) }
.st-back:hover{ color:var(--color-text) }

/*==================================================================
  공지 — notice/list.php
  [점 | 날짜 | 제목] 목록, 그 아래 상자에 고른 글을 펼친다.

  🔴 본문 폭 --notice-w 는 **메인 팝업과 묶인 값**이다.
    shared/layer_popup.php 의 .pop-text{width:793px} 과 같아야 같은 공지가
    두 화면에서 똑같이 줄바꿈된다 (CLAUDE.md 지뢰표). 한쪽만 고치지 말 것.
    ※ 좁은 화면에서는 둘 다 창을 따라 줄어든다 — 그쪽은 어차피 서로 다른
      폭이 될 수밖에 없고, 같은 화면에 나란히 놓이지도 않는다.
  ※ 목록에서 "지금 읽는 글" 은 **진하게** 한다. 메뉴의 "지금 여기는 흐리게"
    와 반대 방향이다 — 저기는 갈 곳들 사이에서 이미 와 있는 곳을 죽이는
    것이고, 여기는 목록과 본문을 잇는 선이라 진해야 보인다.
==================================================================*/
:root{ --notice-w: 793px }

.st-notice{ max-width: calc(var(--notice-w) + 3rem) }
.st-notice__list{
	border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
	padding:.5rem 0; margin-bottom:1.75rem;
}
.st-notice__li{
	display:flex; gap:.75rem; align-items:baseline;
	padding:.3rem 0; font-size:.8125rem; line-height:1.7;
}
.st-notice__li .dot{
	flex:0 0 3px; width:3px; height:3px; margin-top:.6em;
	background:transparent; align-self:flex-start;
}
.st-notice__li[aria-current] .dot{ background:var(--color-text) }
.st-notice__d{
	flex:0 0 5.5rem; color:var(--color-dim);
	font-variant-numeric: tabular-nums;		/* 날짜가 세로로 줄맞춰 선다 */
}
.st-notice__li[aria-current] .st-notice__d{ color:var(--color-text) }
.st-notice__li[aria-current] .st-notice__t{ font-weight:700 }

.st-notice__box{ border:1px solid var(--line) }
.st-notice__head{
	display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
	background:var(--bg-raise); border-bottom:1px solid var(--line);
	padding:.6rem .85rem; font-size:.8125rem; line-height:1.6;
}
.st-notice__head-t{ font-weight:700 }
.st-notice__head-d{ color:var(--color-dim); font-variant-numeric:tabular-nums }
.st-notice__body{
	max-width: var(--notice-w);		/* 🔴 팝업과 묶인 값 — 위 머리말 */
	padding:1rem .85rem;
	font-size:.8125rem; line-height:1.75;
}

/*==================================================================
  글 페이지 — about · contact 폴더

  ⚠ 주석 안에 '별표+빗금' 을 쓰지 말 것 (about/∗ 같은 표기도).
    거기서 주석이 끝나 뒤의 한글이 셀렉터로 읽히고, 파서가 바로 다음 규칙을
    통째로 버린다. 화면만 조용히 깨지고 HTTP 는 200 이라 curl 로는 안 잡힌다.

  ★ 표 레이아웃을 걷어낸 자리다. 옛 코드는 세로 간격을 <td height=25> 로
    박아두고, 하위 줄을 '&nbsp;&nbsp;- ' 로 들여쓴 척했다. 글이 길어지면
    줄이 겹치고, 줄이 넘어가면 들여쓰기가 무너진다.
    🔴 새 글을 넣을 때도 그렇게 하지 말 것 — 아래 클래스를 쓴다.

  ★ 문구는 옮기기만 한다 (CLAUDE.md 2절). 이 절은 **모양만** 정한다.
==================================================================*/
.st-prose{ max-width: var(--read-w); font-size:.8125rem; line-height:1.95 }
.st-prose > * + *{ margin-top:1.1em }
.st-prose a{ text-decoration:underline; text-underline-offset:.18em }
.st-prose a:hover{ text-decoration:none }
.st-lead{ margin-bottom:1.5rem }
.st-lead-note{ color:var(--color-dim); margin-left:.4em }
.st-warn{ color:var(--color-danger) }

/*--- 글머리표가 붙는 목록 ---
  ★ ::before 로 그린다. 글자로 '·' 나 '- ' 를 적지 말 것 —
    줄이 넘어가면 둘째 줄이 글머리표 밑으로 들어가 버린다. */
.st-ul > li{ position:relative; padding-left:.85rem }
.st-ul > li + li{ margin-top:.5rem }
.st-ul > li::before{
	content:''; position:absolute; left:.1rem; top:.85em;
	width:4px; height:4px; background:var(--color-dim);
}
/* 한 단 들어간 하위 줄 (옛 '&nbsp;&nbsp;- ' 자리) */
.st-sub{
	display:block; position:relative;
	margin-top:.35rem; padding-left:.7rem;
	color:var(--color-dim);
}
.st-sub::before{
	content:''; position:absolute; left:0; top:.95em;
	width:5px; height:1px; background:var(--line);
}
.st-sub.st-warn{ color:var(--color-danger) }

/*--- 문장 안의 강조 (옛 .sky) ---
  🔴 제목이 아니다. about/usencare.php 처럼 같은 모양으로 **문장**을 쓰는
    자리가 있어서 태그를 h2 로 올리지 않는다 (CLAUDE.md 문서 구조 절).
    제목으로 쓸 때는 .st-h2sm 을 쓸 것. */
.st-em{ font-weight:700; color:var(--color-brand) }

/*--- 절 나누기 ---*/
.st-sep{ height:1px; background:var(--rule); margin:2rem 0 1.75rem }

/*==================================================================
  라벨 있는 목록 — contact/order.php · contact/location.php

  🔴 **두 페이지가 같은 규칙을 같이 쓴다. 한쪽만 고치지 말 것.**
    [번호 | 이름 | 설명] 과 [라벨 | 값] 두 가지가 한 페이지 안에 섞이는데,
    라벨 폭이 다르면 값이 시작하는 세로선이 절마다 어긋난다.
      .st-steps  [번호 2.5 + 사이 1 + 이름 8 + 사이 1] = 12.5rem 에서 설명이 시작
      .st-pair    [라벨 11.5 + 사이 1]                  = 12.5rem 에서 값이 시작
    ★ 이 두 합이 같아야 한다. 하나를 고치면 다른 쪽도 볼 것.
==================================================================*/
.st-steps > li{
	display:grid;
	grid-template-columns: 2.5rem 8rem 1fr;
	gap:0 1rem;
	padding:.8rem 0; border-top:1px solid var(--rule);
}
.st-steps > li:first-child{ border-top:0; padding-top:0 }
.st-steps__n{
	color:var(--color-mute); font-size:.75rem; letter-spacing:.08em;
	font-variant-numeric: tabular-nums;	/* 0 과 1 의 폭이 같아야 세로로 선다 */
}
/* word-break:keep-all — 이름이 칸보다 길 때 낱말째로 접힌다.
   기본값이면 '강동(하남) 주 작업' / '실' 처럼 한가운데서 끊긴다 */
.st-steps__name{ font-weight:600; word-break:keep-all }
.st-steps__d > .st-sub:first-child{ margin-top:0 }

.st-pair{ display:grid; grid-template-columns:11.5rem 1fr; gap:.4rem 1rem }
.st-pair dt{ color:var(--color-dim) }
.st-pair dd{ min-width:0 }

/* 좁은 화면 — 세 칸/두 칸을 접는다. 번호는 이름 옆에 그대로 둔다 */
@media (max-width:640px){
	.st-steps > li{ grid-template-columns:2.5rem 1fr }
	.st-steps__d{ grid-column:2 }
	.st-pair{ grid-template-columns:1fr; gap:0 }
	.st-pair dt{ margin-top:.75rem }
	.st-pair dt:first-child{ margin-top:0 }
}

/*--- 작업절차 흐름 — 화살표는 CSS 가 그린다. 글에는 낱말만 남는다 ---
  낱말마다 상자로 끊어두면 폭이 좁아져도 **화살표 자리에서만** 접힌다 */
.st-flow{ margin-top:.5rem; padding-left:.7rem; color:var(--color-dim) }
.st-flow span{ display:inline-block }
.st-flow span + span::before{ content:'→'; color:var(--color-mute); margin:0 .5em }

/*--- 「작품안내서」 — 절차가 아니라 절차에 딸린 각주다. 한 단 뜬 면으로 뗀다 ---*/
.st-note{
	margin-top:1.6rem; padding:.95rem 1.05rem;
	background:var(--bg-raise); color:var(--color-dim);
}
.st-note-t{ color:var(--color-text); font-weight:600; margin-right:.5em }

/*--- 스튜디오 소개 — about/philosophy.php ---
  🔴 안쪽 마크업(.st-b / .st-point)은 shared/studio_intro.php 의
    studio_intro_html() 이 만든다. 모바일도 같은 함수를 읽으므로
    클래스 이름을 바꾸려면 m/css/m.css 를 같이 볼 것. */
.st-intro{ max-width:46rem }
.st-intro .st-b{
	font-size:.9375rem; line-height:1.85;
	letter-spacing:-0.01em;
	word-break:keep-all;		/* 한글 낱말 중간에서 안 끊기게 */
}
.st-intro .st-b + .st-b{ margin-top:1.25rem }
/* 원본의 마지막 문단. 파랑이던 것을 2026-08-24 에 --color-brand 로 세웠다 */
.st-point{ font-weight:600; color:var(--color-brand) }

/*==================================================================
  프로필 — about/profile.php

  ★ 스크롤 상자를 없앴다. 옛 틀은 본문 높이가 470px 로 묶여 있어서 학력·경력을
    330px 짜리 스크롤 안에 가둬야 했다. 새 틀에는 그 제한이 없다 —
    전문이 펼쳐진다. 검색엔진도 스크롤 안의 글을 이제 온전히 읽는다.
  ★ 글 왼쪽 / 사진 오른쪽. 좁은 화면에서는 사진이 위로 올라간다.
  🔴 안쪽 마크업은 shared/functions.php 의 career_text() 가 만든다 (.pf-*).
    career_main·career_exhi 는 2007년에 손으로 적은 HTML 이라 그 함수가
    따로 다룬다 — 이 사이트에서 이스케이프하지 않는 유일한 두 칸이다.
==================================================================*/
.st-profile{ display:grid; grid-template-columns:1fr; gap:1.75rem }
@media (min-width:768px){
	.st-profile{ grid-template-columns:minmax(0,1fr) auto; gap:2.5rem }
	.st-profile__photo{ grid-column:2; grid-row:1 }
}
/* 원본이 110x144 라 늘리면 뭉갠다 — 대신 여백과 실선으로 액자를 만든다 */
.st-profile__photo img{
	padding:6px; background:var(--bg); border:1px solid var(--line);
	width:110px; height:144px;
}
.st-career{ font-size:.8125rem }
/* 첫 줄("박연규 wood studio 운영…")을 머리글처럼 세운다.
   관리자가 순서를 바꾸면 다른 줄이 굵어질 뿐 깨지지는 않는다 */
.st-career > .pf-p:first-child{ font-weight:600; margin-bottom:.3rem }
/* 한 줄 = 한 항목. 글머리표는 ::before 로 그린다 */
.pf-li { position:relative; padding-left:.85rem; line-height:1.75 }
.pf-li::before{
	content:''; position:absolute; left:.15rem; top:.75em;
	width:3px; height:3px; border-radius:50%; background:var(--color-mute);
}
/* 'ㅇ' 로 시작하던 큰 항목 — 속 빈 동그라미 */
.pf-cir{ padding-left:1rem; margin-top:.15rem }
.pf-cir::before{
	left:.05rem; top:.7em; width:4px; height:4px;
	background:transparent; border:1px solid var(--color-accent);
}
/* '-' 로 시작하던 하위 줄 — 한 칸 더 들어가고 글자를 죽인다 */
.pf-sub{ padding-left:1.85rem; color:var(--color-mute) }
.pf-sub::before{
	left:1rem; top:.85em; width:6px; height:1px;
	border-radius:0; background:var(--line);
}
.pf-p  { line-height:1.75 }
.pf-gap{ height:.7rem }
/* career_main 과 career_exhi 사이 */
.pf-rule{ height:1px; background:var(--rule); margin:1.5rem 0 1.2rem }

/*==================================================================
  재료 — about/material.php

  [왼쪽 탭 목록 | 세로선 | 오른쪽 내용] 두 칸. 좁은 화면에서는 탭이 위로.
  🔴 탭 안쪽 화면(?material_about=or 등)은 기본 목록에 안 잡힌다.
    마크업을 건드린 뒤 tools/layoutdiff.js 를 돌릴 때 PAGES= 로 직접 줄 것.
  ★ 고른 탭은 **진하게** 한다 (메뉴의 '지금 여기는 흐리게' 와 반대 방향이다 —
    여기는 목록과 내용을 잇는 선이라 진해야 보인다).
==================================================================*/
.st-mt{ display:grid; grid-template-columns:1fr; gap:1.5rem }
@media (min-width:768px){
	.st-mt{
		grid-template-columns:13rem minmax(0,1fr);
		gap:0 2.5rem;
	}
	.st-mt__body{ border-left:1px solid var(--rule); padding-left:2.5rem }
}
.st-mt__nav{ font-size:.8125rem }
.st-mtab{ display:block; font-weight:600; letter-spacing:.01em; color:var(--color-text) }
.st-mtab[aria-current]{ color:var(--color-brand) }
.st-mt__sep{ color:var(--color-mute); margin:0 .15em }		/* 목재_Wood 의 '_' */
.st-mt__woods{ margin:.5rem 0 1.4rem; padding-left:.3rem }
.st-mt__woods li + li{ margin-top:.25rem }
.st-mt__woods a{ color:var(--color-text) }
.st-mt__woods a[aria-current]{ font-weight:700 }
.st-mt__nav > * + *{ margin-top:1.1rem }
.st-mt__woods + *{ margin-top:0 }
/* 재료 사진 — 원본 크기가 제각각이라 폭만 묶는다 */
.st-mt__img{ margin-top:1.5rem; max-width:24rem }

/*--- 소제목 (옛 .sky / .mt-intro) ---
  ★ --color-brand 는 **소제목에만** 쓴다. 여기저기 갖다 쓰면 파랑 시절로
    되돌아간다 (CLAUDE.md 색 규칙) */
.st-h2sm{
	font-size:.9375rem; font-weight:700; letter-spacing:.02em;
	color:var(--color-brand);
}

/*==================================================================
  이전/다음 화살표 — shared/pager_arrow.php 가 그린다

  쓰는 곳 — 이 절 하나를 고치면 세 군데가 같이 바뀐다
    furniture/detail.php     가구 상세의 처음/이전/다음/마지막
    shared/image_pager.php   전시·보도 상세의 사진 넘기기 (두 화면 공용)

  ★ 2026-08-27 에 그 php 파일 안의 <style> 을 여기로 옮겼다.
    본문 한가운데에 <style> 을 내보내고 있었는데 HTML5 에서 <body> 안의
    <style> 은 표준이 아니고, 화살표가 안 나오는 글에서도 스타일만 나갔다.
==================================================================*/
/* 세로 정렬 규칙 — 이 세 가지가 맞물려야 화살표와 숫자가 한 줄에 선다
   ① 모든 칸이 vertical-align:top + 높이 30px 로 똑같다 (baseline 정렬을 아예 안 쓴다)
   ② 숫자는 밑줄 자리 2px 를 항상 차지한다 (현재 페이지만 색이 보인다).
      현재 페이지에만 border 를 주면 그 칸만 2px 내려앉는다
   ③ 화살표 SVG 는 display:block + 위아래 5px 마진 ((28-18)/2) 로 칸 한가운데 둔다
   mall.css 의 요소 선택자 div{굴림/금색} 를 피하려고 이 줄에는 <div> 를 쓰지 않는다 */
.pg-bar { text-align:center; white-space:nowrap; font-size:0; line-height:0; }
.pg-bar a, .pg-bar span, .pg-bar img { display:inline-block; vertical-align:top; }
.pg-arrow {
	width:30px; height:28px; padding-bottom:2px;
	color:var(--color-accent); text-decoration:none;
}
.pg-arrow svg { display:block; margin:5px auto; }
a.pg-arrow:link, a.pg-arrow:visited, a.pg-arrow:hover { text-decoration:none; }
a.pg-arrow:hover { color:var(--color-now); }
.pg-off { color:var(--rule); }
.pg-num {
	min-width:26px; height:28px; line-height:28px; padding:0 4px;
	border-bottom:2px solid transparent;
	font-family:var(--font-body); font-size:13px; text-align:center;
}
a.pg-num:link, a.pg-num:visited { color:var(--color-dim); text-decoration:none; }
a.pg-num:hover { color:var(--color-text); text-decoration:none; }
.pg-now { color:var(--color-now); font-weight:bold; border-bottom-color:var(--color-accent); }
/* 상세 페이지의 "3 / 7" 표시 — 링크가 아니라 안내라서 회색이다 */
.pg-count { color:var(--color-mute); padding:0 10px; }
/* 가구 상세의 [목록] 아이콘 — 20x15 이미지를 30px 칸 한가운데 둔다 */
.pg-list { width:30px; height:28px; padding-bottom:2px; text-decoration:none; }
.pg-list img { display:block; margin:7px auto 0; }
/* [목록] 과 화살표 사이 간격 (예전 표의 33px 빈칸 자리) */
.pg-gap { width:14px; height:28px; }
.pg-arrow{ transition: color .15s }
@media (prefers-reduced-motion: reduce){ .pg-arrow{ transition:none } }

/*==================================================================
  사이트맵 — sitemap/index.php   /   없는 주소 — 404.php
==================================================================*/
.st-map{
	display:grid; gap:2.5rem 2rem;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	max-width:52rem;
}
.st-map__h{
	display:inline-block;
	padding:.3rem 1rem; margin-bottom:1.1rem;
	border:1px solid var(--line); border-radius:999px;
	font-size:.75rem; letter-spacing:.06em;
}
.st-map a:hover .st-map__h{ border-color:var(--color-accent) }
.st-map li + li{ margin-top:.55rem }
.st-map li a{ font-size:.8125rem; color:var(--color-text) }
.st-map li a:hover{ color:var(--color-now) }

.st-nf{ max-width:var(--read-w) }
.st-nf__h{ font-size:1.25rem; font-weight:600; line-height:1.5 }
.st-nf__p{ margin-top:.75rem; line-height:1.9 }
.st-nf__links{ margin-top:1.75rem; display:flex; flex-wrap:wrap; gap:.4rem 0 }
.st-nf__links a{ text-decoration:underline; text-underline-offset:.18em }
.st-nf__links a:hover{ text-decoration:none }
.st-nf__links a + a::before{
	content:''; display:inline-block;
	width:1px; height:.8em; margin:0 .9em -.05em;
	background:var(--line);
}

/*==================================================================
  꼬리말 — shared/studio/footer.php
  잔글씨 한 줄이다. [Cafe · Map] 왼쪽, [전화 · Copyright] 오른쪽.
  좁은 화면에서는 두 줄로 접힌다.
==================================================================*/
.st-ft{
	padding: 1.5rem var(--pad) 2rem;
	border-top: 1px solid var(--rule);
	font-size:.75rem; line-height:1.9;
	color: var(--color-mute);
	display:flex; flex-wrap:wrap; gap:.25rem 1.5rem;
	justify-content:space-between;
}
.st-ft a:hover{ color: var(--color-text) }
.st-ft__bar{ display:inline-block; margin:0 .6em; color:var(--line) }

/*==================================================================
  최근 본 가구 — 꼬리말 위 잔줄
  ★ mall.css 쪽과 달리 **비었으면 자리를 잡지 않는다.**
    저쪽은 페이지 전체 높이가 zoom 사다리의 입력값이라 빈 띠라도 높이를
    남겨야 했다. 여기는 사다리가 없으므로 그럴 이유가 사라졌다.
==================================================================*/
.st-rv{
	display:flex; align-items:center; gap:.5rem;
	padding: 0 var(--pad) 2.5rem;
	overflow-x:auto;
}
.st-rv__t{
	flex:0 0 auto; width:4.5rem;
	font-size:.75rem; line-height:1.3; color:var(--color-mute);
	border-right:1px solid var(--rule); margin-right:.5rem;
}
.st-rv img{ width:4.5rem; height:3rem; object-fit:cover }

/*==================================================================
  움직임을 줄여달라고 한 사람에게는 줄인다 (표준 설정)
==================================================================*/
@media (prefers-reduced-motion: reduce){
	*, *::before, *::after{
		animation-duration:.01ms !important; animation-iteration-count:1 !important;
		transition-duration:.01ms !important; scroll-behavior:auto !important;
	}
}

/*==================================================================
  인쇄 — 메뉴·최근본가구를 숨기고 사진만 남긴다.
  ★ 화면에만 쓰는 것을 새로 만들면 여기 목록에 추가할 것.
==================================================================*/
@media print{
	.st-hd, .st-mb, .st-nav, .st-rv, .st-skip, .pg-bar{ display:none }
	.st-page{ padding:0 }
	.st-tile img, .st-detail__photos img{ break-inside:avoid }
	/* 화면에서만 붙어 있는 것 — 인쇄하면 종이 한 장에 갇힌다 */
	.st-detail__side{ position:static }
}
