/* ============================================================
   사람과먹거리 리디자인 2차 — site.css
   컨셉: 「결」 정직한 식탁 · 브랜드 그린 리드 + 식욕 웜 사진
   Designed by 크리에이티브마루
   ============================================================ */

:root{
  --bg:#F4EFE3; --surface:#FFFDF8; --paper2:#FBF8F0;
  --ink:#1B2A1D; --green:#2E5236; --green-deep:#21402B; --footer:#141F16;
  --amber:#B96A2E; --amber-light:#E1A86A;
  --text:#4A4640; --text-mid:#544F47; --text-light:#7A746B;
  --line:rgba(27,42,29,0.14); --line-soft:#F1EAE0; --card-line:#E7DCC8;
  --serif:'Nanum Myeongjo',serif; --sans:'Noto Sans KR',sans-serif;
  --inner:1300px; --pad:56px; --hh:88px;
  --tr:0.3s cubic-bezier(.25,.6,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{font-family:var(--sans);font-size:17px;line-height:1.8;color:var(--text);background:var(--bg);word-break:keep-all;letter-spacing:-0.01em;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;border:0;}
a{color:inherit;text-decoration:none;transition:color var(--tr);}
a:hover{color:var(--green);}
ul,ol{list-style:none;}
h1,h2,h3,h4{color:var(--ink);line-height:1.35;font-weight:800;}
button{font-family:inherit;cursor:pointer;border:0;background:none;}
table{border-collapse:collapse;width:100%;}
::selection{background:var(--green);color:#fff;}
.inner{width:100%;max-width:var(--inner);margin:0 auto;padding:0 var(--pad);}
.serif{font-family:var(--serif);}
.amber{color:var(--amber);}

/* ---------- eyebrow / section head ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:0.22em;color:var(--green);margin-bottom:16px;text-transform:uppercase;}
.eyebrow::before{content:'';width:22px;height:1.5px;background:var(--green);}
.eyebrow.on-dark{color:var(--amber-light);}
.eyebrow.on-dark::before{background:var(--amber-light);}
.sec-title{font-family:var(--serif);font-size:clamp(28px,3.4vw,40px);font-weight:800;color:var(--ink);line-height:1.35;letter-spacing:-0.02em;}
.sec-desc{font-size:16px;color:var(--text-light);line-height:1.85;margin-top:14px;max-width:560px;}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:14px;height:58px;padding:0 12px 0 28px;border-radius:5px;font-size:15.5px;font-weight:700;transition:transform var(--tr),background var(--tr),box-shadow var(--tr),color var(--tr);}
.btn .arr{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;font-size:16px;background:rgba(255,255,255,0.16);}
.btn-green{background:var(--green);color:#F4EFE3;}
.btn-green:hover{background:var(--green-deep);color:#fff;transform:translate(-2px,-2px);box-shadow:4px 4px 0 rgba(46,82,54,0.25);}
.btn-amber{background:var(--amber-light);color:var(--ink);}
.btn-amber .arr{background:rgba(27,42,29,0.14);}
.btn-amber:hover{background:#fff;color:var(--ink);transform:translate(-2px,-2px);box-shadow:4px 4px 0 rgba(0,0,0,0.25);}
.btn-line{border:1.5px solid var(--green);color:var(--green);background:transparent;padding:0 28px;}
.btn-line:hover{background:var(--green);color:#fff;}
.btn-line-light{border:1.5px solid rgba(244,239,227,0.55);color:#fff;background:transparent;padding:0 28px;}
.btn-line-light:hover{background:#fff;color:var(--ink);border-color:#fff;}
.txtlink{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--ink);border-bottom:1.5px solid var(--amber);padding-bottom:3px;}
.txtlink:hover{color:var(--green);}
.morelink{font-size:14px;font-weight:600;color:var(--text-light);border-bottom:1px solid var(--line);padding-bottom:3px;}
.morelink:hover{color:var(--amber);}

/* ============================================================ HEADER ============================================================ */
.site-header{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--line);}
.hd-inner{height:var(--hh);display:flex;align-items:center;justify-content:space-between;}
.hd-left{display:flex;align-items:center;gap:52px;}
.hd-logo img{height:25px;width:auto;}
.gnb{display:flex;}
.gnb > li{position:relative;}
.gnb > li > a{display:block;padding:0 20px;line-height:var(--hh);font-size:15.5px;font-weight:500;color:#2A342A;}
.gnb > li > a:hover,.gnb > li.on > a{color:var(--green);}
.gnb > li::after{content:'';position:absolute;left:20px;right:20px;bottom:22px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform var(--tr);}
.gnb > li:hover::after,.gnb > li.on::after{transform:scaleX(1);}
.submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);min-width:170px;background:var(--surface);border:1px solid var(--card-line);border-radius:6px;box-shadow:0 18px 40px -20px rgba(27,42,29,0.4);padding:8px;opacity:0;visibility:hidden;transition:all var(--tr);}
.gnb > li:hover .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(6px);}
.submenu li a{display:block;padding:11px 16px;font-size:14.5px;font-weight:500;color:var(--text-mid);border-radius:4px;white-space:nowrap;}
.submenu li a:hover{background:var(--paper2);color:var(--green);}
.hd-cta{display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 22px;background:var(--green);color:#F4EFE3;font-size:14.5px;font-weight:700;border-radius:4px;}
.hd-cta:hover{background:var(--green-deep);color:#fff;}
.hd-burger{display:none;flex-direction:column;gap:5px;width:26px;height:26px;justify-content:center;}
.hd-burger span{height:2px;background:var(--ink);border-radius:2px;transition:all var(--tr);}

/* mobile drawer */
.drawer-dim{position:fixed;inset:0;background:rgba(20,31,22,0.5);z-index:200;opacity:0;visibility:hidden;transition:opacity var(--tr);}
.drawer-dim.open{opacity:1;visibility:visible;}
.drawer{position:fixed;top:0;right:0;width:min(86vw,340px);height:100%;background:var(--bg);z-index:201;transform:translateX(100%);transition:transform .34s cubic-bezier(.22,.6,.25,1);display:flex;flex-direction:column;overflow-y:auto;}
.drawer.open{transform:none;}
.drawer-top{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line);}
.drawer-top img{height:22px;}
.drawer-close{font-size:26px;color:var(--ink);line-height:1;width:34px;height:34px;}
.drawer-nav{padding:8px 12px 20px;}
.dacc > button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 12px;font-size:16px;font-weight:700;color:var(--ink);text-align:left;border-bottom:1px solid var(--line-soft);}
.dacc > button .chev{transition:transform var(--tr);color:var(--text-light);}
.dacc.open > button .chev{transform:rotate(180deg);}
.dacc-panel{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.dacc.open .dacc-panel{max-height:340px;}
.dacc-panel a{display:block;padding:11px 12px 11px 22px;font-size:14.5px;color:var(--text-mid);}
.dacc-panel a:hover{color:var(--green);}
.drawer-cta{margin:14px 12px 0;display:flex;gap:10px;}
.drawer-cta a{flex:1;display:inline-flex;align-items:center;justify-content:center;height:48px;border-radius:5px;font-size:14px;font-weight:700;}

/* ============================================================ HERO (main) ============================================================ */
.hero{position:relative;height:calc(100vh - var(--hh));min-height:600px;max-height:860px;overflow:hidden;}
.hero-track{position:absolute;inset:0;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center 38%;opacity:0;transition:opacity 1.1s ease,transform 6s ease;transform:scale(1.06);}
.hero-slide.active{opacity:1;transform:scale(1);}
.hero-slide::after{content:'';position:absolute;inset:0;background:radial-gradient(125% 105% at 6% 46%,rgba(46,82,54,0.34),transparent 56%),linear-gradient(87deg,rgba(20,31,22,0.92) 0%,rgba(20,31,22,0.62) 38%,rgba(20,31,22,0.16) 66%,rgba(20,31,22,0) 92%);}
.hero-s1{background-image:url(../assets/menu_bg.jpg);}
.hero-s2{background-image:url(../assets/biz1.jpg);}
.hero-s3{background-image:url(../assets/slide1.jpg);}
.hero-body{position:absolute;inset:0;z-index:3;display:flex;align-items:center;}
.hero-body .inner{width:100%;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:12px;margin-bottom:26px;}
.hero-eyebrow b{font-family:var(--serif);font-size:15px;font-weight:800;color:var(--amber-light);}
.hero-eyebrow i{width:26px;height:1.5px;background:var(--amber-light);}
.hero-eyebrow span{font-size:12.5px;font-weight:700;letter-spacing:0.22em;color:rgba(244,239,227,0.82);}
.hero h1{font-family:var(--serif);font-weight:800;font-size:clamp(38px,5.4vw,72px);line-height:1.22;letter-spacing:-0.025em;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,0.28);min-height:2.44em;}
.hero p{margin-top:26px;font-size:clamp(15px,1.6vw,18px);line-height:1.85;color:rgba(244,239,227,0.9);max-width:520px;}
.hero-btns{display:flex;align-items:center;gap:18px;margin-top:42px;flex-wrap:wrap;}
.hero-dots{position:absolute;left:0;right:0;bottom:40px;z-index:4;display:flex;justify-content:center;gap:9px;}
.hero-dots button{width:28px;height:4px;border-radius:4px;background:rgba(255,255,255,0.36);transition:all var(--tr);}
.hero-dots button.active{width:48px;background:var(--amber-light);}
.hero-nav{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,0.3);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all var(--tr);}
.hero-nav:hover{background:var(--green);border-color:var(--green);}
.hero-prev{left:26px;} .hero-next{right:26px;}

/* ============================================================ STAT SHELF ============================================================ */
.stats-wrap{position:relative;z-index:5;}
.stats-wrap .inner{padding-top:0;padding-bottom:0;}
.stat-shelf{margin-top:-68px;background:var(--surface);border:1px solid var(--card-line);border-radius:6px;box-shadow:14px 14px 0 rgba(46,82,54,0.1);display:grid;grid-template-columns:repeat(4,1fr);}
.stat-item{padding:34px 32px;border-right:1px solid var(--line-soft);position:relative;}
.stat-item:last-child{border-right:0;}
.stat-item::before{content:'';position:absolute;left:32px;top:0;width:26px;height:2px;background:var(--amber);}
.stat-num{font-family:var(--serif);font-size:clamp(40px,4vw,54px);font-weight:800;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums;}
.stat-num small{font-size:0.4em;color:var(--amber);margin-left:2px;font-weight:800;}
.stat-label{margin-top:12px;font-size:14.5px;font-weight:700;color:#2A342A;}
.stat-sub{font-size:13px;color:var(--text-light);margin-top:2px;}

/* ============================================================ BUSINESS ZIGZAG ============================================================ */
.section{padding:96px 0;}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:52px;flex-wrap:wrap;}
.biz-row{display:grid;align-items:center;}
.biz-row.a{grid-template-columns:7fr 5fr;margin-bottom:24px;}
.biz-row.b{grid-template-columns:5fr 7fr;}
.biz-photo{position:relative;aspect-ratio:16/10;border-radius:6px;overflow:hidden;background:var(--ink);}
.biz-photo>span{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1s cubic-bezier(.22,.6,.25,1);}
.biz-row:hover .biz-photo>span{transform:scale(1.05);}
.biz-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,42,29,0) 60%,rgba(27,42,29,0.5) 100%);}
.biz-panel{color:#F4EFE3;padding:54px 46px;border-radius:6px;position:relative;z-index:2;box-shadow:0 24px 50px -26px rgba(27,42,29,0.55);}
.biz-row.a .biz-panel{background:var(--green);margin-left:-56px;}
.biz-row.b .biz-panel{background:var(--green-deep);margin-right:-56px;}
.biz-panel .no{font-family:var(--serif);font-size:20px;font-weight:800;color:var(--amber-light);}
.biz-panel .en{font-size:11.5px;letter-spacing:0.2em;color:rgba(244,239,227,0.62);margin:16px 0 8px;}
.biz-panel h3{font-family:var(--serif);font-size:29px;font-weight:800;color:#fff;margin-bottom:14px;}
.biz-panel p{font-size:15px;line-height:1.85;color:rgba(244,239,227,0.86);}
.biz-panel .txtlink{color:#fff;margin-top:26px;border-color:var(--amber-light);}

/* ============================================================ APPETITE BAND ============================================================ */
.appetite{position:relative;min-height:460px;display:flex;align-items:center;justify-content:center;text-align:center;background:url(../assets/slide1.jpg) center 32%/cover;}
.appetite::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,31,22,0.62) 0%,rgba(20,31,22,0.22) 55%,rgba(20,31,22,0.34) 100%);}
.appetite .in{position:relative;z-index:2;padding:0 40px;max-width:820px;}
.appetite .lab{font-size:12.5px;font-weight:700;letter-spacing:0.24em;color:var(--amber-light);margin-bottom:20px;}
.appetite h2{font-family:var(--serif);font-size:clamp(28px,3.6vw,46px);font-weight:800;color:#fff;line-height:1.42;letter-spacing:-0.02em;text-shadow:0 2px 30px rgba(0,0,0,0.3);}

/* ============================================================ HYGIENE ============================================================ */
.hygiene{background:var(--paper2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.hyg-grid{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:center;}
.hyg-photo{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:4/5;background:var(--ink) url(../assets/slide3.jpg) center/cover;}
.hyg-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,42,29,0) 55%,rgba(27,42,29,0.4) 100%);}
.hyg-photo .cap{position:absolute;left:26px;bottom:24px;color:#F4EFE3;font-size:13px;letter-spacing:0.12em;z-index:2;}
.ledger{border-top:2px solid var(--ink);}
.ledger-row{display:grid;grid-template-columns:auto 1fr;gap:26px;padding:26px 4px;border-bottom:1px solid var(--line);}
.ledger-row:last-child{border-bottom:0;}
.ledger-row .no{font-family:var(--serif);font-size:24px;font-weight:800;color:rgba(46,82,54,0.5);}
.ledger-row h4{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.ledger-row p{font-size:14.5px;line-height:1.75;color:var(--text-mid);}

/* ============================================================ MENU + NOTICE ============================================================ */
.info-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:stretch;}
.menu-card{position:relative;border-radius:6px;overflow:hidden;padding:48px 44px;min-height:440px;display:flex;flex-direction:column;background:url(../assets/biz1.jpg) center/cover;color:#fff;}
.menu-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,31,22,0.08) 24%,rgba(20,31,22,0.55) 66%,rgba(20,31,22,0.9) 100%);}
.menu-card>*{position:relative;z-index:2;}
.menu-card .lab{font-size:12.5px;letter-spacing:0.2em;color:rgba(244,239,227,0.72);margin-bottom:14px;}
.menu-card h3{font-family:var(--serif);font-size:30px;font-weight:800;color:#fff;line-height:1.4;margin-bottom:12px;}
.menu-card p{font-size:15px;color:rgba(244,239,227,0.82);}
.menu-card .btn{margin-top:auto;align-self:flex-start;background:#fff;color:var(--ink);height:52px;padding:0 8px 0 24px;}
.menu-card .btn .arr{background:var(--paper2);color:var(--green);}
.menu-card .btn:hover{background:var(--amber);color:#fff;}
.notice-card{background:var(--surface);border:1px solid var(--card-line);border-radius:6px;padding:40px 38px;display:flex;flex-direction:column;}
.notice-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.notice-head h3{font-family:var(--serif);font-size:23px;font-weight:800;}
.notice-list li{border-bottom:1px solid var(--line-soft);}
.notice-list li:last-child{border-bottom:0;}
.notice-list a{display:flex;align-items:baseline;gap:16px;padding:15px 2px;font-size:15px;color:var(--text);}
.notice-list a:hover{color:var(--green);}
.notice-list .t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.notice-list .d{flex-shrink:0;font-size:13px;color:var(--text-light);}

/* ============================================================ CLIENTS ============================================================ */
.clients{background:var(--paper2);border-top:1px solid var(--line);}
.client-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.client-tile{aspect-ratio:3/2;background:#fff;border:1px solid var(--card-line);border-radius:5px;display:flex;align-items:center;justify-content:center;color:#C3BAA9;font-size:13px;font-weight:600;letter-spacing:0.1em;}

/* ============================================================ CONTACT BAND ============================================================ */
.contact{background:var(--ink);color:#fff;}
.contact-head{text-align:center;margin-bottom:48px;}
.contact-head h2{font-family:var(--serif);font-size:clamp(28px,3.4vw,38px);font-weight:800;color:#fff;line-height:1.4;}
.contact-head p{color:rgba(244,239,227,0.6);font-size:15.5px;margin-top:14px;}
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,0.14);}
.contact-grid li a{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:36px 20px;border-left:1px solid rgba(255,255,255,0.1);}
.contact-grid li:first-child a{border-left:0;}
.contact-grid li a:hover{background:rgba(225,168,106,0.1);}
.contact-grid .cl{font-size:12.5px;color:rgba(244,239,227,0.5);}
.contact-grid .cv{font-size:17px;font-weight:700;color:#fff;font-family:var(--serif);}
.contact-grid .cv.sans{font-family:var(--sans);font-size:15.5px;word-break:break-all;}

/* ============================================================ FOOTER ============================================================ */
.site-footer{background:var(--footer);color:rgba(244,239,227,0.62);}
.ft-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;padding:56px 0 0;}
.ft-brand{font-family:var(--serif);font-size:22px;font-weight:800;color:#F4EFE3;margin-bottom:16px;}
.ft-addr{font-size:13.5px;line-height:1.9;max-width:440px;}
.ft-cols{display:flex;gap:56px;font-size:13.5px;}
.ft-cols .col{display:flex;flex-direction:column;gap:9px;}
.ft-cols .col b{color:#F4EFE3;font-weight:700;margin-bottom:4px;}
.ft-cols a:hover{color:var(--amber-light);}
.ft-bottom{border-top:1px solid rgba(255,255,255,0.1);margin-top:36px;padding:22px 0 40px;display:flex;justify-content:space-between;font-size:12.5px;color:rgba(244,239,227,0.4);flex-wrap:wrap;gap:8px;}

/* ============================================================ SUBPAGE ============================================================ */
.sub-visual{position:relative;height:300px;display:flex;align-items:center;background-size:cover;background-position:center;}
.sub-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,31,22,0.82) 0%,rgba(20,31,22,0.45) 55%,rgba(20,31,22,0.2) 100%);}
.sub-visual .inner{position:relative;z-index:2;color:#fff;}
.sub-visual .en{font-size:12.5px;letter-spacing:0.24em;color:rgba(244,239,227,0.72);margin-bottom:14px;}
.sub-visual h1{font-family:var(--serif);font-size:clamp(32px,4vw,46px);font-weight:800;color:#fff;letter-spacing:-0.02em;}
.sub-visual .crumb{font-size:13px;color:rgba(244,239,227,0.6);margin-top:16px;}
.sub-visual .crumb b{color:var(--amber-light);font-weight:600;}
.sv-intro{background-image:url(../assets/sv_intro.jpg);}
.sv-business{background-image:url(../assets/biz1.jpg);}
.sv-hygiene{background-image:url(../assets/slide3.jpg);}
.sv-menu{background-image:url(../assets/menu_bg.jpg);}
.sv-board{background-image:url(../assets/slide2.jpg);}
.sv-consult{background-image:url(../assets/slide1.jpg);}

.subtabs{border-bottom:1px solid var(--line);background:var(--paper2);position:sticky;top:var(--hh);z-index:50;}
.subtabs .inner{display:flex;overflow-x:auto;}
.subtabs a{padding:20px 26px;font-size:15px;font-weight:500;color:var(--text-light);white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;}
.subtabs a:hover{color:var(--green);}
.subtabs a.on{color:var(--green);font-weight:700;border-bottom-color:var(--green);}

.sub-body{padding:88px 0 96px;}
.sub-lead{font-family:var(--serif);font-size:clamp(24px,3vw,38px);font-weight:800;color:var(--ink);line-height:1.5;letter-spacing:-0.02em;margin-bottom:32px;}
.prose p{font-size:16.5px;line-height:1.95;color:var(--text);margin-bottom:20px;}
.prose p:last-child{margin-bottom:0;}

/* greeting */
.greet-grid{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start;}
.ceo-photo{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:3/4;background:var(--ink) url(../assets/greeting_ceo.jpg) center/cover;}
.ceo-name{margin-top:20px;border-left:2px solid var(--green);padding-left:18px;}
.ceo-name .r{font-size:13px;color:var(--text-light);}
.ceo-name .n{font-family:var(--serif);font-size:22px;font-weight:800;color:var(--ink);margin-top:2px;}
.pullquote{margin-top:44px;background:var(--green);color:#F4EFE3;border-radius:6px;padding:34px 40px;position:relative;overflow:hidden;}
.pullquote .mark{position:absolute;left:26px;top:6px;font-family:var(--serif);font-size:70px;color:rgba(255,255,255,0.16);line-height:1;}
.pullquote p{font-family:var(--serif);font-size:clamp(20px,2.2vw,24px);font-weight:700;color:#fff;line-height:1.6;padding-left:38px;position:relative;}

/* value cards / generic cards */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.card{background:var(--surface);border:1px solid var(--card-line);border-radius:6px;padding:34px 30px;}
.card .no{font-family:var(--serif);font-size:20px;font-weight:800;color:var(--amber);}
.card h4{font-size:19px;font-weight:700;margin:14px 0 10px;}
.card p{font-size:14.5px;line-height:1.75;color:var(--text-mid);}

/* info callout */
.callout{background:#EDF2EA;border-left:3px solid var(--green);border-radius:0 6px 6px 0;color:var(--green);font-size:15px;font-weight:600;padding:16px 22px;margin:24px 0;}

/* table */
.tbl{background:var(--surface);border:1px solid var(--card-line);border-radius:6px;overflow:hidden;}
.tbl th,.tbl td{padding:15px 14px;font-size:14.5px;border-top:1px solid var(--line-soft);border-right:1px solid var(--line-soft);}
.tbl thead th{background:var(--green);color:#fff;font-weight:600;border-color:rgba(255,255,255,0.14);border-top:0;}
.tbl tbody th{background:#EDF2EA;color:var(--green);font-weight:700;}
.tbl th:last-child,.tbl td:last-child{border-right:0;}
.tbl .tac{text-align:center;}

/* region stats (위탁급식) */
.region-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink);}
.region-grid .it{padding:30px 26px;border-right:1px solid var(--line);}
.region-grid .it:last-child{border-right:0;}
.region-grid .n{font-family:var(--serif);font-size:44px;font-weight:800;color:var(--ink);line-height:1;}
.region-grid .n small{font-size:0.42em;color:var(--amber);}
.region-grid .l{margin-top:10px;font-size:14.5px;font-weight:700;}

/* weekly menu */
.day-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px;}
.day-tabs button{padding:12px 22px;border-radius:5px;font-size:15px;font-weight:600;background:var(--surface);border:1px solid var(--card-line);color:var(--text-mid);}
.day-tabs button.on{background:var(--green);color:#fff;border-color:var(--green);}
.day-panel{display:none;}
.day-panel.on{display:block;animation:fadeUp .4s ease;}
.meal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.meal{background:var(--surface);border:1px solid var(--card-line);border-radius:6px;overflow:hidden;}
.meal .mh{background:var(--green);color:#fff;padding:14px 20px;font-weight:700;display:flex;justify-content:space-between;align-items:center;}
.meal .mh span{font-size:12.5px;font-weight:500;color:rgba(255,255,255,0.75);}
.meal ul{padding:20px 22px;}
.meal li{position:relative;padding:7px 0 7px 18px;font-size:15px;color:var(--text);}
.meal li::before{content:'';position:absolute;left:2px;top:15px;width:6px;height:6px;border-radius:50%;background:var(--amber);opacity:.7;}
.meal .kcal{padding:12px 22px;border-top:1px solid var(--line-soft);font-size:13.5px;color:var(--text-light);}

/* board list */
.board-list{border-top:2px solid var(--ink);}
.board-list li{border-bottom:1px solid var(--line);}
.board-list .item{display:flex;align-items:center;gap:20px;padding:20px 6px;}
.board-list .item:hover{background:var(--paper2);}
.board-list .bn{font-family:var(--serif);font-size:15px;color:var(--text-light);width:44px;flex-shrink:0;text-align:center;}
.board-list .bt{flex:1;font-size:16px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.board-list .bd{flex-shrink:0;font-size:13.5px;color:var(--text-light);}
.badge{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:3px;background:#EDF2EA;color:var(--green);margin-right:10px;}

/* qna accordion */
.qna li{border-bottom:1px solid var(--line);}
.qna .q{display:flex;align-items:center;gap:16px;padding:22px 6px;font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;}
.qna .q .qq{font-family:var(--serif);color:var(--amber);font-size:20px;font-weight:800;}
.qna .q .chev{margin-left:auto;color:var(--text-light);transition:transform var(--tr);}
.qna li.open .q .chev{transform:rotate(180deg);}
.qna .a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.qna li.open .a{max-height:300px;}
.qna .a-in{display:flex;gap:16px;padding:0 6px 24px;font-size:15px;line-height:1.85;color:var(--text-mid);}
.qna .a-in .aa{font-family:var(--serif);color:var(--green);font-size:20px;font-weight:800;}

/* consult grid */
.consult-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.consult-box{background:var(--surface);border:1px solid var(--card-line);border-radius:6px;padding:44px 40px;}
.consult-box .ic{width:56px;height:56px;border-radius:8px;background:#EDF2EA;display:flex;align-items:center;justify-content:center;margin-bottom:22px;color:var(--green);font-size:24px;font-family:var(--serif);font-weight:800;}
.consult-box h3{font-family:var(--serif);font-size:24px;font-weight:800;margin-bottom:12px;}
.consult-box .big{font-family:var(--serif);font-size:30px;font-weight:800;color:var(--green);margin:14px 0;}
.form-row{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.form-row label{font-size:13.5px;font-weight:600;color:var(--text-mid);}
.form-row input,.form-row textarea{border:1px solid var(--card-line);border-radius:5px;padding:12px 14px;font-family:inherit;font-size:15px;background:#fff;}
.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--green);border-color:transparent;}

/* org chart */
.org{display:flex;flex-direction:column;align-items:center;gap:0;}
.org .node{background:var(--green);color:#fff;font-weight:700;border-radius:6px;padding:16px 34px;font-size:16px;text-align:center;}
.org .node.sub{background:var(--surface);color:var(--ink);border:1px solid var(--card-line);font-weight:600;}
.org .line{width:2px;height:30px;background:var(--line);}
.org .row{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;}

/* map */
.map-box{border:1px solid var(--card-line);border-radius:6px;overflow:hidden;background:var(--paper2);height:420px;display:flex;align-items:center;justify-content:center;color:var(--text-light);font-size:15px;text-align:center;background-image:linear-gradient(rgba(46,82,54,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(46,82,54,.04) 1px,transparent 1px);background-size:28px 28px;}

/* history timeline */
.timeline{border-left:2px solid var(--line);padding-left:0;}
.tl-item{display:grid;grid-template-columns:120px 1fr;gap:30px;padding:0 0 40px 30px;position:relative;}
.tl-item::before{content:'';position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--green);border:3px solid var(--bg);}
.tl-year{font-family:var(--serif);font-size:26px;font-weight:800;color:var(--green);}
.tl-desc h4{font-size:17px;font-weight:700;margin-bottom:4px;}
.tl-desc p{font-size:14.5px;color:var(--text-mid);}

/* sticky mobile cta */
.m-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;height:64px;background:var(--bg);border-top:1px solid var(--card-line);align-items:center;gap:10px;padding:0 16px;}
.m-cta a{flex:1;display:inline-flex;align-items:center;justify-content:center;height:44px;border-radius:5px;font-size:13.5px;font-weight:700;}
.m-cta a.line{border:1.5px solid var(--green);color:var(--green);}
.m-cta a.fill{flex:1.4;background:var(--green);color:#F4EFE3;gap:8px;}

/* pageup */
#pageup{position:fixed;right:24px;bottom:24px;width:50px;height:50px;border-radius:50%;background:var(--ink);color:#fff;display:none;align-items:center;justify-content:center;z-index:80;box-shadow:0 8px 24px rgba(27,42,29,.25);transition:all var(--tr);}
#pageup:hover{background:var(--green);transform:translateY(-3px);color:#fff;}

/* scroll reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.22,.6,.25,1),transform .9s cubic-bezier(.22,.6,.25,1);}
.rv.in{opacity:1;transform:none;}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width:1024px){
  :root{--pad:32px;--hh:70px;}
  .gnb,.hd-cta{display:none;}
  .hd-burger{display:flex;}
  .stat-shelf{grid-template-columns:1fr 1fr;}
  .stat-item:nth-child(2){border-right:0;}
  .stat-item:nth-child(1),.stat-item:nth-child(2){border-bottom:1px solid var(--line-soft);}
  .biz-row.a,.biz-row.b{grid-template-columns:1fr;}
  .biz-panel{margin:0 !important;border-radius:0 0 6px 6px;}
  .biz-photo{border-radius:6px 6px 0 0;}
  .hyg-grid{grid-template-columns:1fr;gap:32px;}
  .info-grid{grid-template-columns:1fr;}
  .client-grid{grid-template-columns:repeat(3,1fr);}
  .contact-grid{grid-template-columns:1fr 1fr;}
  .contact-grid li:nth-child(3) a{border-left:0;}
  .greet-grid{grid-template-columns:1fr;gap:36px;}
  .ceo-photo{aspect-ratio:4/3;max-width:420px;}
  .cards-3{grid-template-columns:1fr;}
  .region-grid{grid-template-columns:1fr 1fr;}
  .meal-grid{grid-template-columns:1fr;}
  .consult-grid{grid-template-columns:1fr;}
  .tl-item{grid-template-columns:90px 1fr;gap:18px;}
}
@media (max-width:768px){
  :root{--pad:20px;}
  body{font-size:16px;padding-bottom:64px;}
  .section{padding:60px 0;}
  .sec-head{margin-bottom:34px;}
  .hero{height:78vh;max-height:none;min-height:520px;}
  .hero-nav{display:none;}
  .hero h1{min-height:0;}
  .stat-shelf{box-shadow:8px 8px 0 rgba(46,82,54,0.1);}
  .stat-item{padding:24px 20px;}
  .stat-item::before{left:20px;}
  .biz-panel{padding:30px 26px;}
  .hyg-photo{aspect-ratio:16/10;}
  .menu-card{padding:32px 26px;min-height:300px;}
  .notice-card{padding:28px 24px;}
  .client-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
  .contact-grid li a{border-left:0;border-top:1px solid rgba(255,255,255,0.1);}
  .contact-grid li:first-child a{border-top:0;}
  .ft-cols{gap:30px;flex-wrap:wrap;}
  .sub-visual{height:220px;}
  .sub-body{padding:52px 0 64px;}
  .region-grid{grid-template-columns:1fr 1fr;}
  .m-cta{display:flex;}
  #pageup{bottom:80px;right:16px;}
}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none;}
  .hero-slide{transition:opacity .6s ease;transform:none;}
  html{scroll-behavior:auto;}
}


/* ============================================================ GALLERY ============================================================ */
.client-grid > div > a {
    display: block;
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    background: var(--surface);
    box-shadow: 0 2px 10px rgba(27,42,29,0.08), 0 0 0 1px var(--card-line);
    transition: box-shadow 0.38s ease, transform 0.38s ease;
}
.client-grid > div > a:hover {
    box-shadow: 0 14px 38px rgba(27,42,29,0.18);
    transform: translateY(-6px);
}

.gal-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #dde4d6;
    position: relative;
}
.gal-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(46,82,54,0.12);
    opacity: 0;
    transition: opacity 0.38s ease;
    pointer-events: none;
}
.client-grid > div > a:hover .gal-img::after { opacity: 1; }

.gal-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}
.client-grid > div > a:hover .gal-img img { transform: scale(1.07); }

.gal-img.gal-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #aaa;
    font-size: 13px;
}

.gal-tit {
    padding: 11px 13px 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-left: 3px solid transparent;
    transition: color 0.3s ease, border-color 0.3s ease;
}
.client-grid > div > a:hover .gal-tit {
    color: var(--green);
    border-left-color: var(--amber);
}