/* ==========================================================
   오!렌지 Oh!Range — landing page
   - fluid full-width: layout scales from the 1440px design (capped at 1920px)
   - 1 "px" unit = 1 design pixel (1440 base on desktop, 390 base on mobile)
   ========================================================== */

:root {
  --orange: #ff8400;
  --orange-d: #fe6a00;
  --salmon: #ffa76d;
  --peach: #ffead5;
  --cream: #fcf3ea;
  --paper: #fffbf7;
  --ink: #111;
  --text: #333;
  --muted: #8a8580;
  --line: #353535;

  --vw: 1vw;                                /* JS sets this to the real viewport width / 100 (excludes scrollbar) */
  --px: calc(min(100 * var(--vw), 1920px) / 1440);   /* desktop scale */
  --hd: calc(83 * var(--px));              /* header height */

  --f-ko: "Pretendard Variable", Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  --f-en: "Poppins", "Pretendard Variable", Pretendard, system-ui, sans-serif;
  --f-no: "Inter", "Pretendard Variable", Pretendard, system-ui, sans-serif;
  --f-disp: "Anton", "Impact", "Haettenschweiler", "Arial Narrow Bold", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: var(--hd); }
body {
  margin: 0;
  font-family: var(--f-ko);
  color: var(--text);
  background: #ececec;
  line-height: 1.5;
  word-break: keep-all;
  overflow-wrap: break-word;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-align: inherit; }
em { font-style: normal; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }

.page {
  max-width: 1920px;
  margin: 0 auto;
  background: #fff;
  position: relative;
  border-inline: 2px solid var(--line);   /* left / right outer frame line */
}

.ico-orange { width: calc(22 * var(--px)); height: calc(24 * var(--px)); fill: currentColor; flex: none; }

/* scroll reveal ------------------------------------------------ */
.js .reveal { opacity: 0; transform: translateY(calc(28 * var(--px))); transition: opacity .8s ease var(--d, 0s), transform .8s cubic-bezier(.2, .7, .2, 1) var(--d, 0s); }
.js .reveal.is-in { opacity: 1; transform: none; }

/* ==================== HEADER ==================== */
.gnb {
  position: sticky; top: 0; z-index: 60;
  height: var(--hd);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 calc(46 * var(--px));
  background: var(--paper);
  border-top: 2px solid var(--line);
  border-bottom: 2px solid var(--line);
}
.gnb__logo { color: var(--ink); display: flex; }
.gnb__logo .ico-orange { width: calc(28 * var(--px)); height: calc(32 * var(--px)); }
.gnb__nav { display: flex; gap: calc(44 * var(--px)); }
.gnb__nav a { font: 600 max(11px, calc(15 * var(--px))) / 1 var(--f-en); letter-spacing: .02em; color: var(--ink); padding: 6px 0; position: relative; }
.gnb__nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.gnb__nav a { transition: color .2s; }
.gnb__nav a:hover, .gnb__nav a:focus-visible, .gnb__nav a.is-active { color: var(--orange); }
.gnb__nav a:hover::after { transform: scaleX(1); }
.gnb__nav a.is-active::after { transform: scaleX(0); }

/* ==================== HERO ==================== */
.hero {
  position: relative; overflow: hidden;
  height: calc(714 * var(--px));
  background: var(--paper);
  border-bottom: 2px solid var(--line);
}
.hero__left {
  position: absolute; z-index: 3; inset: 0 auto 0 0;
  width: 32.7%;
  background: var(--orange);
  border-right: 2px solid var(--line);
  padding: calc(112 * var(--px)) 0 0 calc(72 * var(--px));
  color: var(--ink);
}
.hero__today, .hero__title span { white-space: nowrap; }
.hero__today { font: 400 calc(127.5 * var(--px)) / 1 var(--f-disp); letter-spacing: .005em; text-transform: uppercase; }
.hero__ko { font: 500 calc(28 * var(--px)) / 1.2 var(--f-ko); margin-top: calc(26 * var(--px)); }
.hero__sub { font: 400 max(11px, calc(14 * var(--px))) / 1.45 var(--f-ko); margin-top: calc(18 * var(--px)); }
.hero__bowl { position: absolute; z-index: 1; height: auto; max-width: none; filter: drop-shadow(0 calc(18 * var(--px)) calc(26 * var(--px)) rgba(120, 50, 0, .22)); }
.hero__bowl--ramen { left: calc(250 * var(--px)); top: calc(30 * var(--px)); width: calc(790 * var(--px)); animation: floatA 9s ease-in-out infinite; }
.hero__bowl--rice { left: calc(1130 * var(--px)); top: calc(46 * var(--px)); width: calc(740 * var(--px)); animation: floatB 11s ease-in-out infinite; }
@keyframes floatA { 50% { transform: translateY(calc(-10 * var(--px))) rotate(-1.2deg); } }
@keyframes floatB { 50% { transform: translateY(calc(12 * var(--px))) rotate(1.4deg); } }
/* JUST A LITTLE SIMPLER: word-by-word slide up 40px, 6-frame (100ms @60fps) stagger */
.hero__title .w { display: inline-block; }
.js .hero__title .w { animation: wordUp .7s cubic-bezier(.2, .7, .2, 1) calc(.25s + var(--i) * 100ms) both; }
@keyframes wordUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
/* hero left copy: slides in from the left, one line after another */
.hero__sub .slide-in { display: block; }
.js .hero__left .slide-in { animation: slideRight .8s cubic-bezier(.2, .7, .2, 1) calc(.1s + var(--i) * 150ms) both; }
.cta h2 .slide-in { display: block; }
.js .slide-group .slide-in { opacity: 0; }
.js .slide-group.is-in .slide-in { animation: slideRight .8s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * 150ms) both; }
@keyframes slideRight { from { opacity: 0; transform: translateX(-60px); } to { opacity: 1; transform: none; } }
.hero__title {
  position: absolute; z-index: 2; right: calc(149 * var(--px)); top: calc(335 * var(--px));
  display: flex; flex-direction: column; align-items: flex-end;
  font: 400 calc(136 * var(--px)) / .86 var(--f-disp); color: #000; text-transform: uppercase;
  letter-spacing: .005em;
  text-shadow: 0 0 calc(18 * var(--px)) rgba(255, 251, 247, .35);
}
.hero__title .sm { font-size: calc(70 * var(--px)); line-height: 1.02; align-self: flex-start; margin-left: 19%; }
/* floating banner: follows the viewport while scrolling */
.float-sns { position: fixed; z-index: 70; right: calc(max(0px, (100 * var(--vw) - 1920px) / 2) + 2px + 24px); bottom: calc(40px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; border: 2px solid var(--line); background: var(--paper); box-shadow: 0 6px 18px rgba(0, 0, 0, .18); }
.float-sns a { width: 56px; height: 56px; display: grid; place-items: center; color: var(--ink); background: #ffdcc2; transition: background .2s, transform .2s; }
.float-sns a + a { background: #e8d9ff; border-top: 2px solid var(--line); }
.float-sns a:hover { background: var(--orange); }
.float-sns svg { width: 54%; height: 54%; }

/* ==================== MARQUEE ==================== */
.marquee { background: #000; color: #fff; overflow: hidden; height: calc(100 * var(--px)); min-height: 44px; display: flex; align-items: center; border-bottom: 2px solid var(--line); }
.marquee__track { display: flex; width: max-content; animation: marq 38s linear infinite; }
.marquee__set { display: flex; flex: none; }
.marquee__set > span { display: inline-flex; align-items: center; gap: calc(14 * var(--px)); padding-right: calc(52 * var(--px)); font: 500 max(13px, calc(20 * var(--px))) / 1 var(--f-ko); white-space: nowrap; }
.marquee .ico-orange { width: calc(17 * var(--px)); height: calc(19 * var(--px)); min-width: 11px; min-height: 12px; }
@keyframes marq { to { transform: translateX(-50%); } }

/* ==================== INTRO ==================== */
.intro { position: relative; overflow: hidden; background: var(--cream); height: calc(800 * var(--px)); --k: var(--px); }
.intro__title { position: relative; z-index: 2; text-align: center; padding-top: calc(97 * var(--px)); font: 700 calc(50 * var(--px)) / 1.25 var(--f-ko); color: var(--text); }
.intro__title em { color: var(--orange-d); }
.intro__stage { position: absolute; z-index: 1; left: 50%; top: 0; width: calc(1440 * var(--k)); height: 100%; transform: translateX(-50%); pointer-events: none; }
.intro__stage--clone { display: none; }
@keyframes introLoop { to { transform: translateX(calc(-1 * var(--loop))); } }
.dish { position: absolute; left: calc(var(--x) * var(--k)); top: calc(var(--y) * var(--k)); width: calc(var(--d) * var(--k)); height: auto; transform: translate(-50%, -50%) rotate(var(--rot, 0deg)); filter: drop-shadow(0 calc(10 * var(--k)) calc(16 * var(--k)) rgba(130, 60, 0, .2)); }
.dish-label {
  position: absolute; left: calc(var(--x) * var(--k)); top: calc(var(--y) * var(--k));
  transform: translate(-50%, -50%) rotate(calc(var(--r) * 1deg));
  font: 500 max(9px, calc(15 * var(--k))) / 1 var(--f-en); letter-spacing: .08em; color: #8a5b3a; padding-bottom: calc(12 * var(--k));
}
.dish-label::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 1px; height: calc(8 * var(--k)); background: currentColor; }
.js .dish { opacity: 0; transform: translate(-50%, -42%) rotate(var(--rot, 0deg)) scale(.92); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 70ms); }
.js .intro.is-in .dish { opacity: 1; transform: translate(-50%, -50%) rotate(var(--rot, 0deg)); }

/* ==================== MOMENTS ==================== */
.moments { background: #000; }
.mgrid {
  display: grid; background: var(--paper);
  grid-template-columns: 304fr 394fr 304fr 437fr;
  grid-template-rows: repeat(3, calc(238 * var(--px)));
  grid-template-areas:
    "img1 img1 txt1 panel"
    "txt2 img2 img2 panel"
    "img3 img3 txt3 panel";
  border-top: 2px solid var(--line);
}
.g-img1 { grid-area: img1; } .g-txt1 { grid-area: txt1; } .g-txt2 { grid-area: txt2; }
.g-img2 { grid-area: img2; } .g-img3 { grid-area: img3; } .g-txt3 { grid-area: txt3; }
.mc { min-width: 0; border-bottom: 2px solid var(--line); }
.mc-img { overflow: hidden; position: relative; }
.mc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.mc-img:hover img { transform: scale(1.04); }
.g-img1 img { object-position: 50% 42%; }
.g-img2 img { object-position: 50% 52%; }
.g-img3 img { object-position: 50% 44%; }
.mc-txt { display: flex; flex-direction: column; justify-content: center; padding: 0 calc(28 * var(--px)); background: var(--paper); }
.g-txt2 { padding-left: calc(76 * var(--px)); }
.mc-txt h3 { font: 700 max(17px, calc(28 * var(--px))) / 1.25 var(--f-ko); color: var(--orange-d); }
.mc-txt p { font: 400 max(13px, calc(18 * var(--px))) / 1.5 var(--f-ko); color: #555; margin-top: calc(10 * var(--px)); }
.mpanel { grid-area: panel; position: relative; background: var(--orange); border-left: 2px solid var(--line); border-bottom: 2px solid var(--line); overflow: hidden; }
.mpanel__lines { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--line); stroke-width: 2; vector-effect: non-scaling-stroke; }
.mpanel__lines path { vector-effect: non-scaling-stroke; }
.mdot { position: absolute; left: calc(var(--x) / 437 * 100%); top: calc(var(--y) / 714 * 100%); width: calc(10 * var(--px)); height: calc(10 * var(--px)); min-width: 7px; min-height: 7px; border-radius: 50%; background: var(--line); transform: translate(-50%, -50%); z-index: 2; }
.mdot--lg { width: calc(18 * var(--px)); height: calc(18 * var(--px)); min-width: 11px; min-height: 11px; }
.mbox {
  position: absolute; margin: 0; display: grid; place-items: center; text-align: center;
  background: #fff; border: 2px solid var(--line);
  font: 400 max(12px, calc(20 * var(--px))) / 1.2 var(--f-ko); color: var(--ink); padding: 0 6px;
}
.b1 { left: 0; top: 8.54%; width: 59.3%; height: 9.66%; border-left: 0; }
.b2 { left: 40.3%; top: 32.2%; width: 59.7%; height: 9.66%; border-right: 0; }
.b3 { left: 19.9%; top: 53.4%; width: 60%; height: 9.66%; }
.b4 { left: 57.7%; top: 69.5%; width: 42.3%; height: 9.66%; border-right: 0; }
.b5 { left: 0; top: 80.8%; width: 42.1%; height: 9.66%; border-left: 0; }

.shorts { background: #000; overflow: hidden; padding: calc(30 * var(--px)) 0; }
.shorts__track { display: flex; width: max-content; animation: marq 46s linear infinite; }
.shorts:hover .shorts__track { animation-play-state: paused; }
.shorts__set { display: flex; flex: none; gap: calc(24 * var(--px)); padding-right: calc(24 * var(--px)); }
.shorts__set li { height: calc(320 * var(--px)); min-height: 180px; aspect-ratio: 370 / 496; overflow: hidden; border-radius: calc(6 * var(--px)); }
.shorts__set img { width: 100%; height: 100%; object-fit: cover; }
.shorts__set li { position: relative; }
.shorts__set a { display: block; width: 100%; height: 100%; }
.shorts__play { position: absolute; top: calc(10 * var(--px)); right: calc(10 * var(--px)); width: calc(26 * var(--px)); height: calc(26 * var(--px)); min-width: 16px; min-height: 16px; border-radius: 6px; background: rgba(0, 0, 0, .55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E") center / 70% no-repeat; }

/* ==================== PROBLEM ==================== */
.problem { background: #fff; border-top: 2px solid var(--line); padding: calc(35 * var(--px)) 0 calc(52 * var(--px)); text-align: center; }
.problem__title { font: 500 calc(30 * var(--px)) / 1.4 var(--f-ko); color: var(--ink); }
.problem__list { display: grid; grid-template-columns: repeat(3, calc(300 * var(--px))); justify-content: center; gap: calc(36 * var(--px)); margin-top: calc(42 * var(--px)); }
.problem__list li { display: flex; flex-direction: column; align-items: center; }
.bubble { position: relative; width: calc(266 * var(--px)); min-width: 150px; height: calc(86 * var(--px)); min-height: 44px; display: grid; place-items: center; border: 2px solid var(--line); border-radius: 999px; font: 500 max(13px, calc(19 * var(--px))) / 1 var(--f-ko); color: var(--ink); }
.bubble::after { content: ""; position: absolute; left: 50%; bottom: calc(-13 * var(--px)); width: calc(22 * var(--px)); height: calc(22 * var(--px)); min-width: 12px; min-height: 12px; background: inherit; border-right: 2px solid var(--line); border-bottom: 2px solid var(--line); transform: translateX(-50%) rotate(45deg) skew(8deg, 8deg); border-bottom-right-radius: 3px; }
.b-cream { background: #fcf1e8; } .b-peach { background: #ffe6d0; } .b-orange { background: var(--salmon); }
.problem__list img { margin-top: calc(34 * var(--px)); width: auto; height: auto; mix-blend-mode: multiply; }
.problem__list li:nth-child(1) img { width: calc(182 * var(--px)); }
.problem__list li:nth-child(2) img { width: calc(127 * var(--px)); }
.problem__list li:nth-child(3) img { width: calc(117 * var(--px)); }

.banner { background: var(--orange); border-top: 2px solid var(--line); border-bottom: 2px solid var(--line); height: calc(106 * var(--px)); min-height: 60px; display: grid; place-items: center; text-align: center; }
.banner p { font: 400 calc(38 * var(--px)) / 1.3 var(--f-ko); color: var(--ink); }
.banner b { font-weight: 800; }

/* ==================== STEPS (sticky, scroll-linked) ==================== */
.steps { --h: max(420px, min(calc(652 * var(--px)), calc(100svh - var(--hd)))); --u: calc(var(--h) / 652); position: relative; height: calc(var(--h) + 190svh); background: #fff; }
.steps__sticky {
  position: sticky; top: var(--hd); height: var(--h);
  display: grid; grid-template-columns: var(--h) 1fr; overflow: hidden;
  border-bottom: 2px solid var(--line);
}
.steps__visual { background: var(--orange); display: grid; place-items: center; border-right: 2px solid var(--line); }
.steps__circle { position: relative; width: calc(557 * var(--u)); aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 2px solid var(--line); background: #fff; }
.steps__circle img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.12); transition: opacity .7s ease, transform 1.1s cubic-bezier(.2, .7, .2, 1); }
.steps__circle img.is-on { opacity: 1; transform: scale(1); }
.steps__circle img:nth-child(1) { object-position: 50% 60%; }
.steps__circle img:nth-child(2) { object-position: 50% 50%; }
.steps__circle img:nth-child(3) { object-position: 50% 62%; }
.steps__body { display: flex; flex-direction: column; justify-content: space-between; background: #fff; min-width: 0; }
.steps__title { padding: calc(55 * var(--u)) calc(62 * var(--u)) 0; font: 800 calc(64 * var(--u)) / calc(100 * var(--u)) var(--f-ko); color: var(--ink); letter-spacing: -.01em; }
.steps__list { border-top: 2px solid var(--line); }
.steps__list li {
  display: grid; grid-template-columns: calc(140 * var(--u)) calc(165 * var(--u)) 1fr; align-items: center;
  height: calc(81.5 * var(--u)); padding-right: calc(20 * var(--u));
  background: #fbf0e5; color: #bdbdbd; cursor: pointer;
  border-bottom: 2px solid var(--line);
  transition: background .45s ease, color .45s ease;
}
.steps__list li:last-child { border-bottom: 0; }
.steps__list .n { font: 700 calc(38 * var(--u)) / 1 var(--f-no); text-align: center; }
.steps__list .w { font: 700 calc(38 * var(--u)) / 1 var(--f-ko); }
.steps__list .d { font: 400 max(11px, calc(20 * var(--u))) / 1.3 var(--f-ko); color: #8a8a8a; transition: color .45s ease; }
.steps__list li.is-on { background: var(--orange); color: var(--ink); }
.steps__list li.is-on .n, .steps__list li.is-on .w { font-weight: 800; }
.steps__list li.is-on .d { color: var(--ink); font-weight: 500; }


/* ==================== COVER ==================== */
.cover { background: var(--peach); padding: calc(79 * var(--px)) 0 calc(54 * var(--px)); text-align: center; }
.cover__title { font: 400 calc(42 * var(--px)) / 1.4 var(--f-ko); color: var(--text); }
.cover__title em { color: var(--orange-d); font-weight: 700; }
.cover__stage { position: relative; width: calc(1440 * var(--px)); max-width: 100%; height: calc(300 * var(--px)); margin: calc(35 * var(--px)) auto 0; }
.cover__lidwrap { position: absolute; left: 50%; top: 0; width: calc(630 * var(--px)); transform: translateX(-50%); }
.cover__lid { width: 100%; filter: drop-shadow(0 calc(14 * var(--px)) calc(18 * var(--px)) rgba(120, 60, 0, .2)); }
.pin { position: absolute; width: calc(46 * var(--px)); height: calc(46 * var(--px)); min-width: 24px; min-height: 24px; border-radius: 50%; background: #fff; border: 2px solid var(--orange); display: grid; place-items: center; transform: translate(-50%, -50%); animation: pulse 2.6s ease-in-out infinite; }
.pin img { width: 56%; height: 56%; object-fit: contain; }
.pin--l { left: 7%; top: 44%; } .pin--r { left: 93%; top: 44%; animation-delay: .5s; } .pin--b { left: 50%; top: 96%; animation-delay: 1s; }
@keyframes pulse { 50% { box-shadow: 0 0 0 calc(9 * var(--px)) rgba(255, 132, 0, .22); } }
.cover__label { position: absolute; }
.cover__label h3 { font: 700 calc(30 * var(--px)) / 1 var(--f-en); color: var(--orange-d); }
.cover__label p { font: 400 max(12px, calc(17 * var(--px))) / 1.4 var(--f-ko); color: var(--text); margin-top: calc(10 * var(--px)); }
.cover__label--l { left: calc(150 * var(--px)); top: calc(52 * var(--px)); width: calc(260 * var(--px)); text-align: center; }
.cover__label--r { right: calc(150 * var(--px)); top: calc(52 * var(--px)); width: calc(260 * var(--px)); text-align: center; }
.cover__label--b { left: 50%; top: calc(250 * var(--px)); transform: translateX(-50%); width: calc(260 * var(--px)); text-align: center; }
.cover__shots { display: flex; justify-content: center; gap: calc(34 * var(--px)); margin-top: calc(68 * var(--px)); }
.cover__shots li { width: calc(360 * var(--px)); aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 2px solid var(--line); }
.cover__shots img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.cover__shots li:hover img { transform: scale(1.06); }

/* ==================== HEAT ==================== */
.heat { background: #fff; border-top: 2px solid var(--line); padding: calc(79 * var(--px)) 0 calc(60 * var(--px)); text-align: center; overflow: hidden; }
.heat__title { position: relative; z-index: 1; font: 400 calc(42 * var(--px)) / 1.4 var(--f-ko); color: var(--ink); }
.heat__title b { font-weight: 800; }
.heat__img { width: 100%; margin-top: calc(-26 * var(--px)); }
.cmp { display: grid; grid-template-columns: repeat(4, calc(284 * var(--px))); gap: calc(30 * var(--px)); justify-content: center; align-items: start; margin-top: calc(3 * var(--px)); padding: 0 calc(20 * var(--px)); text-align: left; }
.cmp__i:nth-child(1) { margin-top: calc(90 * var(--px)); }
.cmp__i:nth-child(2) { margin-top: calc(60 * var(--px)); }
.cmp__i:nth-child(3) { margin-top: calc(30 * var(--px)); }
.cmp__img { aspect-ratio: 1; border: 2px solid #e5e5e5; border-radius: calc(26 * var(--px)); overflow: hidden; display: grid; place-items: center; background: #fff; }
.cmp__img img { width: 100%; height: 100%; object-fit: cover; }
.cmp h3 { font: 700 max(15px, calc(26 * var(--px))) / 1.2 var(--f-ko); color: var(--ink); margin-top: calc(18 * var(--px)); }
.cmp p { font: 400 max(12px, calc(17 * var(--px))) / 1.45 var(--f-ko); color: #a09b96; margin-top: calc(8 * var(--px)); }
.cmp__i--oh .cmp__img { border: 3px solid var(--orange-d); box-shadow: 0 calc(10 * var(--px)) calc(24 * var(--px)) rgba(254, 106, 0, .22); }
.cmp__i--oh h3 { font-family: var(--f-en); color: var(--orange-d); font-size: max(15px, calc(24 * var(--px))); }
.cmp__i--oh p { color: var(--text); }

/* ==================== TRUST ==================== */
.trust { border-top: 2px solid var(--line); background: #1b1b1b; }
.trust__banner { position: relative; height: calc(300 * var(--px)); min-height: 180px; display: grid; place-items: center; overflow: hidden; text-align: center; }
.trust__banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.trust__banner::after { content: ""; position: absolute; inset: 0; background: rgba(15, 15, 15, .58); }
.trust__banner h2 { position: relative; z-index: 1; font: 400 calc(40 * var(--px)) / 1.45 var(--f-ko); color: #fff; }
.trust__banner b { font-weight: 800; }
.tgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--line); border-top: 2px solid var(--line); }
.tc { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--orange); }
.tc--photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.tc--photo:hover img { transform: scale(1.05); }
.tc--circle { display: grid; place-items: center; }
.tc--circle > img { position: absolute; width: 86%; aspect-ratio: 1; border-radius: 50%; object-fit: cover; left: 7%; top: 7%; }
.tc--circle::before { content: ""; position: absolute; z-index: 1; width: 86%; height: 43%; left: 7%; top: 50%; border-radius: 0 0 999px 999px; background: rgba(0, 0, 0, .6); }
.tc__txt { position: relative; z-index: 2; text-align: center; color: #fff; margin-top: 40%; }
.tc__txt b { display: block; font: 800 calc(48 * var(--px)) / 1.08 var(--f-ko); color: var(--orange); letter-spacing: .01em; }
.tc__txt span { display: block; font: 500 max(12px, calc(22 * var(--px))) / 1.35 var(--f-ko); margin-top: calc(14 * var(--px)); }
.t-flag > img { object-position: 50% 50%; }

/* ==================== CTA ==================== */
.cta { position: relative; min-height: calc(824 * var(--px)); background: #efe3d6; overflow: hidden; border-top: 2px solid var(--line); display: flex; align-items: center; }
.cta__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 78% 55%; transform: scale(1.12); transform-origin: 78% 60%; }
.cta__in { position: relative; z-index: 1; padding: calc(70 * var(--px)) calc(129 * var(--px)); }
.cta h2 { font: 700 calc(46 * var(--px)) / 1.3 var(--f-ko); color: var(--ink); letter-spacing: -.01em; }
.cta__brand { font: 800 calc(76 * var(--px)) / 1.1 var(--f-ko); color: var(--orange-d); margin-top: calc(28 * var(--px)); }
.cta__btn { display: inline-flex; align-items: center; gap: calc(12 * var(--px)); margin-top: calc(34 * var(--px)); padding: calc(15 * var(--px)) calc(34 * var(--px)); min-height: 44px; background: var(--text); color: #fff; border-radius: 999px; font: 500 max(14px, calc(21 * var(--px))) / 1 var(--f-ko); transition: background .25s, transform .25s; }
.cta__btn svg { width: 1em; height: 1em; }
.cta__btn:hover { background: var(--orange-d); transform: translateY(-2px); }
.cta__tags { margin-top: calc(76 * var(--px)); display: grid; gap: calc(14 * var(--px)); }
.cta__tags li { font: 400 max(13px, calc(21 * var(--px))) / 1.4 var(--f-ko); color: var(--text); }
.cta__tags b { color: var(--orange-d); font-weight: 700; margin-right: calc(12 * var(--px)); }

/* ==================== DETAIL ==================== */
.detail { display: grid; grid-template-columns: 1fr 1fr; align-items: center; background: #fff; border-top: 2px solid var(--line); padding: calc(110 * var(--px)) calc(138 * var(--px)) calc(100 * var(--px)); gap: calc(70 * var(--px)); }
.detail__draw { display: grid; place-items: center; }
.detail__draw img { width: min(100%, calc(520 * var(--px))); }
.detail__info h2 { font: 700 calc(40 * var(--px)) / 1.2 var(--f-ko); color: var(--ink); }
.spec { margin-top: calc(56 * var(--px)); max-width: calc(470 * var(--px)); min-width: 260px; border-top: 1px solid #e3e0dc; }
.spec > div { display: grid; grid-template-columns: calc(120 * var(--px)) 1fr; min-width: 0; padding: calc(16 * var(--px)) 0; border-bottom: 1px solid #e3e0dc; }
.spec dt { font: 400 max(12px, calc(15 * var(--px))) / 1.5 var(--f-ko); color: #8a8580; min-width: 54px; }
.spec dd { font: 400 max(12px, calc(15 * var(--px))) / 1.55 var(--f-ko); color: var(--text); }

/* ==================== FAQ ==================== */
.faq { display: grid; grid-template-columns: 1fr 2fr; grid-template-rows: auto 1fr; border-top: 2px solid var(--line); background: var(--peach); }
.faq__head { grid-column: 1; background: var(--salmon); border-right: 2px solid var(--line); display: flex; align-items: center; padding: 0 calc(46 * var(--px)); height: calc(120 * var(--px)); min-height: 64px; border-bottom: 2px solid var(--line); }
.faq__head h2 { font: 700 calc(42 * var(--px)) / 1 var(--f-no); color: var(--text); }
.faq::before { content: ""; grid-column: 2; grid-row: 1; border-bottom: 2px solid var(--line); background: var(--peach); }
.faq__photo { grid-column: 1; grid-row: 2; border-right: 2px solid var(--line); overflow: hidden; position: relative; }
.faq__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
.faq__list { grid-column: 2; grid-row: 2; }
.faq__i { border-bottom: 2px solid var(--line); background: var(--peach); }
.faq__i:last-child { border-bottom: 0; }
.faq__q { width: 100%; display: grid; grid-template-columns: calc(62 * var(--px)) 1fr auto; align-items: center; gap: calc(14 * var(--px)); padding: calc(24 * var(--px)) calc(34 * var(--px)) calc(24 * var(--px)) calc(34 * var(--px)); min-height: calc(88 * var(--px)); }
.faq__q .no { font: 600 calc(34 * var(--px)) / 1 var(--f-no); color: var(--text); }
.faq__q .q { font: 600 max(14px, calc(21 * var(--px))) / 1.35 var(--f-ko); color: var(--text); }
.faq__q .ic { width: calc(40 * var(--px)); height: calc(40 * var(--px)); min-width: 28px; min-height: 28px; display: grid; place-items: center; background: var(--orange-d); color: #fff; transition: background .25s, transform .3s; }
.faq__q .ic svg { width: 70%; height: 70%; }
.faq__i.is-open .ic { background: var(--ink); }
.faq__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s ease; }
.faq__a > div { overflow: hidden; min-height: 0; }
.faq__a p { padding: 0 calc(80 * var(--px)) calc(26 * var(--px)) calc(110 * var(--px)); font: 400 max(13px, calc(16 * var(--px))) / 1.65 var(--f-ko); color: #5a5550; }
.faq__i.is-open .faq__a { grid-template-rows: 1fr; }

/* ==================== FOOTER ==================== */
.foot { background: #333; display: flex; align-items: center; gap: calc(34 * var(--px)); padding: calc(34 * var(--px)) calc(100 * var(--px)); min-height: calc(120 * var(--px)); }
.foot__logo { width: calc(32 * var(--px)); min-width: 22px; height: auto; flex: none; }
.foot__txt p { font: 400 max(11px, calc(13 * var(--px))) / 1.7 var(--f-ko); color: #a5a19c; }

/* ==================== TABLET / MOBILE ==================== */
@media (max-width: 900px) {
  :root { --px: calc(clamp(320px, 100 * var(--vw), 640px) / 390); --hd: calc(56 * var(--px)); }
  .page { overflow-x: clip; }
  .gnb { padding: 0 calc(18 * var(--px)) 0 calc(9 * var(--px)); }
  .gnb__logo .ico-orange { width: calc(22 * var(--px)); height: calc(24 * var(--px)); }
  .gnb__nav { gap: calc(11.2 * var(--px)); }
  .gnb__nav a { font-size: max(10px, calc(11 * var(--px))); letter-spacing: 0; }

  /* hero */
  .hero { height: calc(640 * var(--px)); }
  .hero__left { width: 100%; height: calc(250 * var(--px)); inset: 0 0 auto 0; border-right: 0; border-bottom: 2px solid var(--line); padding: calc(34 * var(--px)) 0 0 calc(24 * var(--px)); }
  .hero__today { font-size: calc(104 * var(--px)); }
  .hero__ko { font-size: calc(19 * var(--px)); margin-top: calc(14 * var(--px)); }
  .hero__sub { font-size: calc(12 * var(--px)); margin-top: calc(8 * var(--px)); }
  .hero__bowl--ramen { left: calc(-120 * var(--px)); top: calc(262 * var(--px)); width: calc(400 * var(--px)); }
  .hero__bowl--rice { left: calc(270 * var(--px)); top: calc(300 * var(--px)); width: calc(330 * var(--px)); }
  .hero__title { right: calc(20 * var(--px)); top: calc(386 * var(--px)); font-size: calc(98 * var(--px)); }
  .hero__title .sm { font-size: calc(54 * var(--px)); }
  .float-sns { right: calc(2px + 12px); bottom: calc(20px + env(safe-area-inset-bottom, 0px)); }
  .float-sns a { width: 46px; height: 46px; }

  .marquee { height: calc(54 * var(--px)); }
  .marquee__set > span { font-size: calc(13 * var(--px)); padding-right: calc(30 * var(--px)); }
  .marquee .ico-orange { width: calc(12 * var(--px)); height: calc(13 * var(--px)); }

  /* intro */
  /* mobile: the whole dish arrangement scrolls left in an endless loop (like the marquee) */
  .intro { height: calc(530 * var(--px)); --k: calc(var(--px) * .62); --loop: calc(1720 * var(--k)); }
  .intro__stage { left: 0; width: var(--loop); transform: none; animation: introLoop 36s linear infinite; }
  .intro__stage--clone { display: block; left: var(--loop); }
  .intro__title { padding-top: calc(56 * var(--px)); font-size: calc(26 * var(--px)); }
  .dish-label { font-size: calc(10 * var(--px)); }

  /* moments */
  .mgrid { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: auto; grid-template-areas: "img1 txt1" "img2 txt2" "img3 txt3" "panel panel"; }
  .mc-img { aspect-ratio: 1; }
  .mc-txt { aspect-ratio: 1; padding: 0 calc(18 * var(--px)); }
  .g-txt2 { padding-left: calc(18 * var(--px)); }
  .g-txt2 h3, .g-txt1 h3, .g-txt3 h3 { font-size: calc(18 * var(--px)); }
  .mc-txt p { font-size: calc(13 * var(--px)); }
  .mpanel { aspect-ratio: 390 / 396; border-left: 0; }
  .mbox { font-size: calc(13 * var(--px)); }
  .shorts { padding: calc(18 * var(--px)) 0; }
  .shorts__set { gap: calc(12 * var(--px)); padding-right: calc(12 * var(--px)); }
  .shorts__set li { height: calc(210 * var(--px)); }

  /* problem */
  .problem { padding: calc(60 * var(--px)) calc(16 * var(--px)) calc(64 * var(--px)); }
  .problem__title { font-size: calc(19 * var(--px)); }
  .problem__list { grid-template-columns: 1fr; gap: calc(44 * var(--px)); margin-top: calc(22 * var(--px)); }
  .bubble { width: calc(220 * var(--px)); height: calc(60 * var(--px)); font-size: calc(15 * var(--px)); }
  .problem__list img { margin-top: calc(26 * var(--px)); }
  .problem__list li:nth-child(1) img { width: calc(150 * var(--px)); }
  .problem__list li:nth-child(2) img { width: calc(110 * var(--px)); }
  .problem__list li:nth-child(3) img { width: calc(100 * var(--px)); }
  .banner { height: calc(64 * var(--px)); padding: 0 calc(16 * var(--px)); }
  .banner p { font-size: calc(22 * var(--px)); }

  /* steps */
  /* fixed proportions (390 design units); the block sits right under the header */
  .steps { --h: min(calc(634 * var(--px)), calc(100svh - var(--hd) + 2px)); height: calc(var(--h) + 200svh); }
  .steps__sticky { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; top: calc(var(--hd) - 2px); border-top: 2px solid var(--line); }
  .steps__visual { border-right: 0; border-bottom: 2px solid var(--line); min-height: 0; }
  .steps__circle { width: min(calc(269 * var(--px)), calc(100% - 56 * var(--px)), calc(var(--h) - 366 * var(--px))); }
  .steps__title { padding: calc(30 * var(--px)) calc(24 * var(--px)); font-size: calc(36 * var(--px)); line-height: 1.2; white-space: nowrap; }
  .steps__title br { display: none; }
  .steps__list li { grid-template-columns: calc(56 * var(--px)) calc(96 * var(--px)) 1fr; height: calc(70 * var(--px)); padding-right: calc(10 * var(--px)); }
  .steps__list .n, .steps__list .w { font-size: calc(19 * var(--px)); }
  .steps__list .d { font-size: calc(11.5 * var(--px)); }


  /* cover */
  .cover { padding: calc(64 * var(--px)) calc(16 * var(--px)) calc(60 * var(--px)); }
  .cover__title { font-size: calc(22 * var(--px)); }
  .cover__stage { width: 100%; height: auto; margin-top: calc(40 * var(--px)); display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(8 * var(--px)); }
  .cover__lidwrap { position: relative; left: auto; transform: none; grid-column: 1 / -1; width: 92%; margin: 0 auto calc(28 * var(--px)); }
  .cover__label { position: static; transform: none !important; width: auto !important; text-align: center; }
  .cover__label h3 { font-size: calc(17 * var(--px)); }
  .cover__label p { font-size: calc(12 * var(--px)); }
  .cover__label--l { order: 1; } .cover__label--b { order: 2; } .cover__label--r { order: 3; }
  .pin { width: calc(30 * var(--px)); height: calc(30 * var(--px)); }
  .cover__shots { gap: calc(8 * var(--px)); margin-top: calc(44 * var(--px)); }
  .cover__shots li { width: calc(112 * var(--px)); }

  /* heat */
  .heat { padding: calc(64 * var(--px)) 0 calc(60 * var(--px)); }
  .heat__title { font-size: calc(22 * var(--px)); padding: 0 calc(16 * var(--px)); }
  .heat__img { width: 130%; max-width: none; margin: calc(30 * var(--px)) 0 calc(10 * var(--px)) -15%; }
  .cmp { grid-template-columns: repeat(2, 1fr); gap: calc(26 * var(--px)) calc(16 * var(--px)); margin-top: calc(10 * var(--px)); padding: 0 calc(20 * var(--px)); }
  .cmp__i:nth-child(n) { margin-top: 0; }
  .cmp__img { border-radius: calc(18 * var(--px)); }
  .cmp h3 { font-size: calc(16 * var(--px)); }
  .cmp p { font-size: calc(12.5 * var(--px)); }
  .cmp__i--oh h3 { font-size: calc(16 * var(--px)); }

  /* trust */
  .trust__banner { height: calc(200 * var(--px)); }
  .trust__banner h2 { font-size: calc(21 * var(--px)); padding: 0 calc(12 * var(--px)); }
  .tgrid { grid-template-columns: 1fr 1fr; }
  .t-since { order: 1; } .t-machine { order: 2; } .t-warehouse { order: 3; } .t-cookware { order: 4; } .t-flag { order: 5; } .t-worker { order: 6; }
  .tc__txt b { font-size: calc(20.8 * var(--px)); }
  .t-since .tc__txt b { white-space: nowrap; }
  .t-since .tc__txt b br { display: none; }
  .tc__txt span { font-size: calc(12 * var(--px)); margin-top: calc(6 * var(--px)); }

  /* cta */
  .cta { min-height: calc(640 * var(--px)); align-items: flex-start; }
  .cta__bg { object-position: 72% 100%; transform: none; }
  .cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(246, 236, 224, .94) 0%, rgba(246, 236, 224, .78) 48%, rgba(246, 236, 224, 0) 78%); }
  .cta__in { padding: calc(44 * var(--px)) calc(24 * var(--px)) 0; z-index: 2; }
  .cta h2 { font-size: calc(24 * var(--px)); }
  .cta__brand { font-size: calc(40 * var(--px)); margin-top: calc(14 * var(--px)); }
  .cta__btn { font-size: calc(15 * var(--px)); margin-top: calc(18 * var(--px)); padding: calc(12 * var(--px)) calc(24 * var(--px)); }
  .cta__tags { margin-top: calc(26 * var(--px)); gap: calc(6 * var(--px)); }
  .cta__tags li { font-size: calc(13 * var(--px)); }

  /* detail */
  .detail { grid-template-columns: 1fr; padding: calc(56 * var(--px)) calc(24 * var(--px)); gap: calc(36 * var(--px)); }
  .detail__draw img { width: min(100%, calc(300 * var(--px))); }
  .detail__info h2 { font-size: calc(26 * var(--px)); }
  .spec { margin-top: calc(24 * var(--px)); max-width: none; }
  .spec > div { grid-template-columns: calc(86 * var(--px)) 1fr; padding: calc(12 * var(--px)) 0; }
  .spec dt, .spec dd { font-size: calc(13 * var(--px)); }

  /* faq */
  .faq { grid-template-columns: 1fr; grid-template-rows: none; }
  .faq::before { display: none; }
  .faq__head { height: calc(70 * var(--px)); padding: 0 calc(24 * var(--px)); border-right: 0; }
  .faq__head h2 { font-size: calc(28 * var(--px)); }
  .faq__photo { grid-row: auto; border-right: 0; border-bottom: 2px solid var(--line); aspect-ratio: 16 / 10; }
  .faq__list { grid-column: 1; grid-row: auto; }
  .faq__q { grid-template-columns: calc(38 * var(--px)) 1fr auto; padding: calc(16 * var(--px)) calc(18 * var(--px)); min-height: calc(64 * var(--px)); gap: calc(8 * var(--px)); }
  .faq__q .no { font-size: calc(20 * var(--px)); }
  .faq__q .q { font-size: calc(14 * var(--px)); }
  .faq__q .ic { width: calc(28 * var(--px)); height: calc(28 * var(--px)); }
  .faq__a p { padding: 0 calc(20 * var(--px)) calc(20 * var(--px)) calc(64 * var(--px)); font-size: calc(13 * var(--px)); }

  .foot { flex-direction: column; align-items: flex-start; padding: calc(32 * var(--px)) calc(24 * var(--px)); gap: calc(16 * var(--px)); }
  .foot__logo { width: calc(27.2 * var(--px)); }
  .foot__txt p { font-size: calc(11 * var(--px)); }
}

/* very wide tablets keep desktop grid but slightly tighter nav */
@media (min-width: 901px) and (max-width: 1100px) {
  .gnb__nav { gap: calc(26 * var(--px)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .reveal, .js .dish, .js .slide-group .slide-in { opacity: 1 !important; transform: none !important; }
  .js .dish { transform: translate(-50%, -50%) rotate(var(--rot, 0deg)) !important; }
}

/* Elfsight Instagram feed */
.shorts.has-widget { padding: calc(15 * var(--px)) calc(15 * var(--px)) 0; }
.shorts.has-widget [class*="elfsight-app-"] { margin-bottom: calc(15 * var(--px) - 52px); }
@media (max-width: 900px) { .shorts.has-widget { padding: calc(9 * var(--px)) calc(9 * var(--px)) 0; } .shorts.has-widget [class*="elfsight-app-"] { margin-bottom: calc(9 * var(--px) - 51px); } }
.shorts [class*="elfsight-app-"] { display: block; width: 100%; }
.shorts.has-widget .shorts__fallback { display: none; }

/* ==========================================================
   2026-10 추가: 언어 전환 메뉴 · Footer 사업자 정보
   (기존 규칙은 수정하지 않고 아래에서만 보완)
   ========================================================== */

/* ---------- 언어 전환 (공통) ----------
   마크업: nav.gnb__lang > button.lang__toggle(지구본) + ul.lang__menu(한국어 / English 링크)
   PC(901px~): 버튼 숨김, '한국어 | English' 가로 표시
   ~900px: 지구본 버튼 + 드롭다운 (열기/닫기는 js/lang-menu.js) */
.gnb__lang { white-space: nowrap; }
.gnb__lang a { color: var(--muted); padding: 6px 0; position: relative; transition: color .2s, background-color .2s; }
.gnb__lang a:hover, .gnb__lang a:focus-visible { color: var(--orange-d); }
.gnb__lang a.is-current { color: var(--ink); font-weight: 700; }
.gnb__lang a.is-current::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--orange); }
.lang__toggle { display: none; }

/* PC: 상단 메뉴 오른쪽 */
.gnb__nav { margin-left: auto; }
.gnb__lang { display: flex; align-items: center; margin-left: calc(44 * var(--px)); padding-left: calc(30 * var(--px)); border-left: 1px solid #d9d3cc; font: 500 max(11px, calc(14 * var(--px))) / 1 var(--f-ko); }
.lang__menu { display: flex; align-items: center; gap: calc(10 * var(--px)); }
.lang__menu li + li::before { content: "|"; margin-right: calc(10 * var(--px)); color: #c9c3bc; font-weight: 400; }

/* ---------- Footer 사업자 정보 ---------- */
.foot__info { display: flex; flex-wrap: wrap; }
.foot__txt .foot__info { font-size: max(12px, calc(14 * var(--px))); line-height: 1.8; color: #b3afaa; }
.foot__info > span, .foot__info .nw { white-space: nowrap; }
.foot__info > span + span::before { content: "|"; margin: 0 calc(12 * var(--px)); color: #6f6b67; }
.foot__info a { color: #e6e2dd; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: color .2s, text-decoration-color .2s; }
.foot__info a:hover, .foot__info a:focus-visible { color: var(--orange); text-decoration-color: currentColor; }
.foot__txt .foot__copy { margin-top: calc(8 * var(--px)); font-size: max(11px, calc(13 * var(--px))); color: #8f8b86; }

@media (max-width: 900px) {
  /* 모바일·태블릿: 메뉴 오른쪽 끝 지구본 버튼 → 드롭다운 (헤더는 한 줄 유지) */
  .gnb { padding-right: calc(8 * var(--px)); }
  .gnb__lang { display: block; margin-left: calc(4 * var(--px)); padding-left: 0; border-left: 0; font: 500 14px / 1.2 var(--f-ko); }
  .lang__toggle { display: inline-flex; align-items: center; gap: 2px; height: max(36px, calc(40 * var(--px))); padding: 0 max(4px, calc(5 * var(--px))); color: var(--ink); transition: color .2s; }
  .lang__toggle:hover, .gnb__lang.is-open .lang__toggle { color: var(--orange-d); }
  .lang__globe { width: max(17px, calc(18 * var(--px))); height: max(17px, calc(18 * var(--px))); flex: none; }
  .lang__caret { width: 7px; height: 5px; flex: none; transition: transform .2s; }
  .gnb__lang.is-open .lang__caret { transform: rotate(180deg); }

  .lang__menu { display: none; position: absolute; z-index: 61; top: calc(100% + 6px); right: calc(8 * var(--px)); min-width: 150px; background: #fff; border: 2px solid var(--line); box-shadow: 0 6px 18px rgba(0, 0, 0, .18); }
  .gnb__lang.is-open .lang__menu { display: block; }
  .gnb.is-lang-open { z-index: 75; }
  .lang__menu li + li { border-top: 1px solid #e8e2db; }
  .lang__menu li + li::before { content: none; }
  .gnb__lang .lang__menu a { display: block; padding: 13px 42px 13px 16px; color: var(--text); }
  .gnb__lang .lang__menu a:hover, .gnb__lang .lang__menu a:focus-visible { background: var(--cream); color: var(--orange-d); }
  .gnb__lang .lang__menu a.is-current { color: var(--orange-d); font-weight: 700; }
  .gnb__lang .lang__menu a.is-current::after { left: auto; right: 17px; top: 50%; bottom: auto; width: 11px; height: 6px; background: none; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-75%) rotate(-45deg); }
  .gnb__lang .lang__menu a:focus-visible { outline-offset: -3px; }
}

/* 휴대폰·태블릿(900px 이하): 메뉴 최대 폭 = 기존 메뉴 폭(디자인 기준 314). 공간이 남으면 기존과 동일한 간격,
   지구본 버튼 때문에 공간이 부족한 좁은 화면에서만 단어 사이 간격이 자동으로 줄어듦 (최소 4px) */
@media (max-width: 900px) {
  .gnb__logo { margin-right: max(8px, calc(12 * var(--px))); }
  .gnb__nav { flex: 1 1 auto; max-width: calc(314 * var(--px)); justify-content: space-between; gap: 4px; }
}
@media (max-width: 480px) {
  .gnb { padding-right: calc(4 * var(--px)); }
  .gnb__lang { margin-left: max(2px, calc(4 * var(--px))); }
  .lang__toggle { padding: 0 max(3px, calc(5 * var(--px))); }
  .lang__caret { display: none; }
}
/* 아주 좁은 화면(359px 이하): 글자 크기는 유지하고 자간만 아주 조금 줄임 */
@media (max-width: 359px) {
  .gnb__nav a { letter-spacing: -.015em; }
  .gnb__logo { margin-right: 6px; }
  .gnb__lang { margin-left: 1px; }
  .lang__toggle { padding: 0 2px; }
}

/* 모바일·태블릿 Footer */
@media (max-width: 900px) {
  .foot__info { flex-direction: column; flex-wrap: nowrap; }
  .foot__txt .foot__info { font-size: 12px; line-height: 1.75; }
  .foot__info > span { white-space: normal; }
  .foot__info > span + span::before { content: none; }
  .foot__info a { display: inline-block; padding: 3px 0; margin: -3px 0; }
  .foot__txt .foot__copy { margin-top: 10px; font-size: 11px; }
}

/* ---------- 영문 페이지(/en/) 전용 미세 조정: 영문 길이에 맞춘 글자 크기만 조정 ---------- */
@media (min-width: 901px) {
  html[lang="en"] .mbox { font-size: max(12px, calc(18 * var(--px))); }
}
@media (max-width: 900px) {
  html[lang="en"] .trust__banner h2 br { display: none; }
  html[lang="en"] .trust__banner h2 { max-width: 34em; text-wrap: balance; }
}

/* ---------- 2026-10 추가: Footer 공식 로고 (images/logo-ohrange.svg, 가로:세로 = 301:262) ---------- */
.foot .foot__logo { width: calc(64 * var(--px)); min-width: 52px; height: auto; }
@media (max-width: 900px) {
  .foot .foot__logo { width: clamp(46px, calc(48 * var(--px)), 60px); min-width: 0; }
}
