@charset "utf-8";
/* ============================================================
   케이로드 K-ROAD — 공통 스타일시트
   토큰 근거 : _스펙_5팀_롯데관광.md (롯데관광 실측)
   ⚠ 이 파일 하나를 전 페이지가 참조한다. 페이지에 인라인 복붙 금지.
   ============================================================ */

:root{
  /* --- 색 (원본 실측 + 대비 시정) --- */
  --brand:#F1454C;          /* 주조색 — 원본 #F1454C 그대로 */
  --brand-cta:#CE2C34;      /* 흰 글자 얹는 버튼 배경 (5.21:1) */
  --brand-cta-h:#B02128;
  --brand-tint:#FDEEEF;
  --ink:#303030;            /* 본문·제목 (13.20:1) */
  --ink-2:#666666;          /* 보조 텍스트 (5.74:1) */
  --ink-3:#555555;          /* 효도계열 보조 (7.46:1) */
  --price:#C62828;          /* 가격 강조 (5.62:1) */
  --link:#3C64D6;           /* 링크·전화 (5.27:1) */
  --line:#DDDDDD;           /* 구분선 — 원본 실측 최다 */
  --line-2:#EDEDED;
  --bg:#FFFFFF;
  --bg-2:#F8F8F8;           /* 표 헤더·탭 비활성 */
  --bg-3:#F0F0F0;
  --dark:#303030;

  /* --- 형태 --- */
  --r:0;                    /* 버튼 radius — 원본 실측 12개 전부 0px */
  --r-pill:999px;
  --wrap:1100px;            /* 원본 실측 1100px */

  /* --- 타이포 --- */
  --ff:"Malgun Gothic","맑은 고딕","Apple SD Gothic Neo","Noto Sans KR",sans-serif;
  --fs:16px;
  --fs-sm:14px;
  --lh:1.75;

  --shadow:0 2px 10px rgba(0,0,0,.07);
  --shadow-2:0 6px 24px rgba(0,0,0,.10);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--ff);font-size:var(--fs);line-height:var(--lh);
  color:var(--ink);background:var(--bg);word-break:keep-all;overflow-wrap:anywhere;
}
img{max-width:100%;height:auto;border:0;vertical-align:middle}
a{color:var(--link);text-decoration:none}
a:hover,a:focus{text-decoration:underline}
h1,h2,h3,h4,h5,p,ul,ol,dl,dd,figure,table{margin:0}
ul,ol{padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
button{font-family:inherit;font-size:inherit;cursor:pointer}
svg{display:block}
:focus-visible{outline:3px solid var(--link);outline-offset:2px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ink);color:#fff;padding:12px 20px}
.skip:focus{left:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ============================ 헤더 ============================ */
.util{background:var(--bg-2);border-bottom:1px solid var(--line);font-size:13px}
.util .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:38px;flex-wrap:wrap}
.util ul{display:flex;flex-wrap:wrap;align-items:center;gap:0}
.util li+li{border-left:1px solid var(--line);margin-left:12px;padding-left:12px}
.util a{color:var(--ink-2)}
.util a:hover{color:var(--ink)}
.util .util-tel{color:var(--ink);font-weight:700}
.util .util-tel b{color:var(--link);font-size:15px;letter-spacing:-.02em}

.hd{position:sticky;top:0;z-index:120;background:#fff;border-bottom:2px solid var(--ink)}
.hd-in{max-width:var(--wrap);margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:28px;min-height:78px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.logo:hover{text-decoration:none}
.logo svg{width:38px;height:38px;flex:none}
.logo .lg-t{display:block;font-size:23px;font-weight:900;letter-spacing:-.04em;color:var(--ink);line-height:1.15}
.logo .lg-s{display:block;font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--brand-cta)}

.gnb{flex:1;min-width:0}
.gnb>ul{display:flex;flex-wrap:wrap;gap:0}
.gnb>ul>li{position:relative}
.gnb>ul>li>a{display:block;padding:14px 15px;font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.03em}
.gnb>ul>li>a:hover,.gnb>ul>li>a:focus{color:var(--brand-cta);text-decoration:none}
.gnb>ul>li.on>a{color:var(--brand-cta)}
.gnb>ul>li.on>a::after{content:"";display:block;height:3px;background:var(--brand);margin-top:6px}
.gnb-sub{position:absolute;left:0;top:100%;min-width:190px;background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow-2);padding:8px 0;display:none;z-index:130}
.gnb>ul>li:hover .gnb-sub,.gnb>ul>li:focus-within .gnb-sub{display:block}
.gnb-sub a{display:block;padding:9px 18px;font-size:15px;color:var(--ink);white-space:nowrap}
.gnb-sub a:hover{background:var(--bg-2);color:var(--brand-cta);text-decoration:none}
.hd-cta{flex:none;display:flex;gap:8px}

.navtoggle{display:none;flex:none;border:1px solid var(--line);background:#fff;padding:9px 11px}

/* ============================ 브레드크럼 ============================ */
.crumb{border-bottom:1px solid var(--line-2);background:#fff}
.crumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:11px 0;font-size:13px;color:var(--ink-2)}
.crumb li+li::before{content:"›";margin-right:8px;color:#8A8A8A}
.crumb a{color:var(--ink-2)}
.crumb [aria-current]{color:var(--ink);font-weight:700}

/* ============================ 페이지 히어로 ============================ */
.phero{position:relative;color:#fff;background:var(--ink);overflow:hidden}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(24,24,24,.93) 0%,rgba(24,24,24,.76) 55%,rgba(24,24,24,.52) 100%)}
.phero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero .wrap{position:relative;z-index:2;padding-top:62px;padding-bottom:62px}
.phero .eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.16em;
  border:1px solid rgba(255,255,255,.65);padding:5px 13px;border-radius:var(--r-pill);margin-bottom:16px}
.phero h1{font-size:40px;font-weight:900;letter-spacing:-.045em;line-height:1.28;margin-bottom:14px}
.phero p{font-size:17px;color:#F2F2F2;max-width:720px}
.phero-flat{background:var(--bg-2);color:var(--ink);border-bottom:1px solid var(--line)}
.phero-flat::after{display:none}
.phero-flat h1{color:var(--ink)}
.phero-flat p{color:var(--ink-2)}
.phero-flat .eyebrow{border-color:var(--brand);color:var(--brand-cta)}

/* 홈 대형 히어로 */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(92deg,rgba(18,18,18,.93) 0%,rgba(18,18,18,.72) 58%,rgba(18,18,18,.44) 100%)}
.hero .wrap{position:relative;z-index:2;padding-top:96px;padding-bottom:96px}
.hero h1{font-size:52px;font-weight:900;line-height:1.22;letter-spacing:-.05em;margin-bottom:20px}
.hero h1 em{font-style:normal;color:#FFC9CB}
.hero .lead{font-size:19px;color:#EDEDED;max-width:660px;margin-bottom:30px}
.hero-facts{display:flex;flex-wrap:wrap;gap:0;margin-top:36px;border-top:1px solid rgba(255,255,255,.28);padding-top:22px}
.hero-facts div{padding-right:34px;margin-right:34px;border-right:1px solid rgba(255,255,255,.22)}
.hero-facts div:last-child{border-right:0;margin-right:0;padding-right:0}
.hero-facts b{display:block;font-size:28px;font-weight:900;letter-spacing:-.03em}
.hero-facts span{font-size:13px;color:#D8D8D8}

/* ============================ 섹션 ============================ */
.sec{padding:58px 0}
.sec+.sec{border-top:1px solid var(--line-2)}
.sec-gray{background:var(--bg-2)}
.sec-hd{margin-bottom:26px}
.sec-hd .k{display:block;font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--brand-cta);margin-bottom:8px}
.sec-hd h2{font-size:28px;font-weight:900;letter-spacing:-.04em;line-height:1.35;color:var(--ink)}
.sec-hd h3{font-size:20px;font-weight:700;color:var(--ink)}
.sec-hd p{margin-top:10px;color:var(--ink-2);font-size:16px;max-width:840px}
.sec-hd-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}

h3.blk{font-size:20px;font-weight:700;color:var(--ink);margin:34px 0 14px;padding-left:13px;border-left:4px solid var(--brand)}
h4.blk{font-size:17px;font-weight:700;color:var(--ink);margin:22px 0 10px}
.sec p+p{margin-top:14px}
.sec>.wrap>p,.prose p{color:var(--ink);font-size:16px}
.prose p+p,.prose ul+p,.prose p+ul{margin-top:14px}
.lead-txt{font-size:18px;font-weight:700;letter-spacing:-.03em;line-height:1.7;color:var(--ink)}

/* ============================ 리스트 ============================ */
.bullets li{position:relative;padding-left:17px;margin-bottom:9px;color:var(--ink)}
.bullets li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:6px;background:var(--brand);border-radius:50%}
.checks li{position:relative;padding-left:28px;margin-bottom:11px}
.checks li::before{content:"";position:absolute;left:0;top:.28em;width:19px;height:19px;
  background:var(--brand-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.4l4 4L16 6' fill='none' stroke='%23CE2C34' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat;
  border-radius:50%}
.nums{counter-reset:n}
.nums li{counter-increment:n;position:relative;padding-left:34px;margin-bottom:13px}
.nums li::before{content:counter(n);position:absolute;left:0;top:.18em;width:24px;height:24px;line-height:24px;
  text-align:center;background:var(--ink);color:#fff;font-size:13px;font-weight:700;border-radius:50%}

/* ============================ 표 ============================ */
.tbl{border-top:2px solid var(--ink);font-size:15px}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:13px 14px;text-align:left;vertical-align:top}
.tbl thead th{background:var(--bg-2);font-weight:700;color:var(--ink);white-space:nowrap}
.tbl tbody th{background:var(--bg-2);font-weight:700;width:150px;color:var(--ink)}
.tbl td{color:var(--ink)}
.tbl .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.tbl .c{text-align:center}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl caption{caption-side:top;text-align:left;font-size:14px;color:var(--ink-2);padding-bottom:9px}

/* 일정표 */
.itin{border-top:2px solid var(--ink)}
.itin>li{border-bottom:1px solid var(--line);padding:22px 0;display:flex;gap:24px;flex-wrap:wrap}
.itin .day{flex:none;width:118px}
.itin .day b{display:block;font-size:19px;font-weight:900;color:var(--ink);letter-spacing:-.03em}
.itin .day span{display:block;font-size:13px;color:var(--ink-2);margin-top:3px}
.itin .body{flex:1;min-width:260px}
.itin .body h4{font-size:17px;font-weight:700;margin-bottom:8px;color:var(--ink)}
.itin .body p{color:var(--ink);margin-bottom:10px}
.itin .meal{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.itin .meal span{font-size:12px;border:1px solid var(--line);padding:3px 10px;border-radius:var(--r-pill);color:var(--ink-2);background:#fff}
.itin .stop{margin-top:10px}
.itin .stop li{position:relative;padding-left:20px;font-size:15px;color:var(--ink-2);margin-bottom:6px}
.itin .stop li::before{content:"";position:absolute;left:4px;top:.62em;width:7px;height:7px;border:2px solid var(--brand);border-radius:50%;background:#fff}

/* ============================ 버튼 ============================ */
.btn{display:inline-block;border:1px solid transparent;border-radius:var(--r);
  font-weight:700;letter-spacing:-.02em;text-align:center;transition:background .18s var(--ease),color .18s var(--ease);
  padding:13px 26px;font-size:16px;text-decoration:none}
.btn:hover{text-decoration:none}
.btn-cta{background:var(--brand-cta);color:#fff}
.btn-cta:hover,.btn-cta:focus{background:var(--brand-cta-h);color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000;color:#fff}
.btn-line{background:#fff;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-lg{padding:18px 38px;font-size:20px;width:100%}
.btn-sm{padding:8px 16px;font-size:14px}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}

/* ============================ 뱃지 ============================ */
.badge{display:inline-block;font-size:12px;font-weight:700;padding:4px 11px;border-radius:var(--r-pill);
  background:var(--brand-tint);color:var(--brand-cta);letter-spacing:-.02em;white-space:nowrap}
.badge-dark{background:var(--ink);color:#fff}
.badge-line{background:#fff;color:var(--ink-2);border:1px solid var(--line)}
.badge-blue{background:#EDF2FC;color:#2A4FB8}
.badges{display:flex;flex-wrap:wrap;gap:6px}

/* ============================ 그리드·카드 ============================ */
.grid{display:grid;gap:22px}
.grid>*{min-width:0}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g6{grid-template-columns:repeat(6,minmax(0,1fr))}

.card{background:#fff;border:1px solid var(--line);padding:24px;height:100%}
.card h3{font-size:18px;font-weight:700;margin-bottom:9px;color:var(--ink);letter-spacing:-.03em}
.card p{color:var(--ink-2);font-size:15px}
.card .ico{width:42px;height:42px;margin-bottom:14px}
.card-flat{border:0;background:var(--bg-2)}

/* 상품 카드 */
.prd{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;height:100%;transition:box-shadow .2s var(--ease)}
.prd:hover{box-shadow:var(--shadow-2)}
.prd .th{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bg-3)}
.prd .th img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.prd:hover .th img{transform:scale(1.05)}
.prd .th .badges{position:absolute;left:10px;top:10px}
.prd .bd{padding:17px 17px 19px;display:flex;flex-direction:column;flex:1}
.prd .code{font-size:12px;color:var(--ink-2);letter-spacing:.02em}
.prd h3{font-size:17px;font-weight:700;line-height:1.45;letter-spacing:-.035em;margin:6px 0 9px;color:var(--ink)}
.prd h3 a{color:inherit}
.prd .desc{font-size:14px;color:var(--ink-2);margin-bottom:12px;flex:1}
.prd .meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.prd .meta span{font-size:12px;background:var(--bg-2);border:1px solid var(--line-2);padding:3px 9px;color:var(--ink-2)}
.prd .pr{border-top:1px solid var(--line-2);padding-top:12px;display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.prd .pr .from{font-size:13px;color:var(--ink-2)}
.prd .pr b{font-size:24px;font-weight:900;color:var(--price);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.prd .pr b i{font-style:normal;font-size:14px;font-weight:700;margin-left:1px}

/* 지역 타일 */
.tile{position:relative;display:block;overflow:hidden;border:1px solid var(--line);background:#fff}
.tile img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;transition:transform .45s var(--ease)}
.tile:hover img{transform:scale(1.06)}
.tile:hover{text-decoration:none}
.tile .cap{padding:16px 17px 18px}
.tile .cap b{display:block;font-size:19px;font-weight:900;color:var(--ink);letter-spacing:-.04em}
.tile .cap span{display:block;font-size:14px;color:var(--ink-2);margin-top:5px}
.tile .cap em{display:inline-block;font-style:normal;font-size:12px;color:var(--brand-cta);font-weight:700;margin-top:9px}

/* ============================ 예약 패널 ============================ */
.detail{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:40px;align-items:start}
.detail>*{min-width:0}
.dt-main{min-width:0}
.dt-main>section{min-width:0}
.book{position:sticky;top:96px;border:2px solid var(--ink);background:#fff}
.book .hd2{background:var(--ink);color:#fff;padding:14px 18px;font-size:17px;font-weight:700}
.book .bd{padding:18px}
.book dl{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:15px}
.book dt{color:var(--ink-2);flex:none}
.book dd{text-align:right;font-weight:700;color:var(--ink)}
.book .total{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0 6px}
.book .total span{font-size:15px;font-weight:700}
.book .total b{font-size:29px;font-weight:900;color:var(--price);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.book .total b i{font-style:normal;font-size:15px;margin-left:1px}
.book .note{font-size:13px;color:var(--ink-2);margin-top:10px;line-height:1.65}
.book .tel{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);text-align:center}
.book .tel span{display:block;font-size:13px;color:var(--ink-2)}
.book .tel b{font-size:23px;font-weight:900;color:var(--link);letter-spacing:-.02em}

/* ============================ 탭 / 아코디언 ============================ */
.tabs{display:flex;flex-wrap:wrap;border:1px solid var(--line);border-bottom:0;margin-bottom:0}
.tabs a{flex:1;min-width:110px;text-align:center;padding:14px 8px;background:var(--bg-2);color:var(--ink-2);
  font-size:15px;font-weight:700;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.tabs a:last-child{border-right:0}
.tabs a:hover{text-decoration:none;color:var(--ink)}
.tabs a.on{background:#fff;color:var(--brand-cta);border-bottom-color:#fff;position:relative}
.tabs a.on::before{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:var(--brand)}

.acc{border-top:2px solid var(--ink)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;padding:18px 44px 18px 16px;position:relative;
  font-size:17px;font-weight:700;color:var(--ink)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";position:absolute;right:16px;top:50%;width:11px;height:11px;margin-top:-7px;
  border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);transition:transform .2s}
.acc details[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
.acc details[open] summary{color:var(--brand-cta)}
.acc .ans{padding:0 16px 20px;color:var(--ink);background:var(--bg-2);padding-top:18px}
.acc .ans p+p{margin-top:12px}

/* ============================ 절차 ============================ */
.steps{counter-reset:s;display:grid;gap:16px;grid-template-columns:repeat(5,minmax(0,1fr))}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);padding:22px 18px;position:relative}
.steps li::before{content:"STEP " counter(s);display:block;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--brand-cta);margin-bottom:9px}
.steps li b{display:block;font-size:17px;font-weight:700;margin-bottom:7px;color:var(--ink)}
.steps li p{font-size:14px;color:var(--ink-2)}

/* ============================ 알림 박스 ============================ */
.note{border:1px solid var(--line);background:var(--bg-2);padding:20px 22px}
.note-warn{border-left:4px solid var(--brand);background:var(--brand-tint)}
.note b{display:block;font-size:16px;font-weight:700;margin-bottom:8px;color:var(--ink)}
.note p,.note li{font-size:15px;color:var(--ink)}
.note+.note{margin-top:14px}

.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.kv div{display:flex;border-bottom:1px solid var(--line);font-size:15px;min-width:0}
.kv dd{min-width:0}
.kv dt{flex:none;width:132px;background:var(--bg-2);padding:12px 14px;font-weight:700}
.kv dd{flex:1;padding:12px 14px}

/* 후기 */
.rev{border:1px solid var(--line);padding:22px;background:#fff;height:100%}
.rev .top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.rev .who{font-weight:700;color:var(--ink);font-size:15px}
.rev .who span{font-weight:400;color:var(--ink-2);font-size:13px;margin-left:6px}
.rev .stars{display:flex;gap:2px}
.rev .stars svg{width:15px;height:15px}
.rev h4{font-size:17px;font-weight:700;margin-bottom:9px;color:var(--ink);letter-spacing:-.03em}
.rev p{font-size:15px;color:var(--ink)}
.rev .tag{margin-top:13px;padding-top:12px;border-top:1px solid var(--line-2);font-size:13px;color:var(--ink-2)}

/* 통계 */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line)}
.stats div{padding:26px 18px;text-align:center;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font-size:33px;font-weight:900;color:var(--ink);letter-spacing:-.04em}
.stats span{font-size:14px;color:var(--ink-2)}

/* 목록형 */
.list{border-top:2px solid var(--ink)}
.list li{border-bottom:1px solid var(--line);padding:18px 4px;display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.list li .lt{flex:1;min-width:220px}
.list li h4{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:6px}
.list li p{font-size:15px;color:var(--ink-2)}
.list li .rt{flex:none;font-size:13px;color:var(--ink-2);text-align:right}

/* ============================ 퀵메뉴 ============================ */
.quick{position:fixed;right:14px;bottom:18px;z-index:110;display:flex;flex-direction:column;gap:8px}
.quick a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  width:66px;padding:11px 4px;background:#fff;border:1px solid var(--line);color:var(--ink);
  font-size:11px;font-weight:700;line-height:1.3;text-align:center;box-shadow:var(--shadow)}
.quick a:hover{background:var(--ink);color:#fff;border-color:var(--ink);text-decoration:none}
.quick a:hover svg [stroke]{stroke:#fff}
.quick a:hover svg [fill]:not([fill="none"]){fill:#fff}
.quick a.pri{background:var(--brand-cta);color:#fff;border-color:var(--brand-cta)}
.quick a.pri svg [stroke]{stroke:#fff}
.quick svg{width:21px;height:21px}

/* ============================ 푸터 ============================ */
.ft{background:var(--bg-2);border-top:1px solid var(--line);margin-top:0}
.ft-links{border-bottom:1px solid var(--line)}
.ft-links ul{display:flex;flex-wrap:wrap;gap:0;padding:15px 0}
.ft-links li+li{margin-left:14px;padding-left:14px;border-left:1px solid var(--line)}
.ft-links a{font-size:14px;color:var(--ink-2)}
.ft-links a.st{color:var(--ink);font-weight:700}
.ft-main{padding:34px 0 30px;display:grid;grid-template-columns:280px minmax(0,1fr);gap:44px}
.ft-cs b.tt{display:block;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:9px}
.ft-cs .tel{font-size:31px;font-weight:900;color:var(--link);letter-spacing:-.035em;line-height:1.2}
.ft-cs p{font-size:14px;color:var(--ink-2);margin-top:8px}
.ft-cs .btn{margin-top:14px}
.ft-biz{font-size:13px;color:var(--ink-2);line-height:1.9}
.ft-biz .nm{font-size:16px;font-weight:900;color:var(--ink);letter-spacing:-.03em;margin-bottom:8px;display:block}
.ft-biz span{white-space:nowrap}
.ft-biz .cp{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);color:var(--ink-2)}
.sample-notice{background:var(--ink);color:#EFEFEF;font-size:14px;padding:16px 0}
.sample-notice .wrap{display:flex;gap:12px;align-items:flex-start}
.sample-notice svg{width:20px;height:20px;flex:none;margin-top:2px}
.sample-notice b{color:#FFC9CB}

/* ============================ 효도여행 모드 ============================ */
/* 🚨 사장님 지시 : 본문 17px 이상 · 대비 4.5:1 이상.
   main 안의 본문 요소(p·li·td·th·dd·dt)는 예외 없이 17px 이상으로 올린다. */
body.senior{--fs:17px;--ink-2:var(--ink-3);--lh:1.9}
body.senior main p,body.senior main li,body.senior main dd,body.senior main dt,
body.senior main td,body.senior main th,body.senior main figcaption,
body.senior main .desc,body.senior main .ans,body.senior main label{font-size:17px}
body.senior main .itin .stop li,body.senior main .itin .body p,
body.senior main .book .note,body.senior main .steps li p,
body.senior main .list li p,body.senior main .note p,body.senior main .note li,
body.senior main .rev p,body.senior main .rev .tag,body.senior main .card p,
body.senior main .prd .desc,body.senior main .acc .ans p,
body.senior main .prose p,body.senior main .prose li,
body.senior main .checks li,body.senior main .bullets li,body.senior main .nums li{font-size:17px}
body.senior .tbl{font-size:17px}
body.senior .tbl th,body.senior .tbl td{padding:16px 15px}
body.senior .prd h3,body.senior .card h3,body.senior .rev h4,body.senior .list li h4{font-size:19px}
body.senior .itin .body h4{font-size:19px}
body.senior .btn{font-size:18px;padding:15px 28px}
body.senior .btn-lg{font-size:22px;padding:20px 38px}
body.senior .btn-sm{font-size:17px;padding:11px 20px}
body.senior .sec-hd p{font-size:18px}
body.senior .lead-txt{font-size:20px}
body.senior .acc summary{font-size:19px}
body.senior .crumb ol,body.senior .util,body.senior .ft-links a,
body.senior .ft-biz,body.senior .sample-notice{font-size:15px}
/* 미세 라벨(뱃지·태그)은 본문이 아니므로 15px 로만 올린다 */
body.senior main .badge,body.senior main .prd .code,body.senior main .prd .meta span,
body.senior main .itin .meal span,body.senior main .itin .day span,
body.senior main .tile .cap span,body.senior main .tile .cap em,
body.senior main .rev .who span,body.senior main .tbl caption,
body.senior main .list li .rt{font-size:15px}
body.senior .quick a{font-size:12px}

/* ============================ 반응형 ============================ */
@media (max-width:1024px){
  .hd-in{flex-wrap:wrap;gap:12px;min-height:0;padding-top:12px;padding-bottom:12px}
  .navtoggle{display:block;margin-left:auto}
  .hd-cta{display:none}
  .gnb{flex-basis:100%;display:none}
  .gnb.open{display:block}
  .gnb>ul{flex-direction:column;border-top:1px solid var(--line)}
  .gnb>ul>li{border-bottom:1px solid var(--line-2)}
  .gnb>ul>li>a{padding:13px 4px}
  .gnb>ul>li.on>a::after{display:none}
  .gnb-sub{position:static;display:block;border:0;box-shadow:none;padding:0 0 10px 14px;min-width:0}
  .gnb-sub a{padding:6px 0;font-size:14px;color:var(--ink-2)}
  .detail{grid-template-columns:minmax(0,1fr);gap:30px}
  .book{position:static}
  .g4,.g6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ft-main{grid-template-columns:minmax(0,1fr);gap:26px}
  .hero h1{font-size:40px}
  .phero h1{font-size:32px}
}
@media (max-width:760px){
  :root{--fs:15px}
  .g2,.g3,.g4,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats div:nth-child(2){border-right:0}
  .stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .kv{grid-template-columns:minmax(0,1fr)}
  .hero .wrap{padding-top:60px;padding-bottom:60px}
  .hero h1{font-size:31px}
  .hero .lead{font-size:16px}
  .hero-facts div{padding-right:18px;margin-right:18px}
  .hero-facts b{font-size:22px}
  .phero .wrap{padding-top:40px;padding-bottom:40px}
  .phero h1{font-size:26px}
  .phero p{font-size:15px}
  .sec{padding:40px 0}
  .sec-hd h2{font-size:23px}
  .quick{right:8px;bottom:8px;flex-direction:row}
  .quick a{width:58px;font-size:10px}
  .itin>li{gap:12px}
  .itin .day{width:100%}
  .tbl tbody th{width:104px}
  .util .wrap{font-size:12px}
}
@media (max-width:520px){
  .g2,.g3,.g4,.g6,.steps{grid-template-columns:minmax(0,1fr)}
  .hero h1{font-size:26px}
  .ft-links li+li{margin-left:10px;padding-left:10px}
}
@media print{.quick,.hd,.util,.crumb{display:none}}
