/* 추석 캠페인 및 반응형 보완 */
:root { --gift-brown: #432a1a; --gift-gold: #c09968; }
[hidden] { display: none !important; }
.header-nav-list { gap: clamp(12px, 1.5vw, 30px); }
.header-nav-list .gift-nav-button { display:flex; align-items:center; justify-content:center; background:linear-gradient(120deg,#b99762,#8e6c3c); color:#fff; padding:0 24px; height:3.3125rem; border-radius:10px; white-space:nowrap; }
.header-nav-list .gift-nav-button:hover { color:#fff; background:#8e6c3c; }
@media (min-width:769px) {
 .bottom_fixed { position:fixed; right:3.5rem; top:38%; display:flex; flex-direction:column; gap:8px; z-index:9999; }
 .bottom_fixed .fb-btn { position:static; display:flex; flex-direction:column; align-items:center; justify-content:center; width:5.3125rem; height:5.3125rem; padding:10px 4px; border-radius:15px; box-shadow:0 5px 10px #0002; }
}
.fb-gift { background:linear-gradient(135deg,#b99762,#967443); color:#fff; gap:8px; font-size:13px; font-weight:700; }
.fb-gift img { width:30px; height:30px; object-fit:contain; }
.fb-gift .fb-text { color:#fff; white-space:nowrap; }
.campaign-slide { position:absolute; inset:0; display:flex; align-items:center; overflow:hidden; }
.campaign-original { display:contents; }
.hero.campaign-transitioning { overflow:hidden; }
.campaign-slide[data-campaign-slide="1"] { border-radius:1.875rem; }
.gift-hero-bg picture,.gift-hero-bg img { display:block; width:100%; height:100%; object-fit:cover; }
.gift-hero-bg .hero-overlay { background:linear-gradient(90deg,rgba(12,8,4,.66),rgba(12,8,4,.15) 47%,transparent 70%); }
.gift-hero-copy { position:absolute; top:25%; left:0; height:auto; gap:24px; }
.gift-hero-copy h1 { font:normal 800 3rem/3.875rem Pretendard,sans-serif; color:#fff; letter-spacing:-.03em; text-shadow:0 3px 10px #0000004d; }
.gift-hero-copy h1 span { display:block; font-weight:300; }
.gift-hero-copy .sub-title { font-size:1.25rem; line-height:2rem; }
.gift-hero-copy .btn-r { width:max-content; max-width:100%; padding:0 30px; white-space:nowrap; }
.campaign-controls { position:absolute; bottom:11%; left:6.25rem; z-index:3; display:flex; align-items:center; gap:12px; color:#fff; font-size:13px; }
.campaign-controls button { border:0; background:transparent; color:inherit; cursor:pointer; padding:8px; font-size:20px; }
.campaign-progress { width:100px; height:2px; background:#ffffff40; }
.campaign-progress span { display:block; width:100%; height:100%; background:#fff; transform:scaleX(0); transform-origin:left; }
.campaign-controls [data-campaign-pause] { font-size:13px; }
.gift-popup { position:fixed; inset:0; border:0; margin:auto; padding:0; width:min(650px,86vw,calc(100dvh - 140px)); max-width:none; max-height:calc(100dvh - 40px); overflow:visible; background:transparent; color:white; z-index:11000; }
.gift-popup::backdrop { background:rgba(0,0,0,.68); }
.gift-popup-image { display:block; }
.gift-popup-image img { display:block; width:100%; height:auto; }
.gift-popup-close { position:absolute; right:0; top:-36px; color:white; border:0; background:transparent; font-size:28px; cursor:pointer; width:36px; height:36px; }
.gift-popup-footer { background:#2d2018; display:flex; align-items:center; justify-content:space-between; padding:12px 16px; font-size:13px; }
.gift-popup-footer label { display:flex; gap:8px; align-items:center; cursor:pointer; }
.gift-popup-footer button { background:none; color:#fff; border:0; cursor:pointer; }
.chuseok-section { background:linear-gradient(180deg,#432a1a,#0d0906); padding:80px 3.5rem; margin-top:30px; color:#fff; scroll-margin-top:100px; }
.gift-inner { max-width:1430px; margin:0 auto; }
.gift-ornament { display:flex; align-items:center; justify-content:center; gap:20px; max-width:1820px; margin:0 auto 80px; }
.gift-ornament span { flex:1; height:1px; background:#9e8258; }
.gift-ornament img { width:37.5px; height:19.5px; object-fit:contain; }
.gift-ornament-bottom { margin:100px auto 0; }
.gift-mobile-break { display:none; }
.gift-heading { text-align:center; }
.gift-heading p { color:var(--gift-gold); font-size:20px; font-weight:600; line-height:31px; letter-spacing:-.03em; margin:20px 0 0; }
.gift-heading h2 { font-size:42px; font-weight:400; line-height:58px; letter-spacing:-.03em; margin:0; }
.gift-heading h2 strong { font-weight:700; }
.gift-tabs,.inquiry-tabs { display:flex; width:max-content; max-width:100%; padding:6px; border:1px solid #ffffff24; border-radius:100px; background:#ffffff1a; margin:48px auto 60px; gap:4px; }
.gift-tabs button,.inquiry-tabs button { cursor:pointer; background:none; border:0; border-radius:100px; padding:16px 32px; color:#c7b7ac; font-family:inherit; font-size:20px; font-weight:600; white-space:nowrap; }
.gift-tabs { margin:32px auto 110px; }
.gift-tabs button { font-size:16px; padding:14px 30px; }
.gift-tabs button[aria-selected="true"] { background:linear-gradient(110deg,#a07c54,#c09968); color:#fff; }
.gift-group-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; gap:12px; }
.gift-group-heading h3 { font-size:32px; color:var(--gift-gold); font-weight:600; white-space:nowrap; }
.gift-group-heading img { width:auto; height:76px; max-width:55%; object-fit:contain; opacity:.2; }
.gift-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.gift-card { background:#fff; border:1px solid #f0f0f0; border-radius:20px; padding:15px; display:grid; grid-template-columns:minmax(0,1.03fr) minmax(0,1fr); gap:16px 30px; color:#000; align-content:start; }
.gift-card-image { grid-row:1 / span 2; display:flex; align-self:start; border:1px solid #f0f0f0; border-radius:15px; overflow:hidden; background:white; }
.gift-card-image img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.gift-card-copy { min-width:0; }
.gift-card-copy h4 { margin:16px 0 10px; font-size:24px; font-weight:700; line-height:29px; letter-spacing:-.03em; word-break:keep-all; overflow-wrap:anywhere; }
.gift-price { display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin:0; line-height:1.45; color:#df2530; }
.gift-price del { color:#a8a8a8; font-size:16px; text-decoration-color:#df2530; }
.gift-price strong { font-size:20px; font-weight:700; line-height:23px; letter-spacing:-.03em; white-space:nowrap; }
.gift-composition { border-top:1px solid #eee; margin:18px 0 0; padding-top:18px; font-size:15px; line-height:1.65; word-break:keep-all; overflow-wrap:anywhere; }
.gift-spec { grid-column:2; align-self:start; display:grid; grid-template-columns:30% 1fr; gap:7px 12px; margin:0; background:#f9f9f9; border:1px solid #f0f0f0; padding:14px; border-radius:10px; font-size:14px; line-height:1.4; }
.gift-spec dt { font-weight:600; }
.gift-spec dd { margin:0; color:#000; font-weight:300; }
.gift-section-cta { display:flex; align-items:center; justify-content:center; gap:24px; width:max-content; max-width:100%; margin:50px auto 0; border:1px solid #b99762; color:#fff; border-radius:50px; padding:18px 36px; font-size:18px; }
.gift-section-cta:hover { background:#b99762; }
.gift-catalog-group + .gift-catalog-group { margin-top:28px; }
.product-card:has([data-product-panel="chuseok"].product-panel-active) { height:36.25rem; padding:20px; overflow:hidden; }
[data-product-panel="chuseok"].product-panel-active { display:block; height:100%; min-width:0; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-gutter:stable; scrollbar-width:thin; scrollbar-color:#a28b72 #f3f0ed; padding-right:10px; }
.gift-catalog-group > h3 { background:#3c291f; color:#fff; text-align:center; border-radius:6px; padding:15px; font-size:20px; margin-bottom:15px; }
.gift-catalog-group .gift-card { border-radius:12px; }
.gift-catalog-group .gift-card-copy h4 { font-size:20px; line-height:24px; }
.gift-catalog-group .gift-price strong { font-size:17px; line-height:20px; }
.gift-catalog-group .gift-spec { font-size:13px; }
.contact { height:auto; min-height:79.1875rem; padding-bottom:100px; transition:background-color .2s; }
.contact.gift-contact { background:#432a1a; }
.contact.gift-contact .title-label-white { color:#b99762; }
.contact .contact-title-wrap { margin-bottom:30px; }
.inquiry-tabs { margin:0 auto 45px; }
.inquiry-tabs button { color:#ffffff85; font-size:18px; }
.inquiry-tabs button[aria-selected="true"] { background:#fff; color:#d3131a; }
.gift-contact .inquiry-tabs button[aria-selected="true"] { background:#b99762; color:#fff; }
.gift-contact .contact-field { background:#ffffff1a; }
.gift-contact .contact-agree-check:checked + .contact-agree-box { background:#b99762; border-color:#b99762; }
.gift-contact .contact-submit { background:#161616; }
#gift-inquiry-form .contact-agree { position:relative; }
#gift-inquiry-form .contact-agree-check { display:block; position:absolute; left:0; width:24px; height:24px; opacity:0; cursor:pointer; }
#gift-inquiry-form .contact-agree-check:focus-visible + .contact-agree-box { outline:3px solid #b99762; outline-offset:3px; }
.gift-contact .contact-field-label { min-width:110px; }
.gift-contact input[type="number"] { appearance:textfield; }
.gift-form-error { color:#fff; line-height:1.5; }
.campaign-controls button:focus-visible,.gift-section button:focus-visible,.gift-popup button:focus-visible,.media-video-open:focus-visible,.media-player-close:focus-visible,.inquiry-tabs button:focus-visible { outline:3px solid #b99762; outline-offset:4px; }
@media (max-width:1500px) and (min-width:1025px) {
 .header-nav-list { gap:14px; }
 .header-nav-list .nav-text { font-size:13px; }
 .header-nav-list .nav-btn,.header-nav-list .gift-nav-button { min-width:0; padding:0 14px; }
}
@media (max-width:1024px) {
 .gift-card { gap:12px; padding:14px; }
 .gift-card-copy h4 { font-size:18px; }
 .gift-price strong { font-size:18px; }
 .gift-price del { font-size:13px; }
 .gift-composition { font-size:13px; }
}
@media (max-width:768px) {
 /* 모바일 두 배너는 추석 디자인의 동일한 세로 비율을 공유합니다. */
 .hero { height:auto; aspect-ratio:345/712; }
 .bottom_fixed .fb-inquiry { display:none; }
 .bottom_fixed .fb-gift { position:fixed; top:auto; right:.9375rem; bottom:8.625rem; display:flex; flex-direction:column; align-items:center; justify-content:center; width:3.4375rem; height:3.4375rem; padding:0; gap:4px; border-radius:.9375rem; box-shadow:0 .3125rem .625rem #00000029; z-index:999999; text-decoration:none; }
 .bottom_fixed .fb-gift .fb-text { font-size:9px; line-height:12px; font-weight:700; letter-spacing:-.03em; }
 .campaign-slide { align-items:flex-end; }
 .campaign-slide[data-campaign-slide="1"] { border-radius:1.25rem; }
 .gift-hero-bg img { object-position:center top; }
 .gift-hero-bg .hero-overlay { background:linear-gradient(0deg,#24190f 0%,rgba(36,25,15,.95) 18%,rgba(36,25,15,.4) 40%,transparent 65%); opacity:1; }
 .gift-hero-copy { position:absolute; top:auto; bottom:0; height:auto; padding:28px 20px 104px; gap:12px; }
 .gift-hero-copy h1 { margin:0; font-size:clamp(20px,6.4vw,26px); line-height:1.3333; letter-spacing:-.03em; }
 .gift-hero-copy .sub-title { margin:0 0 12px; font-size:14px; line-height:22px; letter-spacing:-.03em; }
 .gift-hero-copy .btn-r { height:42px; padding:0 20px; font-size:14px; line-height:18px; }
 .campaign-controls { left:14px; bottom:40px; font-size:12px; gap:6px; }
 /* 상담 버튼 아래에 배너 조작 영역을 확보합니다. 영상 배경 크기는 유지합니다. */
 .campaign-original .hero-content { padding-bottom:100px; }
 .campaign-controls button { padding:6px; }
 .campaign-progress { width:80px; }
 .fb-gift img { width:24px; height:24px; }
 .chuseok-section { padding:36px 14px; margin-top:0; scroll-margin-top:70px; }
 .gift-ornament { gap:24px; margin:0 4px 50px; }
 .gift-ornament img { width:25px; height:14px; }
 .gift-ornament-bottom { margin:40px 4px 0; }
 .gift-mobile-break { display:initial; }
 .gift-heading p { font-size:15px; margin:18px 0 0; line-height:1.6; }
 .gift-heading h2 { font-size:24px; line-height:32px; }
 .gift-tabs { margin:28px auto 44px; gap:0; padding:4px; }
 .gift-tabs button { font-size:15px; padding:11px 18px; }
 .gift-group-heading { margin-bottom:20px; }
 .gift-group-heading h3 { font-size:20px; }
 .gift-group-heading img { height:37px; }
 .gift-grid { grid-template-columns:1fr; gap:16px; }
 .gift-card { padding:10px; gap:14px 16px; border-radius:12px; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); }
 .gift-card-image { grid-row:auto; border-radius:6px; }
 .gift-card-copy h4 { font-size:16px; line-height:1.35; margin:6px 0; }
 .gift-price { gap:3px; }
 .gift-price strong { font-size:16px; line-height:19px; }
 .gift-price del { font-size:12px; }
 .gift-composition { margin-top:14px; padding-top:14px; font-size:12px; line-height:1.65; }
 .gift-spec { grid-column:1/-1; grid-template-columns:30% 1fr; padding:10px; font-size:11px; gap:5px 12px; border-radius:5px; }
 .gift-section-cta { font-size:15px; padding:14px 25px; margin-top:30px; }
 .gift-catalog-group > h3 { font-size:16px; padding:10px; }
 .gift-catalog-group .gift-card { gap:12px; }
 .gift-catalog-group .gift-card-copy h4 { font-size:16px; line-height:20px; }
 .gift-catalog-group .gift-price strong { font-size:16px; line-height:19px; }
 .gift-catalog-group .gift-spec { font-size:11px; }
 .product-card:has([data-product-panel="chuseok"].product-panel-active) { height:min(48rem,75svh); min-height:360px; padding:12px; }
 [data-product-panel="chuseok"].product-panel-active { padding-right:4px; }
 .contact { min-height:0; padding-bottom:65px; }
 .contact .contact-inner { width:100%; padding:0 14px; }
 .contact .contact-form,.contact .contact-field { width:100%; }
 .contact .contact-title-wrap { margin-bottom:24px; }
 .inquiry-tabs { margin:0 auto 34px; padding:4px; gap:0; }
 .inquiry-tabs button { font-size:14px; padding:12px 15px; }
 .gift-contact .contact-field-label { min-width:75px; }
 .gift-popup-footer { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .contact { transition:none; } }

/* 생산 현장 영상: 화면 높이에 맞춰 축소하되 항상 16:9 전체 프레임 유지 */
.sticky-hero { --quality-top:6.25rem; --quality-video-height:calc(100svh - var(--quality-top) - 260px); }
.sticky-hero-sticky { top:var(--quality-top); height:calc(100svh - var(--quality-top)); min-height:0; }
.sticky-hero-layer { height:100%; }
.sticky-panel-video { height:100%; padding:24px 20px 90px; }
.sticky-panel-video .sticky-badge-pill { margin-bottom:16px; flex-shrink:0; }
.sticky-panel-video .sticky-title { font-size:clamp(24px,2vw,36px); line-height:1.4; flex-shrink:0; }
.sticky-panel-video .sticky-video-card { width:min(1170px,100%,calc(var(--quality-video-height) * 16 / 9)); max-width:100%; height:auto; min-height:0; aspect-ratio:16/9; margin-top:24px; flex-shrink:0; }
.sticky-video-card-body { position:relative; width:100%; height:100%; aspect-ratio:16/9; }
.sticky-video-card-body .frame-fit-width { position:absolute; inset:0; width:100%; height:100% !important; min-height:0; display:block; border:0; }

/* iframe에 마우스 입력을 빼앗기지 않는 영상 카드 */
.media-swiper { touch-action:pan-y; }
.media-card-overlay iframe { pointer-events:none; }
.media-video-open { position:absolute; inset:0; width:100%; height:100%; z-index:3; padding:0; border:0; background:transparent; cursor:grab; touch-action:pan-y; }
.media-video-open:active { cursor:grabbing; }
.media-video-open > span { position:absolute; top:20px; right:20px; width:44px; height:44px; display:grid; place-items:center; padding-left:3px; border-radius:50%; color:#fff; background:#0008; border:1px solid #fff8; font-size:16px; }
.media-player-dialog { position:fixed; inset:0; margin:auto; padding:0; border:0; width:min(440px,calc((100svh - 90px) * 9 / 16),90vw); height:auto; aspect-ratio:9/16; background:#000; border-radius:14px; overflow:visible; }
.media-player-dialog::backdrop { background:#000c; }
.media-player-dialog iframe { display:block; width:100%; height:100%; aspect-ratio:9/16; border:0; border-radius:14px; }
.media-player-close { position:absolute; top:-40px; right:0; border:0; width:36px; height:36px; background:none; color:#fff; font-size:32px; cursor:pointer; }

/* Production Process 연결선과 문구를 실제 마크업으로 구현 */
.process-card { width:100%; }
.process-arrow { display:block; height:auto; margin-top:40px; }
.process-connections { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; height:52px; }
.process-connections::before { content:""; position:absolute; bottom:0; left:calc((100% - 3rem) / 8); right:calc((100% - 3rem) / 8); border-bottom:2px dotted #999; }
.process-connections span { position:relative; }
.process-connections span::before { content:""; position:absolute; top:0; bottom:0; left:50%; border-left:2px dotted #999; }
.process-connections span::after { content:""; position:absolute; left:calc(50% - 2px); top:0; width:6px; height:6px; border-radius:50%; background:#333; }
.process-outcomes { position:relative; display:flex; justify-content:center; gap:16px; list-style:none; padding:0; margin:32px 0 0; }
.process-outcomes::before { content:""; position:absolute; left:50%; height:20px; top:-32px; border-left:2px dotted #999; }
.process-outcomes li { background:#232323; color:#fff; font-size:22px; font-weight:600; line-height:1.4; letter-spacing:-.03em; padding:10px 24px; border-radius:100px; white-space:nowrap; }
@media (max-width:1024px) and (min-width:769px) {
 .sticky-hero { --quality-top:5rem; }
 .product-card:has([data-product-panel="chuseok"].product-panel-active) { height:48rem; }
}
@media (max-width:768px) {
 .sticky-hero { --quality-top:3.75rem; --quality-video-height:calc(100svh - var(--quality-top) - 260px); height:300svh; }
 .sticky-hero-sticky { position:sticky; top:var(--quality-top); height:calc(100svh - var(--quality-top)); min-height:0; flex-shrink:0; padding:0; }
 .sticky-hero-layer { height:100%; padding:0; }
 .sticky-panel-hero { display:flex; }
 .sticky-panel-video { position:absolute; inset:0; height:100%; padding:24px 15px 90px; }
 .sticky-panel-video .sticky-title { font-size:24px; line-height:1.4; }
 .sticky-panel-video .sticky-video-card { width:min(100%,calc(var(--quality-video-height) * 16 / 9)); margin-top:28px; }
 .process-arrow { margin-top:24px; }
 .process-connections { grid-template-columns:repeat(2,1fr); gap:.625rem; height:34px; }
 .process-connections::before { left:calc((100% - .625rem) / 4); right:calc((100% - .625rem) / 4); }
 .process-connections span:nth-child(n+3) { display:none; }
 .process-outcomes { gap:10px; margin-top:30px; }
 .process-outcomes::before { top:-30px; height:20px; }
 .process-outcomes li { font-size:clamp(12px,3.4vw,16px); padding:10px 14px; }
}
