/* GEMVER 시안 — pages 묶음 (D299): About · Pet ID · Vaccine · Collection · 시즌 · 고객센터(공지·FAQ·문의) · 검색.
 * gemver.php 가 이 묶음 화면에서만 싣는다. 새 클래스는 gvp-* 로 — 옛 pn-editorial 계열 규칙과 겹치지 않게 한다.
 * 시안 실측(1440): 좌우 여백 40 · 최대 1280~1360 · 본문 14px/23 #555 · 제목 #222 · 좁은 본문 668. */

body.gv-pages .gvp { width: min(100% - 2 * var(--gv-margin), 1360px); margin: 0 auto; padding: 140px 0 140px; box-sizing: border-box; color: var(--gv-body); font-size: 14px; line-height: 23px; }
body.gv-pages .gvp *, body.gv-pages .gvp-hero * { box-sizing: border-box; }
body.gv-pages .gvp p { margin: 0; font-size: 14px; line-height: 23px; color: inherit; }
body.gv-pages .gvp h1, body.gv-pages .gvp h2 { margin: 0; }
body.gv-pages .gvp img { display: block; max-width: 100%; height: auto; }
/* 상품 카드 사진은 base.css 처럼 상자(379:365)를 채우고 contain 으로 가운데 — 바로 위 height:auto 가 같은 특이도로 이겨
 * 시즌 화면에서만 리드줄은 위에 붙고 목줄은 상자 밖으로 12px 넘쳤다(2026-10-15 F1 재검수). */
body.gv-pages .gvp .pn-card-product__media img { height: 100%; }
body.gv-pages .gvp-title { margin: 0; text-align: center; font-size: 15px; font-weight: 400; line-height: 1.3; color: var(--gv-ink); }
body.gv-pages .gvp-title--md { font-weight: 500; }
body.gv-pages .gvp-empty { margin: 80px auto 0; text-align: center; color: var(--gv-mute); }

/* ── Info 탭 ── */
body.gv-pages .gvp-tabs { display: flex; gap: 24px; margin: 0; }
body.gv-pages .gvp-tabs a { display: inline-block; padding: 0 0 3px; border-bottom: 1px solid transparent; font-size: 14px; line-height: 1.2; color: var(--gv-menu); text-decoration: none; }
body.gv-pages .gvp-tabs a[aria-current="page"] { border-bottom-color: var(--gv-menu); }
@media (pointer: coarse) { body.gv-pages .gvp-tabs a { padding: 12px 0 8px; } }

/* ── About ── */
body.gv-pages .gvp--about { display: grid; grid-template-columns: minmax(575px, 1fr) minmax(0, 557px); gap: 0 40px; align-items: start; }  /* 글 칸 최소 575 = 시안 02 의 가장 긴 줄(565)이 1024~1279 에서도 한 줄로 — 사진이 대신 줄어든다(2026-10-16). 1023 이하는 아래에서 1열 */
body.gv-pages .gvp-about__text { display: flex; flex-direction: column; min-height: 712px; }
body.gv-pages .gvp-about__body { margin-top: 56px; }
body.gv-pages .gvp-about__body p { color: var(--gv-ink); }
body.gv-pages .gvp-about__body p:nth-child(2) { margin-bottom: 23px; }
body.gv-pages .gvp-about__contact { display: flex; gap: 8px; margin-top: 135px !important; color: var(--gv-mute) !important; }
body.gv-pages .gvp-about__contact a { color: var(--gv-mute); text-decoration: none; }
body.gv-pages .gvp-about__contact a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.gv-pages .gvp-about__photo { margin: 0; }
body.gv-pages .gvp-about__photo img { width: 100%; aspect-ratio: 557 / 712; object-fit: cover; }

/* ── Pet ID · Vaccine 공통 ── */
body.gv-pages .gvp-h1 { font-family: "Inter", var(--gv-font); font-size: 32px; font-weight: 400; line-height: 1.25; letter-spacing: -.01em; color: var(--gv-ink); }
body.gv-pages .gvp-intro p { line-height: 25px; color: var(--gv-body); }
body.gv-pages .gvp-sec h2 { font-size: 20px; font-weight: 400; line-height: 1.4; color: var(--gv-ink); margin-bottom: 20px; }
body.gv-pages .gvp-sec p + p { margin-top: 0; }
body.gv-pages .gvp-sec p.pn-note { display: block; width: fit-content; max-width: 100%; margin-top: 18px; padding: 6px 12px; border-radius: 16px; background: var(--gv-fill); font-size: 11.5px; line-height: 1.6; color: #888; }
body.gv-pages .gvp-sec ul { margin: 0; padding-left: 1.2em; }
body.gv-pages .gvp-plain { margin-top: 56px; max-width: var(--gv-narrow); }
body.gv-pages .gvp-plain p { margin-bottom: 14px; }

/* Pet ID */
body.gv-pages .gvp--petid .gvp-head { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; align-items: start; margin-top: 70px; }
body.gv-pages .gvp--petid .gvp-intro { padding-left: 105px; padding-top: 10px; max-width: 460px; box-sizing: content-box; }
body.gv-pages .gvp-photo { margin: 66px 0 0; }
body.gv-pages .gvp-photo img { width: 100%; aspect-ratio: 1360 / 778; object-fit: cover; }
body.gv-pages .gvp-secs--grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px 24px; margin-top: 130px; padding-left: 91px; }
body.gv-pages .gvp-secs--grid .gvp-sec:nth-child(even) { padding-left: 14px; }

/* Vaccine */
body.gv-pages .gvp-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 543px); gap: 0 40px; align-items: start; margin-top: 70px; }
body.gv-pages .gvp--vaccine .gvp-intro { margin-top: 40px; }
body.gv-pages .gvp--vaccine .gvp-secs { padding-top: 10px; }
body.gv-pages .gvp--vaccine .gvp-sec { margin-bottom: 118px; }
body.gv-pages .gvp--vaccine .gvp-sec:last-child { margin-bottom: 0; }
body.gv-pages .gvp--vaccine .gvp-sec p.pn-note { width: 100%; padding: 14px 20px; border: 1px solid #ececec; border-radius: 28px; text-align: center; margin-top: 24px; }

/* ── Collection 목록 ── */
body.gv-pages .gvp--collection { width: min(100% - 2 * var(--gv-margin), var(--gv-narrow)); padding-top: 164px; }
body.gv-pages .gvp-seasons { list-style: none; margin: 72px 0 0; padding: 0; display: flex; flex-direction: column; gap: 270px; }
body.gv-pages .gvp-season a, body.gv-pages .gvp-season__static { display: block; text-align: center; color: var(--gv-ink); text-decoration: none; }
body.gv-pages .gvp-season__media { display: block; aspect-ratio: 3 / 4; background: var(--gv-fill); overflow: hidden; }
body.gv-pages .gvp-season__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
body.gv-pages .gvp-season a:hover img { transform: scale(1.02); }
body.gv-pages .gvp-season__name { display: block; margin-top: 28px; font-size: 15px; line-height: 1.3; color: var(--gv-ink); }
body.gv-pages .gvp-season__desc { display: block; margin-top: 8px; font-size: 12px; line-height: 1.4; color: var(--gv-body); }
body.gv-pages .gvp-season__soon { display: block; margin-top: 10px; font-size: 11px; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; color: var(--gv-body); } /* 공개 전 시즌(링크 없음, 2026-10-16) */

/* ── 시즌 ── */
body.gv-pages .gvp-hero { position: relative; width: 100%; height: clamp(300px, 48vw, 760px); overflow: hidden; background: #8c8a86; color: #fff; }  /* F3: 시안 1440×690 = 48vw. 원본 사진 비(2560×1228)와 거의 같아 1440 에서는 잘림 0 */
body.gv-pages .gvp-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }  /* F3: 아주 넓은 화면에서 세로가 잘릴 때 위쪽(개 귀·머리)을 우선 보이게 */
body.gv-pages .gvp-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,0) 45%, rgba(0,0,0,.38)); }
body.gv-pages .gvp-hero__text { position: absolute; z-index: 1; left: 0; right: 0; bottom: clamp(13px, 3.55vw, 51px); text-align: center; }  /* F3: 링크 상자를 44px 로 키운 만큼 낮춰 글자 위치는 시안(제목 중심 바닥에서 ~112, COLLECTION ~73) 그대로.
 * 3.55vw = 히어로 높이(48vw)의 7.4% → 1440 에서 51px(시안), 768 에서 27px. v2 사진(머리 위 여백)은 개가 낮게 앉아 있어 51px 고정이면
 * 768~1000 에서 제목이 흰 앞발 위에 얹혔다(제목 상자 p90 대비 2.4:1). 비례로 내려 1440 과 같은 «방석 위» 자리에 둔다(2026-10-15 F3 배선). */
body.gv-pages .gvp-hero__text h1 { margin: 0; font-size: 22px; font-weight: 500; line-height: 1.3; color: #fff; }
body.gv-pages .gvp-hero__text p { display: flex; justify-content: center; margin: 0; font-size: 11px; letter-spacing: .04em; }
body.gv-pages .gvp-hero__text a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 8px; color: #fff; text-decoration: none; }  /* 눌러지는 칸 44px (모바일 기준) */
body.gv-pages .gvp-hero--plain { background: var(--gv-fill); color: var(--gv-ink); }
body.gv-pages .gvp-hero--plain::after { display: none; }
body.gv-pages .gvp-hero--plain .gvp-hero__text h1, body.gv-pages .gvp-hero--plain .gvp-hero__text a { color: var(--gv-ink); }
body.gv-pages .gvp--season { padding-top: 120px; padding-bottom: 120px; }
body.gv-pages .gvp-look > p { margin: 0 auto 40px; max-width: var(--gv-narrow); text-align: center; color: var(--gv-body); }
body.gv-pages .gvp-look .wp-block-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
body.gv-pages .gvp-look .wp-block-gallery > figure.wp-block-image { width: auto !important; max-width: none; margin: 0 !important; flex: none; aspect-ratio: 3 / 4; overflow: hidden; }
body.gv-pages .gvp-look .wp-block-gallery img { width: 100% !important; height: 100% !important; object-fit: cover; }
body.gv-pages .gvp-look figure.wp-block-image:not(.wp-block-gallery figure) { margin: 0 0 24px; }
body.gv-pages .gvp-row-head { display: flex; align-items: flex-end; justify-content: space-between; margin: 170px 0 0; }
body.gv-pages .gvp-row-head--end { justify-content: flex-end; margin-top: 60px; }
body.gv-pages .gvp-row-head h2 { font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--gv-ink); }
body.gv-pages .gvp-season-products .pn-cards { margin-top: 56px; }

/* ── 고객센터 ── */
body.gv-pages .gvp--cs { width: min(100% - 2 * var(--gv-margin), var(--gv-narrow)); padding-top: 134px; min-height: 60vh; }
body.gv-pages .gvp-cs-head .gv-chips { margin-top: 36px; }
body.gv-pages .gvp-faq { margin-top: 76px; border-top: 1px solid var(--gv-line); }
body.gv-pages .gvp-faq details.wp-block-details { margin: 0; border-bottom: 1px solid var(--gv-line); }
body.gv-pages .gvp-faq summary { position: relative; display: block; list-style: none; padding: 21px 40px 21px 8px; font-size: 15px; font-weight: 400; line-height: 1.4; color: var(--gv-ink); cursor: pointer; }
body.gv-pages .gvp-faq summary::-webkit-details-marker { display: none; }
body.gv-pages .gvp-faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 13px; height: 13px; margin-top: -6px; background: linear-gradient(var(--gv-body), var(--gv-body)) center / 13px 1px no-repeat, linear-gradient(var(--gv-body), var(--gv-body)) center / 1px 13px no-repeat; }
body.gv-pages .gvp-faq details[open] summary::after { background: linear-gradient(var(--gv-body), var(--gv-body)) center / 13px 1px no-repeat; }
body.gv-pages .gvp-faq details > :not(summary) { padding: 0 8px 14px; font-size: 13px; line-height: 24px; color: var(--gv-body); }
body.gv-pages .gvp-faq details > p:last-child { padding-bottom: 26px; }
body.gv-pages .gvp-faq details > p.pn-note { margin: -8px 0 0; padding-top: 0; font-size: 12px; color: var(--gv-mute); }
body.gv-pages .gvp-faq summary:focus-visible { outline: 2px solid var(--gv-ink); outline-offset: -2px; }

body.gv-pages .gvp-notice { list-style: none; margin: 110px 0 0; padding: 0; border-top: 1px solid var(--gv-line); }
body.gv-pages .gvp-notice li { display: grid; grid-template-columns: 59px minmax(0, 1fr) auto; align-items: center; min-height: 57px; border-bottom: 1px solid var(--gv-line); }
body.gv-pages .gvp-notice__no { font-size: 14px; color: var(--gv-mute); }
body.gv-pages .gvp-notice__title { padding: 17px 16px 17px 0; font-size: 15px; line-height: 1.4; color: var(--gv-ink); text-decoration: none; }
body.gv-pages .gvp-notice__title:hover { text-decoration: underline; text-underline-offset: 4px; }
body.gv-pages .gvp-notice__date { font-size: 12px; color: var(--gv-mute); white-space: nowrap; }
body.gv-pages .gvp-pages ul { display: flex; justify-content: center; gap: 14px; margin: 40px 0 0; padding: 0; list-style: none; font-size: 13px; }
body.gv-pages .gvp-pages a, body.gv-pages .gvp-pages span { color: var(--gv-body); text-decoration: none; }
body.gv-pages .gvp-pages .current { color: var(--gv-ink); border-bottom: 1px solid var(--gv-ink); }

body.gv-pages .gvp-article { margin-top: 90px; border-top: 1px solid var(--gv-line); padding-top: 36px; }
body.gv-pages .gvp-article h2 { font-size: 20px; font-weight: 400; line-height: 1.4; color: var(--gv-ink); }
body.gv-pages .gvp-article__date { margin-top: 10px !important; font-size: 12px !important; color: var(--gv-mute) !important; }
body.gv-pages .gvp-article .gvp-plain { margin-top: 36px; max-width: none; }
body.gv-pages .gvp-article__back { margin-top: 56px !important; }
body.gv-pages .gvp-rows { margin: 90px 0 0; border-top: 1px solid var(--gv-line); }
body.gv-pages .gvp-rows > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); align-items: center; min-height: 57px; border-bottom: 1px solid var(--gv-line); }
body.gv-pages .gvp-rows dt { font-size: 13px; color: var(--gv-mute); }
body.gv-pages .gvp-rows dd { margin: 0; font-size: 14px; color: var(--gv-ink); }
body.gv-pages .gvp-rows a { color: var(--gv-ink); }

/* ── 검색 ── */
body.gv-pages .gvp--search { width: min(100% - 2 * var(--gv-margin), var(--gv-narrow)); padding-top: 190px; min-height: 60vh; }
body.gv-pages .gvp-search { position: relative; margin-top: 56px; }
body.gv-pages .gvp-search__row { display: flex; align-items: center; border-bottom: 1px solid var(--gv-line); }
body.gv-pages .gvp-search .pn-search__input { flex: 1; min-width: 0; height: 52px; padding: 0; border: 0 !important; border-radius: 0; background: transparent !important; box-shadow: none; outline: none; font: 400 15px/1.4 var(--gv-font); color: var(--gv-ink); }
body.gv-pages .gvp-search .pn-search__input::placeholder { color: var(--gv-mute); }
body.gv-pages .gvp-search .pn-search__input:focus { outline: none; border: 0 !important; }
body.gv-pages .gvp-search__row:focus-within { border-bottom-color: var(--gv-ink); }
body.gv-pages .gvp-search__go { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; padding: 0; border: 0; background: none; color: var(--gv-ink); cursor: pointer; }
body.gv-pages .gvp-search .pn-search__list { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; margin: 0; padding: 4px 0; border: 1px solid var(--gv-line); border-radius: 4px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.06); }
body.gv-pages .gvp-search .pn-search__list[hidden] { display: none; }
body.gv-pages .gvp-search .pn-search__list li[aria-selected="true"] .pn-search__item, body.gv-pages .gvp-search .pn-search__item:hover { background: var(--gv-fill); }
body.gv-pages .gvp-search .pn-search__item { font-family: var(--gv-font); }
body.gv-pages .gvp-search p.pn-search__status { margin: 10px 0 0; min-height: 1.5em; font-size: 12px; line-height: 1.5; color: var(--gv-mute); }
body.gv-pages .gvp-search__h2 { margin-top: 60px; }
body.gv-pages .gvp-search__cats { display: flex; flex-wrap: wrap; gap: 14px; margin: 22px 0 0; padding: 0; list-style: none; }
body.gv-pages .gvp-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 33px; padding: 0 28px; border-radius: 20px; background: var(--gv-fill); font-size: 12px; text-transform: uppercase; color: var(--gv-ink); text-decoration: none; }
body.gv-pages .gvp-pill:hover { background: #eaecee; }
@media (pointer: coarse) { body.gv-pages .gvp-pill { min-height: 44px; } }

/* ── 시안 줄바꿈 (2026-10-16) — 문단 안 <br class="gv-br-pc"> 는 PC(≥1024)에서만 꺾는다. 아래 1023 이하에서 숨겨 자연 줄흐름. ── */
/* Pet ID 2×2: 1024~1279 는 왼쪽 들여쓰기(91)를 빼 칸을 넓힌다 — 시안 03 의 가장 긴 줄(416)이 한 줄로 남게. 안내 알약(474)은 1052 이상부터 한 줄. */
@media (min-width: 1024px) and (max-width: 1279px) {
	body.gv-pages .gvp-secs--grid { padding-left: 0; }
}

/* ── 태블릿·모바일 ── */
@media (max-width: 1023px) {
	body.gv-pages .gv-br-pc { display: none; }
	body.gv-pages .gvp { padding-top: 96px; }
	body.gv-pages .gvp--about { grid-template-columns: 1fr; gap: 48px; }
	body.gv-pages .gvp-about__text { min-height: 0; }
	body.gv-pages .gvp-about__contact { margin-top: 40px !important; padding-top: 0; }
	body.gv-pages .gvp-about__photo { max-width: 557px; }
	body.gv-pages .gvp--petid .gvp-intro { padding-left: 0; }
	body.gv-pages .gvp-secs--grid { padding-left: 0; gap: 48px 24px; margin-top: 80px; }
	body.gv-pages .gvp-secs--grid .gvp-sec:nth-child(even) { padding-left: 0; }
	body.gv-pages .gvp-split { grid-template-columns: 1fr; gap: 64px; }
	body.gv-pages .gvp--vaccine .gvp-sec { margin-bottom: 72px; }
	body.gv-pages .gvp-seasons { gap: 160px; }
}
@media (max-width: 767px) {
	body.gv-pages .gvp { padding: 48px 0 80px; }
	body.gv-pages .gvp--collection { padding-top: 56px; }
	body.gv-pages .gvp--cs { padding-top: 56px; }
	body.gv-pages .gvp--search { padding-top: 72px; }
	body.gv-pages .gvp--season { padding-top: 56px; }
	body.gv-pages .gvp-h1 { font-size: 24px; }
	body.gv-pages .gvp--petid .gvp-head { grid-template-columns: 1fr; gap: 20px; margin-top: 40px; }
	body.gv-pages .gvp--petid .gvp-intro { padding-top: 0; }
	body.gv-pages .gvp-photo { margin-top: 36px; }
	body.gv-pages .gvp-photo img { aspect-ratio: 4 / 5; }
	body.gv-pages .gvp-secs--grid { grid-template-columns: 1fr; gap: 44px; margin-top: 56px; }
	body.gv-pages .gvp-split { margin-top: 40px; gap: 48px; }
	body.gv-pages .gvp--vaccine .gvp-intro { margin-top: 20px; }
	body.gv-pages .gvp--vaccine .gvp-sec { margin-bottom: 48px; }
	body.gv-pages .gvp-sec h2 { font-size: 18px; margin-bottom: 14px; }
	body.gv-pages .gvp-seasons { margin-top: 40px; gap: 80px; }
	body.gv-pages .gvp-hero { height: 300px; }
	body.gv-pages .gvp-hero__text { bottom: 13px; }
	body.gv-pages .gvp-hero__text h1 { font-size: 18px; }
	body.gv-pages .gvp-look .wp-block-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	body.gv-pages .gvp-row-head { margin-top: 80px; }
	body.gv-pages .gvp-cs-head .gv-chips { gap: 8px; margin-top: 28px; }
	body.gv-pages .gvp-cs-head .gv-chip { padding: 0 16px; }
	body.gv-pages .gvp-faq { margin-top: 44px; }
	body.gv-pages .gvp-faq summary { padding-block: 18px; }
	body.gv-pages .gvp-notice { margin-top: 56px; }
	body.gv-pages .gvp-notice li { grid-template-columns: 40px minmax(0, 1fr); }
	body.gv-pages .gvp-notice__date { grid-column: 2; padding-bottom: 14px; margin-top: -10px; }
	body.gv-pages .gvp-rows { margin-top: 56px; }
	body.gv-pages .gvp-rows > div { grid-template-columns: 110px minmax(0, 1fr); }
	body.gv-pages .gvp-search { margin-top: 36px; }
	body.gv-pages .gvp-search__h2 { margin-top: 44px; }
}
