/* ==========================================================================
   THEONE F&D — 사이트 공통 디자인 (rem 기준, 1rem = 16px)
   PC > 1024px / 태블릿 768~1024px / 모바일 ≤ 767px
   ========================================================================== */
:root{
  --tf-green:#0F5132; --tf-green-d:#0A3B24; --tf-green-l:#E7F0EA;
  --tf-gold:#C9A96A; --tf-gold-d:#9A7B3F; --tf-gold-l:#F4ECDD;
  --tf-ivory:#FAFAF7; --tf-beige:#EDE4DB; --tf-beige-l:#F5F0EA;
  --tf-text:#222222; --tf-body:#4A4F55; --tf-muted:#7A7F86; --tf-line:#E6E1D9; --tf-white:#fff;
  --tf-radius:1rem; --tf-radius-s:.625rem;
  --tf-shadow:0 .75rem 2rem rgba(15,81,50,.08);
  --tf-font:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;
  --tf-serif:"Cormorant Garamond","Times New Roman",serif;
  --tf-pad-x:2rem; --tf-sec-y:7rem;
}
@media (max-width:1024px){ :root{ --tf-pad-x:2rem; --tf-sec-y:5.5rem; } }
@media (max-width:767px){ :root{ --tf-pad-x:1.25rem; --tf-sec-y:4.5rem; } }

/* 기본 글꼴 */
body, body .elementor-widget-text-editor, body .elementor-heading-title, body button, body input, body textarea, body select,
.uicore-navbar, .uicore-menu, .uicore-mobile-menu-wrapper { font-family:var(--tf-font) !important; }
body{ color:var(--tf-body); background:var(--tf-ivory); word-break:keep-all; -webkit-font-smoothing:antialiased; }

/* ───── 레이아웃 ───── */
.tf-wrap{ width:100%; max-width:calc(75rem + var(--tf-pad-x)*2); margin:0 auto; padding:0 var(--tf-pad-x); box-sizing:border-box; }
.tf-sec{ padding:var(--tf-sec-y) 0; position:relative; }
.tf-sec--ivory{ background:var(--tf-ivory); } .tf-sec--white{ background:#fff; } .tf-sec--beige{ background:var(--tf-beige); }
.tf-sec--beige-l{ background:var(--tf-beige-l); } .tf-sec--green{ background:var(--tf-green); color:#fff; }
/* Elementor 컨테이너를 섹션으로 쓸 때 */
.e-con.tf-sec{ --padding-top:var(--tf-sec-y); --padding-bottom:var(--tf-sec-y); --padding-left:0px; --padding-right:0px; }
.e-con.tf-sec > .e-con-inner{ max-width:calc(75rem + var(--tf-pad-x)*2) !important; padding-left:var(--tf-pad-x) !important; padding-right:var(--tf-pad-x) !important; box-sizing:border-box; }
.e-con.tf-flush{ --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px; --gap:0px; }
.elementor-widget-html.tf-full > .elementor-widget-container{ width:100%; }

/* ───── 타이포 ───── */
.tf-eyebrow, .tf-eb .elementor-heading-title{ display:block; margin:0 0 1rem; font-family:var(--tf-font) !important; font-size:.8125rem !important; font-weight:700 !important; letter-spacing:.18em; text-transform:uppercase; color:var(--tf-gold-d) !important; line-height:1.3 !important; }
.tf-eyebrow--light, .tf-eb--light .elementor-heading-title{ color:var(--tf-gold) !important; }
.tf-h2, .tf-h .elementor-heading-title{ margin:0 0 1.25rem; font-size:2.5rem !important; font-weight:700 !important; line-height:1.3 !important; letter-spacing:-.02em; color:var(--tf-text) !important; text-wrap:balance; }
.tf-h--light .elementor-heading-title, .tf-h2--light{ color:#fff !important; }
.tf-lead, .tf-lead p, .tf-lead-w, .tf-lead-w p{ font-size:1.25rem !important; line-height:1.75 !important; color:var(--tf-body); margin:0; }
.tf-lead-w--light, .tf-lead-w--light p{ color:rgba(255,255,255,.82) !important; }
.tf-body, .tf-body p{ font-size:1.125rem; line-height:1.8; color:var(--tf-body); }
.tf-serif{ font-family:var(--tf-serif) !important; font-weight:600; letter-spacing:.01em; }
.tf-center{ text-align:center; } .tf-center .tf-lead{ margin-left:auto; margin-right:auto; }
.tf-head{ margin:0 0 3rem; max-width:48rem; } .tf-head.tf-center{ margin-left:auto; margin-right:auto; }
.tf-head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin:0 0 3rem; }
.tf-head-row .tf-head{ margin:0; }
@media (max-width:1024px){ .tf-h2, .tf-h .elementor-heading-title{ font-size:2.25rem !important; } .tf-lead, .tf-lead p, .tf-lead-w, .tf-lead-w p{ font-size:1.125rem !important; } .tf-body, .tf-body p{ font-size:1rem; } }
@media (max-width:767px){
  .tf-h2, .tf-h .elementor-heading-title{ font-size:1.75rem !important; }
  .tf-lead, .tf-lead p, .tf-lead-w, .tf-lead-w p{ font-size:1rem !important; }
  .tf-eyebrow, .tf-eb .elementor-heading-title{ font-size:.75rem !important; }
  .tf-head{ margin-bottom:2.5rem; } .tf-head-row{ display:block; margin-bottom:2.5rem; } .tf-head-row .tf-btn{ margin-top:1.5rem; }
  .tf-m-center{ text-align:center; } .tf-m-center .tf-lead{ margin-left:auto; margin-right:auto; }
}

/* ───── 버튼 ───── */
.tf-btns{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2.25rem; }
.tf-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:3.375rem; padding:0 1.75rem; border-radius:.5rem; font-size:1rem; font-weight:700; line-height:1; text-decoration:none !important; border:1px solid transparent; transition:background .25s,color .25s,border-color .25s,transform .25s; box-sizing:border-box; white-space:nowrap; }
.tf-btn:hover{ transform:translateY(-2px); }
.tf-btn--green{ background:var(--tf-green); color:#fff !important; } .tf-btn--green:hover{ background:var(--tf-green-d); }
.tf-btn--gold{ background:var(--tf-gold); color:var(--tf-green-d) !important; } .tf-btn--gold:hover{ background:#D8BC85; }
.tf-btn--line{ background:transparent; border-color:var(--tf-green); color:var(--tf-green) !important; } .tf-btn--line:hover{ background:var(--tf-green); color:#fff !important; }
.tf-btn--white{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff !important; } .tf-btn--white:hover{ background:#fff; color:var(--tf-green) !important; }
@media (max-width:767px){ .tf-btns{ flex-direction:column; } .tf-btn{ width:100%; min-height:3.25rem; } }

/* ───── 사진 자리표시 ───── */
.tf-ph{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; width:100%; height:100%; min-height:100%; background:repeating-linear-gradient(135deg,#EFE7DD 0 14px,#ECE3D8 14px 28px); color:#A6927A; text-align:center; }
.tf-ph svg{ width:2rem; height:2rem; } .tf-ph em{ font-style:normal; font-size:.8125rem; font-weight:600; letter-spacing:.02em; padding:0 1rem; line-height:1.5; }
.tf-ph--dark{ background:linear-gradient(135deg,#123F2A,#0A3B24); color:rgba(255,255,255,.55); }
.tf-media{ position:relative; overflow:hidden; border-radius:var(--tf-radius); aspect-ratio:4/3; background:var(--tf-beige); }
.tf-media > img, .tf-media > .tf-ph{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tf-media--wide{ aspect-ratio:16/9; } .tf-media--tall{ aspect-ratio:4/5; } .tf-media--sq{ aspect-ratio:1/1; }

/* ───── 메인 히어로 ───── */
.tf-hero{ position:relative; min-height:min(52rem,100vh); display:flex; align-items:center; overflow:hidden; color:#fff;
  background:radial-gradient(120% 80% at 85% 20%,rgba(201,169,106,.22),transparent 55%),radial-gradient(90% 70% at 10% 90%,rgba(255,255,255,.06),transparent 60%),linear-gradient(160deg,#0F5132 0%,#0B4129 55%,#08311F 100%); }
.tf-hero::after{ content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px); background-size:1.5rem 1.5rem; mask-image:linear-gradient(90deg,transparent,#000 60%); pointer-events:none; }
.tf-hero-bg{ position:absolute; inset:0; z-index:0; } .tf-hero-bg img{ width:100%; height:100%; object-fit:cover; } .tf-hero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,49,31,.88) 0%,rgba(8,49,31,.55) 55%,rgba(8,49,31,.25) 100%); }
.tf-hero .tf-wrap{ position:relative; z-index:1; padding-top:9rem; padding-bottom:7rem; }
.tf-hero-slogan{ margin:0 0 1.75rem; font-family:var(--tf-serif) !important; font-size:clamp(3rem,6.2vw,5.75rem); font-weight:600; line-height:.98; letter-spacing:-.005em; color:#fff; }
.tf-hero-slogan span{ color:var(--tf-gold); font-style:italic; }
.tf-hero-ko{ margin:0 0 1rem; font-size:1.75rem; font-weight:700; line-height:1.45; color:#fff; letter-spacing:-.02em; }
.tf-hero-sub{ margin:0; max-width:36rem; font-size:1.125rem; line-height:1.8; color:rgba(255,255,255,.78); }
.tf-hero-badges{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:2.75rem; }
.tf-hero-badges span{ padding:.5rem .875rem; border:1px solid rgba(255,255,255,.25); border-radius:2rem; font-size:.875rem; color:rgba(255,255,255,.85); }
.tf-hero-scroll{ position:absolute; left:50%; bottom:2rem; z-index:1; transform:translateX(-50%); font-size:.75rem; letter-spacing:.2em; color:rgba(255,255,255,.55); }
@media (max-width:1024px){ .tf-hero{ min-height:44rem; } .tf-hero-ko{ font-size:1.5rem; } }
@media (max-width:767px){ .tf-hero{ min-height:40rem; text-align:center; } .tf-hero .tf-wrap{ padding-top:7.5rem; padding-bottom:5rem; } .tf-hero-slogan{ font-size:2.75rem; line-height:1.02; } .tf-hero-ko{ font-size:1.25rem; } .tf-hero-sub{ font-size:1rem; margin:0 auto; } .tf-hero-badges{ justify-content:center; } .tf-hero-scroll{ display:none; } }

/* ───── 숫자 ───── */
.tf-stats{ display:grid; grid-template-columns:repeat(5,1fr); background:#fff; border-radius:var(--tf-radius); box-shadow:var(--tf-shadow); margin-top:-4rem; position:relative; z-index:2; }
.tf-stat{ padding:2.25rem 1rem; text-align:center; position:relative; }
.tf-stat + .tf-stat::before{ content:""; position:absolute; left:0; top:28%; bottom:28%; width:1px; background:var(--tf-line); }
.tf-stat b{ display:block; font-size:2.5rem; font-weight:800; line-height:1.1; color:var(--tf-green); letter-spacing:-.02em; }
.tf-stat b small{ font-size:1.25rem; font-weight:700; margin-left:.125rem; }
.tf-stat span{ display:block; margin-top:.625rem; font-size:.9375rem; color:var(--tf-muted); line-height:1.5; }
@media (max-width:1024px){ .tf-stats{ grid-template-columns:repeat(3,1fr); } .tf-stat:nth-child(4)::before{ display:none; } .tf-stat b{ font-size:2.125rem; } }
@media (max-width:767px){ .tf-stats{ grid-template-columns:repeat(2,1fr); margin-top:-3rem; } .tf-stat{ padding:1.5rem .5rem; } .tf-stat:nth-child(odd)::before{ display:none; } .tf-stat:nth-child(4)::before{ display:block; } .tf-stat:last-child{ grid-column:1/-1; border-top:1px solid var(--tf-line); } .tf-stat:last-child::before{ display:none; } .tf-stat b{ font-size:1.875rem; } .tf-stat span{ font-size:.875rem; } }

/* ───── 카드 그리드 ───── */
.tf-grid{ display:grid; gap:1.5rem; } .tf-grid--2{ grid-template-columns:repeat(2,1fr); } .tf-grid--3{ grid-template-columns:repeat(3,1fr); } .tf-grid--4{ grid-template-columns:repeat(4,1fr); } .tf-grid--5{ grid-template-columns:repeat(5,1fr); } .tf-grid--6{ grid-template-columns:repeat(6,1fr); }
@media (max-width:1024px){ .tf-grid--3,.tf-grid--4,.tf-grid--5,.tf-grid--6{ grid-template-columns:repeat(2,1fr); } .tf-grid--6.tf-grid--t3{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px){ .tf-grid{ gap:1rem; } .tf-grid--2,.tf-grid--3,.tf-grid--4,.tf-grid--5,.tf-grid--6,.tf-grid--6.tf-grid--t3{ grid-template-columns:1fr; } .tf-grid--m2{ grid-template-columns:repeat(2,1fr) !important; } }

.tf-card{ position:relative; background:#fff; border:1px solid var(--tf-line); border-radius:var(--tf-radius); padding:2.25rem 2rem; transition:transform .3s,box-shadow .3s,border-color .3s; height:100%; box-sizing:border-box; }
.tf-card:hover{ transform:translateY(-4px); box-shadow:var(--tf-shadow); border-color:transparent; }
.tf-card--flat:hover{ transform:none; box-shadow:none; border-color:var(--tf-line); }
.tf-card-num{ display:block; margin:0 0 1.25rem; font-size:.875rem; font-weight:700; color:var(--tf-gold-d); letter-spacing:.08em; }
.tf-card-label{ display:block; margin:0 0 .625rem; font-size:.75rem; font-weight:700; letter-spacing:.16em; color:var(--tf-gold-d); }
.tf-card h3{ margin:0 0 .75rem; font-size:1.375rem; font-weight:700; line-height:1.4; color:var(--tf-text); letter-spacing:-.01em; }
.tf-card p{ margin:0; font-size:1.0625rem; line-height:1.75; color:var(--tf-body); }
.tf-card-link{ display:inline-flex; margin-top:1.5rem; font-size:.9375rem; font-weight:700; color:var(--tf-green) !important; text-decoration:none !important; }
.tf-ico{ display:inline-flex; align-items:center; justify-content:center; width:3.5rem; height:3.5rem; margin:0 0 1.5rem; border-radius:50%; background:var(--tf-green-l); color:var(--tf-green); }
.tf-ico svg{ width:1.625rem; height:1.625rem; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.tf-ico--gold{ background:var(--tf-gold-l); color:var(--tf-gold-d); }
@media (max-width:767px){ .tf-card{ padding:1.75rem 1.5rem; } .tf-card h3{ font-size:1.1875rem; } .tf-card p{ font-size:1rem; } .tf-ico{ width:3rem; height:3rem; margin-bottom:1.25rem; } }

/* 사진 카드 (사업 영역) */
.tf-pcard2{ display:flex; flex-direction:column; background:#fff; border-radius:var(--tf-radius); overflow:hidden; border:1px solid var(--tf-line); text-decoration:none !important; height:100%; transition:transform .3s,box-shadow .3s; }
.tf-pcard2:hover{ transform:translateY(-4px); box-shadow:var(--tf-shadow); }
.tf-pcard2 .tf-media{ border-radius:0; aspect-ratio:4/3; }
.tf-pcard2-body{ padding:1.75rem 1.75rem 2rem; } .tf-pcard2-body h3{ margin:.25rem 0 .625rem; font-size:1.3125rem; font-weight:700; color:var(--tf-text); }
.tf-pcard2-body p{ margin:0; font-size:1rem; line-height:1.7; color:var(--tf-body); }

/* ───── 가치 3원형 ───── */
.tf-values{ display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; text-align:center; }
.tf-value-c{ display:inline-flex; align-items:center; justify-content:center; width:8.5rem; height:8.5rem; margin:0 0 1.75rem; border-radius:50%; background:var(--tf-green); color:var(--tf-gold); box-shadow:0 0 0 .5rem var(--tf-green-l); }
.tf-value-c svg{ width:3rem; height:3rem; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.tf-value h3{ margin:0 0 .25rem; font-family:var(--tf-serif) !important; font-size:2rem; font-weight:600; color:var(--tf-green); }
.tf-value small{ display:block; margin:0 0 .875rem; font-size:.875rem; font-weight:700; color:var(--tf-gold-d); letter-spacing:.06em; }
.tf-value p{ margin:0 auto; max-width:20rem; font-size:1.0625rem; line-height:1.75; color:var(--tf-body); }
@media (max-width:767px){ .tf-values{ grid-template-columns:1fr; gap:2.75rem; } .tf-value-c{ width:6.5rem; height:6.5rem; } .tf-value-c svg{ width:2.5rem; height:2.5rem; } .tf-value h3{ font-size:1.75rem; } }

/* ───── 납품처 ───── */
.tf-logos{ display:grid; grid-template-columns:repeat(7,1fr); gap:.75rem; }
.tf-logo{ display:flex; align-items:center; justify-content:center; min-height:5.5rem; padding:1rem; background:#fff; border:1px solid var(--tf-line); border-radius:var(--tf-radius-s); font-size:1rem; font-weight:700; color:#6B6258; text-align:center; }
.tf-logo img{ max-width:80%; max-height:3rem; object-fit:contain; filter:grayscale(1); opacity:.8; transition:.3s; } .tf-logo:hover img{ filter:none; opacity:1; }
@media (max-width:1024px){ .tf-logos{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:767px){ .tf-logos{ grid-template-columns:repeat(2,1fr); } .tf-logo{ min-height:4.25rem; font-size:.9375rem; } }

/* ───── 공정 단계 ───── */
.tf-steps{ display:grid; grid-template-columns:repeat(6,1fr); gap:1rem; counter-reset:s; }
.tf-step{ position:relative; background:#fff; border-radius:var(--tf-radius); padding:2rem 1.5rem 2.25rem; border-top:3px solid var(--tf-gold); box-shadow:0 .25rem 1rem rgba(15,81,50,.04); }
.tf-step-n{ display:flex; align-items:center; justify-content:center; width:2.75rem; height:2.75rem; margin:0 0 1.25rem; border-radius:50%; background:var(--tf-green); color:#fff; font-size:.9375rem; font-weight:700; }
.tf-step h3{ margin:0 0 .625rem; font-size:1.25rem; font-weight:700; color:var(--tf-text); }
.tf-step p{ margin:0; font-size:1rem; line-height:1.7; color:var(--tf-body); }
@media (max-width:1024px){ .tf-steps{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px){ .tf-steps{ grid-template-columns:1fr; gap:.75rem; } .tf-step{ display:grid; grid-template-columns:2.75rem 1fr; column-gap:1rem; padding:1.5rem 1.25rem; border-top:0; border-left:3px solid var(--tf-gold); } .tf-step-n{ margin:0; grid-row:1 / span 2; } .tf-step h3{ font-size:1.125rem; margin:.5rem 0 .375rem; } }
.tf-terms{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1rem; }
.tf-term{ background:rgba(255,255,255,.65); border-radius:var(--tf-radius-s); padding:1.5rem; }
.tf-term h4{ margin:0 0 .5rem; font-size:1.0625rem; font-weight:700; color:var(--tf-green); } .tf-term p{ margin:0; font-size:.9375rem; line-height:1.7; color:var(--tf-body); }
@media (max-width:1024px){ .tf-terms{ grid-template-columns:repeat(2,1fr); } } @media (max-width:767px){ .tf-terms{ grid-template-columns:1fr; } }

/* ───── 2단 분할 ───── */
.tf-split{ display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.tf-split--55{ grid-template-columns:5fr 6fr; } .tf-split--top{ align-items:start; }
@media (max-width:1024px){ .tf-split, .tf-split--55{ grid-template-columns:1fr; gap:3rem; } }
.tf-chips{ display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; margin:2rem 0; }
.tf-chip{ padding:1.25rem 1rem; background:#fff; border:1px solid var(--tf-line); border-radius:var(--tf-radius-s); }
.tf-chip b{ display:block; font-size:1.125rem; color:var(--tf-text); } .tf-chip span{ display:block; margin-top:.25rem; font-size:.75rem; font-weight:700; letter-spacing:.12em; color:var(--tf-gold-d); }
@media (max-width:767px){ .tf-chips{ grid-template-columns:repeat(2,1fr); } }
.tf-quote{ margin:0; padding:1.25rem 1.5rem; border-left:3px solid var(--tf-gold); background:#fff; border-radius:0 var(--tf-radius-s) var(--tf-radius-s) 0; font-size:.9375rem; line-height:1.8; color:var(--tf-body); }
.tf-list{ list-style:none; margin:1.5rem 0 0; padding:0; } .tf-list li{ position:relative; padding:.75rem 0 .75rem 1.75rem; border-bottom:1px solid var(--tf-line); font-size:1.0625rem; color:var(--tf-body); line-height:1.6; }
.tf-list li::before{ content:""; position:absolute; left:.25rem; top:1.25rem; width:.5rem; height:.5rem; border-radius:50%; background:var(--tf-gold); }
.tf-list li b{ color:var(--tf-text); margin-right:.5rem; }

/* ───── 사진 띠 (선언문) ───── */
.tf-band{ position:relative; overflow:hidden; color:#fff; text-align:center; background:linear-gradient(135deg,#0B4129,#08311F); }
.tf-band-bg{ position:absolute; inset:0; } .tf-band-bg img{ width:100%; height:100%; object-fit:cover; } .tf-band-bg::after{ content:""; position:absolute; inset:0; background:rgba(8,40,25,.72); }
.tf-band .tf-wrap{ position:relative; z-index:1; padding-top:7.5rem; padding-bottom:7.5rem; }
.tf-band-title{ margin:0 0 1.25rem; font-size:2.75rem; font-weight:700; line-height:1.35; color:#fff; letter-spacing:-.02em; text-wrap:balance; }
.tf-band-title em{ font-style:normal; color:var(--tf-gold); }
.tf-band p{ margin:0 auto; max-width:40rem; font-size:1.125rem; line-height:1.8; color:rgba(255,255,255,.8); }
@media (max-width:1024px){ .tf-band-title{ font-size:2.25rem; } } @media (max-width:767px){ .tf-band .tf-wrap{ padding-top:5rem; padding-bottom:5rem; } .tf-band-title{ font-size:1.75rem; } .tf-band p{ font-size:1rem; } }

/* ───── CTA ───── */
.tf-cta{ background:var(--tf-green); color:#fff; }
.tf-cta-in{ display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-top:5rem; padding-bottom:5rem; }
.tf-cta h2{ margin:0 0 .75rem; font-size:2.25rem; font-weight:700; line-height:1.35; color:#fff; letter-spacing:-.02em; }
.tf-cta p{ margin:0; font-size:1.125rem; line-height:1.7; color:rgba(255,255,255,.78); }
.tf-cta .tf-btns{ margin-top:0; flex-wrap:nowrap; }
@media (max-width:1024px){ .tf-cta-in{ flex-direction:column; align-items:flex-start; } .tf-cta .tf-btns{ flex-wrap:wrap; } }
@media (max-width:767px){ .tf-cta-in{ text-align:center; align-items:stretch; padding-top:4rem; padding-bottom:4rem; } .tf-cta h2{ font-size:1.625rem; } .tf-cta p{ font-size:1rem; } }

/* ───── 서브페이지 상단 ───── */
.tf-subhero{ position:relative; overflow:hidden; color:#fff; background:radial-gradient(90% 120% at 90% 0%,rgba(201,169,106,.2),transparent 55%),linear-gradient(160deg,#0F5132,#08311F); }
.tf-subhero::after{ content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px); background-size:1.5rem 1.5rem; mask-image:linear-gradient(90deg,transparent,#000 70%); pointer-events:none; }
.tf-subhero-bg{ position:absolute; inset:0; } .tf-subhero-bg img{ width:100%; height:100%; object-fit:cover; } .tf-subhero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,49,31,.9),rgba(8,49,31,.5)); }
.tf-subhero .tf-wrap{ position:relative; z-index:1; padding-top:11rem; padding-bottom:5.5rem; }
.tf-subhero--sm .tf-wrap{ padding-top:9.5rem; padding-bottom:3.5rem; }
.tf-crumb{ margin:0 0 2rem; font-size:.875rem; color:rgba(255,255,255,.6); } .tf-crumb a{ color:rgba(255,255,255,.75) !important; text-decoration:none !important; } .tf-crumb span{ color:var(--tf-gold); }
.tf-subhero-title{ margin:0 0 1rem; font-size:3.25rem; font-weight:700; line-height:1.25; color:#fff; letter-spacing:-.02em; }
.tf-subhero-en{ display:block; margin:0 0 .5rem; font-family:var(--tf-serif) !important; font-size:1.5rem; font-style:italic; color:var(--tf-gold); }
.tf-subhero p{ margin:0; max-width:42rem; font-size:1.125rem; line-height:1.8; color:rgba(255,255,255,.8); }
@media (max-width:1024px){ .tf-subhero .tf-wrap{ padding-top:9rem; } .tf-subhero-title{ font-size:2.5rem; } }
@media (max-width:767px){ .tf-subhero .tf-wrap{ padding-top:7.5rem; padding-bottom:3.5rem; } .tf-subhero-title{ font-size:2rem; } .tf-subhero p{ font-size:1rem; } .tf-crumb{ margin-bottom:1.5rem; } }
/* 서브 탭(같은 메뉴 안 이동) */
.tf-subnav{ background:#fff; border-bottom:1px solid var(--tf-line); position:sticky; top:0; z-index:5; }
.tf-subnav .tf-wrap{ display:flex; gap:.25rem; overflow-x:auto; scrollbar-width:none; } .tf-subnav .tf-wrap::-webkit-scrollbar{ display:none; }
.tf-subnav a{ flex:none; padding:1.25rem 1.25rem; font-size:1rem; font-weight:600; color:var(--tf-muted) !important; text-decoration:none !important; border-bottom:2px solid transparent; }
.tf-subnav a.is-on{ color:var(--tf-green) !important; border-bottom-color:var(--tf-green); }
@media (max-width:767px){ .tf-subnav a{ padding:1rem .875rem; font-size:.9375rem; } }

/* ───── 연혁 ───── */
.tf-timeline{ position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.tf-timeline::before{ content:""; position:absolute; left:0; right:0; top:1.0625rem; height:2px; background:linear-gradient(90deg,var(--tf-gold),var(--tf-line)); }
.tf-tl{ position:relative; padding-top:3.5rem; }
.tf-tl::before{ content:""; position:absolute; top:.5rem; left:0; width:1.25rem; height:1.25rem; border-radius:50%; background:var(--tf-green); box-shadow:0 0 0 .375rem var(--tf-green-l); }
.tf-tl b{ display:block; margin:0 0 .75rem; font-family:var(--tf-serif) !important; font-size:2.75rem; font-weight:600; line-height:1; color:var(--tf-green); }
.tf-tl ul{ margin:0; padding:0; list-style:none; } .tf-tl li{ padding:.375rem 0; font-size:1.0625rem; line-height:1.6; color:var(--tf-body); }
.tf-tl--plan b{ color:var(--tf-gold-d); } .tf-tl--plan::before{ background:var(--tf-gold); box-shadow:0 0 0 .375rem var(--tf-gold-l); }
@media (max-width:767px){ .tf-timeline{ grid-template-columns:1fr; gap:0; padding-left:1.75rem; } .tf-timeline::before{ left:.5625rem; right:auto; top:0; bottom:0; width:2px; height:auto; background:linear-gradient(180deg,var(--tf-gold),var(--tf-line)); } .tf-tl{ padding:0 0 2.25rem; } .tf-tl::before{ left:-1.75rem; top:.375rem; } .tf-tl b{ font-size:2.25rem; } }

/* ───── 인증 ───── */
.tf-cert{ text-align:center; background:#fff; border:1px solid var(--tf-line); border-radius:var(--tf-radius); padding:1.75rem 1.25rem 2rem; height:100%; box-sizing:border-box; }
.tf-cert .tf-media{ aspect-ratio:3/4; border-radius:var(--tf-radius-s); margin:0 0 1.25rem; }
.tf-cert h3{ margin:0 0 .375rem; font-size:1.125rem; font-weight:700; color:var(--tf-text); } .tf-cert p{ margin:0; font-size:.9375rem; color:var(--tf-muted); line-height:1.6; }

/* ───── 사업장 ───── */
.tf-site{ background:#fff; border-radius:var(--tf-radius); overflow:hidden; border:1px solid var(--tf-line); height:100%; }
.tf-site .tf-media{ border-radius:0; } .tf-site-body{ padding:1.75rem; }
.tf-site-tag{ display:inline-block; padding:.25rem .625rem; border-radius:2rem; background:var(--tf-green-l); color:var(--tf-green); font-size:.8125rem; font-weight:700; }
.tf-site-tag--plan{ background:var(--tf-gold-l); color:var(--tf-gold-d); }
.tf-site h3{ margin:.875rem 0 .5rem; font-size:1.3125rem; font-weight:700; color:var(--tf-text); } .tf-site p{ margin:0; font-size:1rem; line-height:1.7; color:var(--tf-body); }

/* ───── 제품 카드 (쇼트코드) ───── */
.tf-filter{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 2.5rem; }
.tf-filter button{ padding:.75rem 1.25rem; border:1px solid var(--tf-line) !important; border-radius:2rem !important; background:#fff !important; color:var(--tf-body) !important; font-size:.9375rem !important; font-weight:600 !important; cursor:pointer; line-height:1 !important; transition:.2s; }
.tf-filter button span{ margin-left:.25rem; font-size:.8125rem; color:var(--tf-muted); }
.tf-filter button.is-active, .tf-filter button:hover{ background:var(--tf-green) !important; border-color:var(--tf-green) !important; color:#fff !important; } .tf-filter button.is-active span, .tf-filter button:hover span{ color:rgba(255,255,255,.75); }
.tf-pgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem 1.5rem; }
.tf-pgrid--main{ grid-template-columns:repeat(3,1fr); } .tf-pgrid--4{ grid-template-columns:repeat(4,1fr); }
.tf-pcard{ display:block; text-decoration:none !important; color:inherit !important; }
.tf-pcard[hidden]{ display:none; }
.tf-pcard-img{ position:relative; display:block; aspect-ratio:1/1; overflow:hidden; border-radius:var(--tf-radius); background:var(--tf-beige); }
.tf-pcard-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.tf-pcard:hover .tf-pcard-img img{ transform:scale(1.05); }
.tf-pcard-img .tf-ph{ position:absolute; inset:0; }
.tf-badge{ position:absolute; top:.875rem; left:.875rem; padding:.3125rem .625rem; border-radius:2rem; background:rgba(255,255,255,.92); color:var(--tf-green); font-size:.75rem; font-weight:700; }
.tf-pcard-body{ display:block; padding:1.125rem .125rem 0; }
.tf-pcard-cat{ display:block; margin:0 0 .375rem; font-size:.8125rem; font-weight:700; color:var(--tf-gold-d); letter-spacing:.04em; }
.tf-pcard-title{ display:block; font-size:1.1875rem; font-weight:700; color:var(--tf-text); line-height:1.4; }
.tf-pcard-desc{ display:block; margin-top:.375rem; font-size:.9375rem; line-height:1.6; color:var(--tf-muted); }
@media (max-width:1024px){ .tf-pgrid, .tf-pgrid--4{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px){ .tf-pgrid, .tf-pgrid--main, .tf-pgrid--4{ grid-template-columns:repeat(2,1fr); gap:1.5rem .875rem; } .tf-pcard-title{ font-size:1rem; } .tf-pcard-desc{ font-size:.8125rem; } .tf-filter{ flex-wrap:nowrap; overflow-x:auto; margin:0 calc(var(--tf-pad-x)*-1) 2rem; padding:0 var(--tf-pad-x); scrollbar-width:none; } .tf-filter::-webkit-scrollbar{ display:none; } .tf-filter button{ flex:none; } }

/* 생산 가능 품목 표 */
.tf-ptable-wrap{ background:#fff; border-radius:var(--tf-radius); overflow:hidden; border:1px solid var(--tf-line); }
.tf-ptable{ width:100%; border-collapse:collapse; font-size:1rem; }
.tf-ptable thead th{ background:var(--tf-green); color:#fff; font-weight:700; text-align:left; padding:1.125rem 1.25rem; font-size:.9375rem; }
.tf-ptable td, .tf-ptable tbody th{ padding:1.125rem 1.25rem; border-top:1px solid var(--tf-line); text-align:left; vertical-align:top; color:var(--tf-body); line-height:1.6; }
.tf-ptable tbody th{ font-weight:700; color:var(--tf-text); white-space:nowrap; } .tf-ptable tbody th a{ color:var(--tf-text) !important; text-decoration:none !important; } .tf-ptable tbody th a:hover{ color:var(--tf-green) !important; }
.tf-ptable tbody tr:nth-child(even){ background:#FBFAF7; }
.tf-tbd{ color:var(--tf-gold-d); font-weight:600; }
.tf-note{ margin:1rem 0 0; font-size:.9375rem; color:var(--tf-muted); line-height:1.7; }
@media (max-width:767px){
  .tf-ptable-wrap{ background:transparent; border:0; overflow:visible; }
  .tf-ptable thead{ display:none; } .tf-ptable, .tf-ptable tbody, .tf-ptable tr, .tf-ptable td, .tf-ptable tbody th{ display:block; width:100%; box-sizing:border-box; }
  .tf-ptable tr{ background:#fff !important; border:1px solid var(--tf-line); border-radius:var(--tf-radius-s); margin:0 0 .75rem; padding:.5rem 0; }
  .tf-ptable tbody th{ border:0; padding:.875rem 1.25rem .5rem; font-size:1.0625rem; white-space:normal; }
  .tf-ptable td{ display:flex; gap:1rem; border:0; padding:.375rem 1.25rem; font-size:.9375rem; } .tf-ptable td::before{ content:attr(data-label); flex:0 0 5.5rem; color:var(--tf-muted); font-weight:600; }
}

/* 제품 상세 */
.tf-single-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:4.5rem; align-items:start; }
.tf-single-main{ position:relative; aspect-ratio:1/1; border-radius:var(--tf-radius); overflow:hidden; background:var(--tf-beige); }
.tf-single-main img, .tf-single-main .tf-ph{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tf-single-thumbs{ display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; margin-top:.75rem; } .tf-single-thumbs img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--tf-radius-s); }
.tf-single-title{ margin:.25rem 0 1rem; font-size:2.25rem; font-weight:700; color:var(--tf-text); line-height:1.3; }
.tf-single-summary{ margin:0 0 2rem; font-size:1.125rem; line-height:1.8; color:var(--tf-body); }
.tf-spec{ margin:0; border-top:2px solid var(--tf-green); } .tf-spec > div{ display:grid; grid-template-columns:8rem 1fr; padding:1rem 0; border-bottom:1px solid var(--tf-line); }
.tf-spec dt{ font-weight:700; color:var(--tf-text); font-size:1rem; } .tf-spec dd{ margin:0; color:var(--tf-body); font-size:1rem; line-height:1.6; }
@media (max-width:1024px){ .tf-single-grid{ grid-template-columns:1fr; gap:2.5rem; } }
@media (max-width:767px){ .tf-single-title{ font-size:1.75rem; } .tf-spec > div{ grid-template-columns:6.5rem 1fr; } }

/* ───── 지도·연락처 ───── */
.tf-map{ position:relative; border-radius:var(--tf-radius); overflow:hidden; aspect-ratio:16/10; background:var(--tf-beige); }
.tf-map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.tf-info{ margin:0; } .tf-info > div{ display:grid; grid-template-columns:6rem 1fr; gap:1rem; padding:1.125rem 0; border-bottom:1px solid var(--tf-line); }
.tf-info dt{ font-size:.8125rem; font-weight:700; letter-spacing:.12em; color:var(--tf-gold-d); padding-top:.2rem; } .tf-info dd{ margin:0; font-size:1.0625rem; color:var(--tf-text); line-height:1.6; } .tf-info dd a{ color:var(--tf-text) !important; text-decoration:none !important; }
.tf-loc + .tf-loc{ margin-top:5rem; } .tf-loc h3{ margin:0 0 1.5rem; font-size:1.625rem; font-weight:700; color:var(--tf-text); }
.tf-loc-tag{ display:inline-block; margin-left:.5rem; padding:.25rem .625rem; border-radius:2rem; background:var(--tf-green-l); color:var(--tf-green); font-size:.8125rem; vertical-align:middle; }

/* ───── 문의 폼 (Elementor Pro 폼에 tf-form 클래스) ───── */
.tf-contact{ display:grid; grid-template-columns:5fr 7fr; gap:4rem; align-items:start; }
.tf-contact-card{ background:var(--tf-green); color:#fff; border-radius:var(--tf-radius); padding:2.5rem 2.25rem; }
.tf-contact-card h3{ margin:0 0 .375rem; font-size:1.25rem; font-weight:700; color:#fff; } .tf-contact-card .who{ margin:0 0 1.5rem; color:rgba(255,255,255,.7); font-size:.9375rem; }
.tf-contact-card dl{ margin:0; } .tf-contact-card dl > div{ display:flex; gap:1rem; padding:.875rem 0; border-top:1px solid rgba(255,255,255,.14); }
.tf-contact-card dt{ flex:0 0 3.5rem; font-size:.8125rem; font-weight:700; letter-spacing:.1em; color:var(--tf-gold); padding-top:.15rem; } .tf-contact-card dd{ margin:0; font-size:1.0625rem; line-height:1.6; } .tf-contact-card a{ color:#fff !important; text-decoration:none !important; }
.tf-form-box{ background:#fff; border:1px solid var(--tf-line); border-radius:var(--tf-radius); padding:2.5rem; box-shadow:var(--tf-shadow); }
.tf-form .elementor-field-group > label{ font-size:.9375rem !important; font-weight:700 !important; color:var(--tf-text) !important; margin-bottom:.5rem !important; }
.tf-form .elementor-field-textual, .tf-form select{ min-height:3.25rem; padding:.75rem 1rem !important; border:1px solid #DCD6CC !important; border-radius:.5rem !important; background:#FCFBF8 !important; font-size:1rem !important; color:var(--tf-text) !important; }
.tf-form .elementor-field-textual:focus, .tf-form select:focus{ border-color:var(--tf-green) !important; background:#fff !important; box-shadow:0 0 0 3px rgba(15,81,50,.1) !important; outline:0; }
.tf-form textarea.elementor-field-textual{ min-height:9rem; }
.tf-form .elementor-button[type=submit]{ width:100%; min-height:3.5rem; border-radius:.5rem !important; background:var(--tf-green) !important; color:#fff !important; font-size:1.0625rem !important; font-weight:700 !important; }
.tf-form .elementor-button[type=submit]:hover{ background:var(--tf-green-d) !important; }
.tf-form .elementor-field-type-acceptance label{ font-size:.9375rem !important; font-weight:500 !important; color:var(--tf-body) !important; }
.tf-form .elementor-field-type-acceptance a{ color:var(--tf-green) !important; text-decoration:underline; }
@media (max-width:1024px){ .tf-contact{ grid-template-columns:1fr; gap:2.5rem; } }
@media (max-width:767px){ .tf-form-box{ padding:1.75rem 1.25rem; } .tf-contact-card{ padding:2rem 1.5rem; } }

/* ───── 등장 애니메이션 ───── */
.tf-reveal{ opacity:0; transform:translateY(1.5rem); transition:opacity .8s ease,transform .8s ease; }
.tf-reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .tf-reveal{ opacity:1; transform:none; transition:none; } }
.elementor-editor-active .tf-reveal{ opacity:1; transform:none; }

/* ───── 머리글/바닥글 보정 (UiCore) ───── */
.uicore-navbar .uicore-btn, .uicore-cta-wrapper .uicore-btn{ background:var(--tf-gold) !important; color:var(--tf-green-d) !important; border-radius:.5rem !important; font-weight:700 !important; }
.tf-footer{ background:#16201B; color:rgba(255,255,255,.62); }
.tf-footer-in{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:3rem; padding-top:4.5rem; padding-bottom:3rem; }
.tf-footer-logo{ display:inline-flex; align-items:center; gap:.625rem; margin:0 0 1.25rem; color:#fff !important; text-decoration:none !important; font-weight:800; font-size:1.25rem; letter-spacing:.02em; }
.tf-footer-logo img{ height:2.25rem; width:auto; }
.tf-footer p{ margin:0; font-size:.9375rem; line-height:1.9; } .tf-footer h4{ margin:0 0 1rem; font-size:.8125rem; font-weight:700; letter-spacing:.16em; color:var(--tf-gold); }
.tf-footer ul{ list-style:none; margin:0; padding:0; } .tf-footer li{ padding:.25rem 0; } .tf-footer a{ color:rgba(255,255,255,.75) !important; text-decoration:none !important; font-size:.9375rem; } .tf-footer a:hover{ color:#fff !important; }
.tf-footer-bottom{ border-top:1px solid rgba(255,255,255,.1); } .tf-footer-bottom .tf-wrap{ display:flex; justify-content:space-between; gap:1rem; padding-top:1.5rem; padding-bottom:1.5rem; font-size:.875rem; }
.tf-footer-bottom a{ margin-left:1.25rem; font-size:.875rem; } .tf-footer-bottom a:first-child{ margin-left:0; }
.tf-it{ white-space:nowrap; }
@media (max-width:1024px){ .tf-footer-in{ grid-template-columns:1fr 1fr; } .tf-footer-in > div:first-child{ grid-column:1/-1; } }
@media (max-width:767px){ .tf-footer-in{ grid-template-columns:1fr; gap:2rem; padding-top:3.5rem; } .tf-footer-bottom .tf-wrap{ flex-direction:column; } .tf-it{ white-space:normal; display:block; } .tf-footer-bottom a{ margin:0 1rem 0 0; } }

/* ───── 추가 ───── */
.tf-timeline--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1024px){ .tf-timeline--4{ grid-template-columns:repeat(2,1fr); row-gap:2.5rem; } .tf-timeline--4::before{ display:none; } }
@media (max-width:767px){ .tf-timeline--4{ grid-template-columns:1fr; row-gap:0; } .tf-timeline--4::before{ display:block; } }
.tf-policy h3{ margin:2.5rem 0 .75rem; font-size:1.25rem; font-weight:700; color:var(--tf-text); } .tf-policy h3:first-of-type{ margin-top:2rem; }
.tf-policy p{ margin:0; }
.tf-contact-row > .e-con{ --padding-top:0px; }
.tf-form-box{ background:#fff !important; border:1px solid var(--tf-line); border-radius:var(--tf-radius); box-shadow:var(--tf-shadow); }
.tf-contact-card{ margin-top:2rem; }
.pc{ } @media (max-width:767px){ br.pc{ display:none; } }
.tf-hero-art{ position:absolute; right:8%; top:50%; transform:translateY(-46%); height:78%; aspect-ratio:200/420; color:var(--tf-gold); opacity:.32; z-index:0; pointer-events:none; }
.tf-hero-art svg{ width:100%; height:100%; }
.tf-hero-art::after{ content:""; position:absolute; inset:-30% -60%; background:radial-gradient(closest-side,rgba(201,169,106,.16),transparent); z-index:-1; }
@media (max-width:1024px){ .tf-hero-art{ right:-6%; opacity:.18; } } @media (max-width:767px){ .tf-hero-art{ display:none; } }
@media (min-width:1025px){ .tf-steps .tf-step{ padding:1.75rem 1.25rem 2rem; } .tf-steps .tf-step p{ font-size:.9375rem; } .tf-steps .tf-step h3{ font-size:1.125rem; } }
@media (max-width:767px){ .tf-footer .tf-sep{ display:none; } }
.tf-hero-ko, .tf-subhero-title, .tf-band-title, .tf-cta h2, .tf-head .tf-lead{ text-wrap:balance; }
