@charset "utf-8";
/* ═══════════════════════════════════════════════════════════════
   guamez-refresh.css   2026-08-18
   괌이지 메인 개편 — 시안(a3.html) CSS 를 그대로 옮긴 것

   되돌리려면 test/menu1.asp 의 <link> 한 줄만 지우면 된다.
   기존 CSS(new_style · menu_style · traveler-icon)는 한 줄도 고치지 않았다.

   🔴 아래 이름은 건드리지 않는다 — script.asp 가 잡는다
      #sFrm #intHotel #intDay #strGolfCode #intMeal #intAir #intShuttle #intCurPage
      .sidebar .sidebar-menu .sidebar-buttons .apply-filter-button .reset-button
      .sidebar-overlay .mobile-menu-toggle .product-list .hotel-list .loading-overlay
      button[name="thisHotel"] 외 5종 · .selected
   ═══════════════════════════════════════════════════════════════ */

/* Pretendard — 시안이 이 글꼴을 전제로 자간을 잡았다 */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");

/* ── 실서버 뼈대를 시안 조건에 맞춘다 ─────────────────────── */
body.p3page{
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,
              system-ui,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:15px;line-height:1.6;letter-spacing:-.015em;
  -webkit-font-smoothing:antialiased;background:#F8FAFC;color:#334155;
}
/* .wrapper 가 1300px 고정폭이라 좌측 네비를 세우면 잘린다 */
body.p3page .wrapper{
  display:flex;align-items:flex-start;
  width:auto;max-width:1420px;margin:0 auto;padding:0;
}
body.p3page .wrapper .product-list{
  flex:1;min-width:0;width:auto;padding:0 26px;background:transparent;
}
/* 상품 목록을 시안 그리드로. #hotel-list 는 JS 가 잡으므로 이름은 그대로 둔다 */
body.p3page #hotel-list.hotel-list{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));
  gap:14px;width:auto;padding:0;margin:0 0 30px;background:transparent;
}
body.p3page .mobile-menu{display:none}
@media (max-width:720px){
  body.p3page .wrapper .product-list{padding:0 14px}
  body.p3page #hotel-list.hotel-list{grid-template-columns:minmax(0,1fr);gap:10px}
}

/* ═══════════════════════════════════════════════════════════════
   여기부터는 시안 mock.css 원본이다. 손대지 않고 그대로 옮겼다
   ═══════════════════════════════════════════════════════════════ */

@charset "utf-8";
/* ============================================================
   괌이지 메인 시안 공통 CSS — 2026-08-11
   A-1 / A-2 는 기본 톤, A-2-1 은 <body data-tone="tropical"> 로 색만 갈린다
   실서버 CSS 는 안 쓴다. 사이드바를 새로 짜서 원본과 충돌하기 때문이다
   ============================================================ */

:root{
  --paper:#ffffff;
  --ground:#f1f4f8;
  --ink:#141a20;
  --ink-2:#5a6673;
  --ink-3:#8d98a5;
  --line:#e4e9ef;
  --line-2:#eef2f6;

  --brand:#0B69D4;
  --brand-ink:#0a55ac;
  --brand-soft:#eaf2fe;
  --teal:#0E8A7D;
  --sale:#e8542f;
  --lime:#5bb543;
  --amber:#B08213;
  --amber-soft:#fdf6e6;

  --r-s:8px;
  --r-m:10px;
  --r-l:14px;
  --shadow-1:0 1px 2px rgba(16,32,48,.05), 0 2px 8px rgba(16,32,48,.05);
  --shadow-2:0 4px 10px rgba(16,32,48,.08), 0 12px 28px rgba(16,32,48,.10);
  --shadow-3:0 14px 40px rgba(8,24,40,.24);

  --side-w:288px;
  --main-w:1000px;
  --wrap-w:1300px;

  --font:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,
         "Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --font-num:var(--font);
}

/* Tropical Ease — 디자인 시트 팔레트 */
body[data-tone="tropical"]{
  --ground:#F8F9FA;
  --ink:#1F1A14;
  --ink-2:#6b6055;
  --ink-3:#9c9285;
  --line:#e9e2d8;
  --line-2:#f2ece4;

  --brand:#7D5A2B;          /* Primary  */
  --brand-ink:#5E4320;
  --brand-soft:#F6EFE5;
  --teal:#1B5E3F;           /* CTA 딥그린 */
  --sale:#F9A825;           /* Secondary */
  --lime:#8BC34A;           /* Tertiary  */
  --font-num:"Plus Jakarta Sans",var(--font);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--ground);
  color:var(--ink);
  font-family:var(--font);
  font-size:15px;
  line-height:1.6;
  letter-spacing:-.015em;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;letter-spacing:inherit}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}

/* ───────────── 목업 라벨 (실제 배포에는 안 들어간다) ───────────── */
.mk-bar{
  background:#10161c;color:#fff;font-size:13px;padding:10px 22px;display:flex;
  align-items:center;gap:14px;flex-wrap:wrap;
}
.mk-bar b{color:#7ED9C9;font-weight:700}
.mk-bar a{color:#9fc7ff;border-bottom:1px solid rgba(159,199,255,.4)}
.mk-head{
  max-width:var(--wrap-w);margin:24px auto 6px;padding:0 6px;
  display:flex;align-items:baseline;gap:11px;
}
.mk-head span{
  background:var(--teal);color:#fff;border-radius:4px;padding:3px 10px;
  font-size:12px;font-weight:700;letter-spacing:0;flex:0 0 auto;
}
.mk-head h2{margin:0;font-size:16px;font-weight:700}
.mk-note{max-width:var(--wrap-w);margin:0 auto 16px;padding:0 6px;font-size:13px;color:var(--ink-2)}
.mk-gap{height:64px}

/* ───────────── 껍데기 ───────────── */
.wrap{
  width:var(--wrap-w);margin:0 auto;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-l);
  box-shadow:var(--shadow-1);display:flex;min-height:640px;
  /* overflow:hidden 을 걸면 사이드바 sticky 가 죽는다 */
}
.main{width:var(--main-w);padding:0;background:var(--paper);
  border-radius:0 var(--r-l) var(--r-l) 0;min-width:0}
.main-in{padding:20px 24px 30px}
/* A-1 — 히어로는 좌측 메뉴 오른쪽을 다 쓰고, 그 아래 콘텐츠는 안쪽으로 좁힌다.
   폭이 한 단 좁아지는 것만으로 양옆 여백이 눈에 들어온다 */
#a1 .main-in > .bnrow,
#a1 .main-in > .sec,
#a1 .main-in > .hotelchips,
#a1 .main-in > .vgrid,
#a1 .main-in > .morewrap,
#a1 .main-in > .askbar{max-width:1014px;margin-left:auto;margin-right:auto}
#a1 .main-in > .sec{margin-top:32px}
#a1 .main-in > .bnrow{margin-top:22px}
.wrap.col{flex-direction:column}
.wrap.col .uhead{border-radius:var(--r-l) var(--r-l) 0 0}
.wrap.col .main{border-radius:0 0 var(--r-l) 0}
.wrap.col .rail{border-radius:0 0 0 var(--r-l)}

/* 히어로 하단에 겹쳐 앉는 프로모션 알약 */
.pills-over{margin-top:-24px;position:relative;z-index:2;padding:0 26px;margin-bottom:6px}

/* ───────────── 상단 탭 ───────────── */
.tabs{
  display:flex;align-items:stretch;gap:2px;border-bottom:1px solid var(--line);
  padding:0 24px;background:var(--paper);position:relative;
}
.tabs a{
  display:flex;align-items:center;gap:7px;padding:16px 18px 14px;
  font-size:15px;font-weight:500;color:var(--ink-2);position:relative;
  border-bottom:3px solid transparent;transition:color .15s,border-color .15s;
}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--brand);font-weight:700;border-bottom-color:var(--brand)}
.tabs a svg{width:17px;height:17px;flex:0 0 auto}
.tabs .sp{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:13px;color:var(--ink-2)}
.tabs .sp a{padding:0;border:0;font-size:13px;font-weight:400}
.tabs .sp a:hover{color:var(--brand)}

/* ───────────── 사이드바 ───────────── */
.side{
  width:var(--side-w);flex:0 0 var(--side-w);
  background:var(--paper);border-right:1px solid var(--line);
  border-radius:var(--r-l) 0 0 var(--r-l);
  display:flex;flex-direction:column;
  /* 스크롤을 내려도 필터와 검색 버튼이 따라온다. 사이드바 안에서만 스크롤된다 */
  position:sticky;top:0;align-self:flex-start;max-height:100vh;
}
.side-top{padding:20px 20px 14px;flex:0 0 auto}
.side-logo{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.side-logo img{height:30px;width:auto}
.side-lead{
  background:var(--brand-soft);border-radius:var(--r-m);padding:12px 13px;
  font-size:13px;line-height:1.55;color:var(--brand-ink);position:relative;
}
body[data-tone="tropical"] .side-lead{color:var(--brand-ink)}
.side-lead b{font-weight:700}

.side-body{flex:1 1 auto;padding:4px 20px 20px;overflow-y:auto;scrollbar-width:thin}
.side-body::-webkit-scrollbar{width:7px}
.side-body::-webkit-scrollbar-thumb{background:#d6dce4;border-radius:4px}
.fset{padding:16px 0 4px;border-top:1px solid var(--line-2)}
.fset:first-child{border-top:0;padding-top:6px}
.fset > h4{
  margin:0 0 10px;font-size:12px;font-weight:700;color:var(--ink-3);
  letter-spacing:.02em;display:flex;align-items:center;justify-content:space-between;
}
.fset > h4 em{font-style:normal;font-weight:500;color:var(--brand);font-size:11px}

/* 칩 */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{
  border:1px solid var(--line);background:var(--paper);color:var(--ink-2);
  border-radius:var(--r-s);padding:7px 11px;font-size:13px;font-weight:500;
  cursor:pointer;transition:all .14s ease;line-height:1.2;
}
.chip:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.chip.on{
  background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;
  box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 34%,transparent);
}

/* 세그먼트 — 투숙일 */
.seg{display:flex;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}
.seg button{
  flex:1;border:0;border-left:1px solid var(--line);background:var(--paper);
  padding:9px 0;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;
  transition:background .14s,color .14s;
}
.seg button:first-child{border-left:0}
.seg button:hover{background:var(--brand-soft);color:var(--brand)}
.seg button.on{background:var(--brand);color:#fff;font-weight:700}

/* 골프장 — 원형 사진 + 이름 */
.courses{display:flex;flex-direction:column;gap:3px}
.course{
  display:flex;align-items:center;gap:10px;padding:8px 6px 8px 11px;border-radius:var(--r-s);
  cursor:pointer;border:1px solid transparent;transition:all .14s;
}
.course:hover{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 22%,transparent)}
.course.on{background:var(--brand-soft);border-color:var(--brand)}
.course .th{
  width:34px;height:34px;border-radius:50%;flex:0 0 auto;overflow:hidden;
  border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line);
}
.course.on .th{box-shadow:0 0 0 2px var(--brand)}
.course .th img{width:100%;height:100%;object-fit:cover}
.course .tx{flex:1;min-width:0}                      /* 이름·설명 묶음. 없으면 두 줄이 한 줄로 붙는다 */
.course .nm{display:block;font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3}
.course .sb{display:block;font-size:11px;color:var(--ink-3);line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 체크 동그라미 대신 홀 깃발. 고르면 깃발이 꽂힌다 */
.course .ck{
  margin-left:auto;width:26px;height:26px;flex:0 0 auto;border:0;border-radius:0;
  background:transparent no-repeat center / 22px 22px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 19.6V4.6' stroke='%23b8c4d2' stroke-width='1.8' stroke-linecap='round'/><ellipse cx='8' cy='20.2' rx='3.6' ry='1.3' fill='%23ccd6e2'/></svg>");
  transition:background-image .14s;
}
.course.on .ck{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 19.6V4' stroke='%230B69D4' stroke-width='1.9' stroke-linecap='round'/><path d='M8.9 4.5l8.3 3-8.3 3z' fill='%230B69D4'/><ellipse cx='8' cy='20.2' rx='3.6' ry='1.3' fill='%230B69D4' opacity='.34'/></svg>");
}
.course:hover .ck{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 19.6V4.4' stroke='%238aa6c8' stroke-width='1.8' stroke-linecap='round'/><path d='M8.9 4.8l7.4 2.7-7.4 2.7z' fill='%23c3d5ea'/><ellipse cx='8' cy='20.2' rx='3.6' ry='1.3' fill='%23c3d5ea'/></svg>");
}
.course.on:hover .ck{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 19.6V4' stroke='%230B69D4' stroke-width='1.9' stroke-linecap='round'/><path d='M8.9 4.5l8.3 3-8.3 3z' fill='%230B69D4'/><ellipse cx='8' cy='20.2' rx='3.6' ry='1.3' fill='%230B69D4' opacity='.34'/></svg>");
}
/* 단독 페이지는 시트 파랑을 쓴다 */
.p3page .course.on .ck,
.p3page .course.on:hover .ck{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 19.6V4' stroke='%231570EF' stroke-width='1.9' stroke-linecap='round'/><path d='M8.9 4.5l8.3 3-8.3 3z' fill='%231570EF'/><ellipse cx='8' cy='20.2' rx='3.6' ry='1.3' fill='%231570EF' opacity='.34'/></svg>");
}

/* 하단 CTA */
.side-cta{
  flex:0 0 auto;background:var(--paper);border-top:1px solid var(--line);
  border-radius:0 0 0 var(--r-l);
  padding:14px 20px 18px;display:flex;flex-direction:column;gap:8px;
}
.btn-primary{
  border:0;border-radius:var(--r-m);background:var(--brand);color:#fff;
  font-size:15px;font-weight:700;padding:13px 0;cursor:pointer;
  box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 32%,transparent);
  transition:transform .12s,box-shadow .12s,background .15s;
}
.btn-primary:hover{background:var(--brand-ink);transform:translateY(-1px);
  box-shadow:0 7px 20px color-mix(in srgb,var(--brand) 38%,transparent)}
.btn-ghost{
  border:1px solid var(--line);border-radius:var(--r-m);background:var(--paper);
  color:var(--ink-2);font-size:13.5px;padding:10px 0;cursor:pointer;transition:all .14s;
}
.btn-ghost:hover{border-color:var(--ink-3);color:var(--ink)}
.side-cta .cnt{font-size:12px;color:var(--ink-3);text-align:center}
.side-cta .cnt b{color:var(--brand);font-weight:700}

/* ───────────── 히어로 ───────────── */
.hero{
  position:relative;border-radius:var(--r-l);overflow:hidden;
  height:352px;display:flex;align-items:center;justify-content:center;
}
.hero.tall{height:470px}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 62%;transform:scale(1.02)}
.hero-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,22,36,.56) 0%,rgba(6,22,36,.16) 40%,rgba(6,22,36,.58) 100%);
}
/* 밝은 사진(항공샷 초록) 위에서는 흰 글씨가 안 읽힌다. 중앙을 한 번 더 눌러 준다 */
.hero-veil.strong{
  background:
    radial-gradient(120% 78% at 50% 46%, rgba(4,20,34,.62) 0%, rgba(4,20,34,.30) 58%, rgba(4,20,34,.12) 100%),
    linear-gradient(180deg,rgba(4,20,34,.50) 0%,rgba(4,20,34,.22) 38%,rgba(4,20,34,.56) 100%);
}

/* 접이식 상세 조건 — 사이드바가 길어져 검색 버튼이 화면 밖으로 밀리는 것을 막는다 */
.fset.fold{padding:14px 0 6px}
.fset.fold > summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:.02em;padding:2px 0;
}
.fset.fold > summary::-webkit-details-marker{display:none}
.fset.fold > summary i{
  width:7px;height:7px;border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);
  transform:rotate(45deg);margin-top:-3px;transition:transform .18s;
}
.fset.fold[open] > summary{color:var(--brand)}
.fset.fold[open] > summary i{transform:rotate(-135deg);margin-top:2px;border-color:var(--brand)}
.fset.fold .inner{padding-top:11px;display:flex;flex-direction:column;gap:14px}
.fset.fold .inner > div > h5{
  margin:0 0 7px;font-size:11.5px;font-weight:600;color:var(--ink-3);
}
.hero-in{position:relative;width:100%;padding:0 32px;text-align:center}
.hero-eyebrow{
  display:inline-block;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.34);color:#fff;font-size:12px;font-weight:600;
  border-radius:30px;padding:4px 13px;margin-bottom:13px;letter-spacing:.01em;
}
.hero h1{
  margin:0 0 9px;color:#fff;font-size:34px;font-weight:800;letter-spacing:-.035em;
  line-height:1.24;text-shadow:0 2px 16px rgba(0,0,0,.4);text-wrap:balance;
}
.hero .sub{
  margin:0 0 22px;color:rgba(255,255,255,.93);font-size:15px;
  text-shadow:0 1px 9px rgba(0,0,0,.45);
}
.hero-trust{
  margin-top:18px;display:flex;justify-content:center;color:rgba(255,255,255,.95);
  font-size:13px;text-shadow:0 1px 8px rgba(0,0,0,.5);
}
.hero-trust span{padding:0 15px;position:relative;display:inline-flex;align-items:center;gap:6px}
.hero-trust span+span::before{
  content:"";position:absolute;left:0;top:5px;bottom:5px;width:1px;background:rgba(255,255,255,.4);
}
/* 장점 줄 — 아이콘을 문구 앞에 세운다. 사진 위에서는 밝은 하늘색이 가장 잘 읽힌다 */
.hero-trust svg{width:15px;height:15px;flex:0 0 auto;color:#93d5ff}
body[data-tone="tropical"] .hero-trust svg{color:#ffd479}
.hero-trust b{font-weight:600}
/* 원본 로고는 캔버스 여백이 절반이라(96px 중 그림이 50px) 18px 로 넣으면 9px 로 보였다.
   여백을 걷은 파일로 바꾸고 옆 아이콘(15px)보다 크게 잡는다.
   Ch 말풍선 대신 TALK 앱 아이콘을 쓴다 — 손님이 한눈에 알아보는 쪽이다
   (2026-08-21 CTO 「ch로고말고 다른거로해야지」) */
.hero-trust .kk{width:20px;height:20px;flex:0 0 auto;border-radius:0}

/* 검색 카드 */
.hsearch{
  max-width:812px;margin:0 auto;background:var(--paper);border-radius:var(--r-m);
  box-shadow:var(--shadow-3);display:flex;align-items:stretch;padding:7px;text-align:left;
}
.hf{
  flex:1;min-width:0;padding:9px 10px 9px 15px;position:relative;cursor:pointer;
  border-radius:var(--r-s);transition:background .14s;
}
.hf+.hf{box-shadow:inset 1px 0 0 var(--line-2)}
.hf:hover{background:var(--brand-soft)}
.hf label{display:block;font-size:11px;color:var(--ink-3);margin-bottom:2px;cursor:pointer}
.hf .v{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hf .v.ph{color:var(--ink-3);font-weight:400}
.hf .cr{
  position:absolute;right:12px;top:50%;margin-top:-3px;width:7px;height:7px;
  border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);
  transform:rotate(45deg);
}
.hbtn{
  flex:0 0 auto;margin-left:6px;border:0;border-radius:var(--r-s);background:var(--brand);
  color:#fff;font-size:16px;font-weight:700;padding:0 30px;cursor:pointer;
  display:flex;align-items:center;gap:7px;transition:background .15s;
}
.hbtn:hover{background:var(--brand-ink)}
.hbtn svg{width:17px;height:17px}

/* 아이콘 탭 (A-2) */
.itabs{
  max-width:812px;margin:0 auto 10px;background:var(--paper);border-radius:var(--r-m) var(--r-m) 0 0;
  display:flex;justify-content:center;gap:4px;padding:10px 8px 0;
}
.itab{
  display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 20px 11px;
  font-size:12.5px;font-weight:600;color:var(--ink-3);border-bottom:2.5px solid transparent;
  cursor:pointer;transition:color .15s;
}
.itab svg{width:23px;height:23px}
.itab:hover{color:var(--ink-2)}
.itab.on{color:var(--brand);border-bottom-color:var(--brand)}
.hstack{max-width:812px;margin:0 auto}
.hstack .itabs{margin-bottom:0;box-shadow:var(--shadow-3)}
.hstack .hsearch{border-radius:0 0 var(--r-m) var(--r-m);max-width:none}

/* ───────────── 프로모션 알약 ───────────── */
.pills{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:812px;margin:0 auto}
.pill{
  display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.95);
  border-radius:var(--r-s);padding:8px 13px 8px 8px;box-shadow:0 5px 16px rgba(6,22,36,.16);
  transition:transform .14s;
}
.pill:hover{transform:translateY(-2px)}
.pill img{width:46px;height:46px;border-radius:6px;object-fit:cover;flex:0 0 auto}
.pill .t{display:block;font-size:11px;font-weight:700;color:var(--brand)}
.pill .n{display:block;font-size:13px;font-weight:500;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 프로모션 배너 2장 (A-2) */
.banners{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 4px}
.banner{position:relative;border-radius:var(--r-m);overflow:hidden;box-shadow:var(--shadow-1)}
.banner img{width:100%;height:148px;object-fit:cover}
.banner .cap{
  position:absolute;inset:0;padding:18px 20px;display:flex;flex-direction:column;
  justify-content:center;background:linear-gradient(90deg,rgba(8,20,32,.72) 0%,rgba(8,20,32,.18) 78%);color:#fff;
}
.banner .cap b{font-size:17px;font-weight:800;letter-spacing:-.03em;margin-bottom:3px}
.banner .cap span{font-size:12.5px;color:rgba(255,255,255,.88)}
.banner .bd{
  align-self:flex-start;background:var(--sale);color:#fff;font-size:11px;font-weight:700;
  border-radius:4px;padding:2px 8px;margin-bottom:8px;
}

/* ───────────── 섹션 제목 ───────────── */
.sec{display:flex;align-items:flex-end;justify-content:space-between;margin:34px 0 14px}
.sec h3{margin:0;font-size:20px;font-weight:800;letter-spacing:-.035em}
.sec p{margin:3px 0 0;font-size:13px;color:var(--ink-2)}
.sec .more{font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:4px}
.sec .more:hover{color:var(--brand)}
.sec .more i{
  width:6px;height:6px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;
  transform:rotate(45deg);display:inline-block;
}

/* ───────────── 골프장 5곳 ───────────── */
.courserow{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.ccard{
  position:relative;border-radius:var(--r-m);overflow:hidden;cursor:pointer;
  box-shadow:var(--shadow-1);transition:transform .18s,box-shadow .18s;
}
.ccard:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.ccard img{width:100%;height:118px;object-fit:cover;transition:transform .5s}
.ccard:hover img{transform:scale(1.06)}
.ccard .g{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(4,16,28,.30) 0%,rgba(4,16,28,0) 42%,rgba(4,16,28,.74) 100%);
}
.ccard .bd{
  position:absolute;top:8px;left:8px;background:rgba(255,255,255,.94);color:var(--ink);
  font-size:10.5px;font-weight:700;border-radius:20px;padding:2.5px 8px;
}
.ccard .nm{position:absolute;left:11px;right:11px;bottom:9px;color:#fff}
.ccard .nm b{display:block;font-size:15px;font-weight:800;letter-spacing:-.035em;
  text-shadow:0 1px 8px rgba(0,0,0,.5)}
.ccard .nm span{display:block;font-size:11px;color:rgba(255,255,255,.86);margin-top:1px}
.ccard.on{outline:2.5px solid var(--brand);outline-offset:0}
.ccard.on::after{
  content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;
  background:var(--brand);transform:translateX(-50%) rotate(45deg);border-radius:2px;
}

/* ───────────── 세로 쇼츠 카드 ───────────── */
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.vgrid.c3{grid-template-columns:repeat(3,1fr)}
.vcard{
  position:relative;aspect-ratio:9/16;border-radius:var(--r-l);overflow:hidden;
  background:#e7ebf0;cursor:pointer;box-shadow:var(--shadow-1);
  transition:transform .2s,box-shadow .2s;
}
.vcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.vcard > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.vcard:hover > img{transform:scale(1.07)}
/* 하단을 더 눌렀다. 밝은 사진(흰 건물·구름) 위에서 흰 글자가 묻히고 있었다 */
.vcard .g{
  position:absolute;inset:0;transition:background .2s ease;
  background:linear-gradient(180deg,rgba(2,12,22,.44) 0%,rgba(2,12,22,0) 22%,
    rgba(2,12,22,.14) 38%,rgba(2,12,22,.70) 64%,rgba(2,12,22,.93) 100%);
}
.vtop{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:5px;flex-wrap:wrap}
.vchip{
  background:rgba(255,255,255,.94);color:#18222c;font-size:10.5px;font-weight:700;
  border-radius:20px;padding:3px 8px;backdrop-filter:blur(3px);
}
.vchip.sale{background:var(--sale);color:#fff}
.vbody{position:absolute;left:13px;right:13px;bottom:13px;color:#fff}
/* 골프장 이름은 이 상품의 정체성이다. 가격 다음으로 먼저 읽혀야 한다.
   색으로 세우면 가격과 싸우므로 알약 형태와 굵기로 세운다 */
.vtag{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:7px;letter-spacing:-.03em}
.vtag span{
  font-size:11px;font-weight:700;color:#fff;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.42);
  border-radius:20px;padding:2.5px 8px;backdrop-filter:blur(2px);
}
.vcard:hover .vtag span{background:#eaeff6;border-color:transparent;color:#2c3a4a}
@media (hover:none){
  .vtag span{background:#eaeff6;border-color:transparent;color:#2c3a4a}
}
body[data-tone="tropical"] .vtag span{color:#fff}
.vname{
  font-size:15.5px;font-weight:800;line-height:1.34;letter-spacing:-.04em;margin-bottom:6px;
  text-shadow:0 1px 10px rgba(0,0,0,.55);
}
.vmeta{
  font-size:11.5px;color:rgba(255,255,255,.82);line-height:1.5;
  padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid rgba(255,255,255,.22);
}
.vprice{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-family:var(--font-num)}
.vprice .was{font-size:11.5px;color:rgba(255,255,255,.62);text-decoration:line-through}
.vprice .now{font-size:20px;font-weight:800;letter-spacing:-.045em;line-height:1}
.vprice .won{font-size:12px;font-weight:600;margin-left:-3px}
.vgrid.c3 .vname{font-size:17px}
.vgrid.c3 .vprice .now{font-size:23px}

/* ───────────── 해시태그 — 호텔이 무엇으로 좋은지 한 줄 ───────────── */
.vhash{
  display:flex;flex-wrap:wrap;gap:7px;margin-bottom:7px;
  font-size:11px;font-weight:600;color:#bfe9dd;letter-spacing:-.02em;
}
body[data-tone="tropical"] .vhash{color:#e2efb6}
.p3page .vhash{color:#cfe8a8}

/* ───────────── 카드 호버 — 글자 판이 흰색으로 반전된다 ─────────────
   사진 밝기에 따라 흰 글자가 묻힌다. 마우스를 올리면 판을 깔아 글자를 반전시킨다.
   터치 기기에서는 호버가 없으므로 아래에서 흰 판을 기본값으로 둔다 */
.vbody{
  padding:0;border-radius:12px;
  transition:background .2s ease, box-shadow .2s ease, padding .2s ease, left .2s ease, right .2s ease;
}
.vcard:hover .vbody{
  left:8px;right:8px;bottom:8px;padding:13px 14px 14px;
  background:var(--paper);
  box-shadow:0 8px 26px rgba(6,20,34,.30);
  color:var(--ink);
}
.vcard:hover .g{background:linear-gradient(180deg,rgba(2,12,22,.34) 0%,rgba(2,12,22,0) 30%,rgba(2,12,22,.30) 100%)}
/* 판 안에서 색은 가격에만 준다. 다 파랗게 하면 눈이 어디를 볼지 모른다 */
.vcard:hover .vname{color:var(--ink);text-shadow:none}
.vcard:hover .vhash{color:var(--ink-2);font-weight:500}
.vcard:hover .vmeta{color:var(--ink-2);border-bottom-color:var(--line)}
.vcard:hover .vprice .now{color:var(--brand)}
.vcard:hover .vprice .was{color:var(--ink-3)}
.vcard:hover .vprice .won{color:var(--ink-2)}

/* ───────────── 구성 칩 — 「3박 4일 · 조식불포함」이 회색 두 줄이라 안 읽혔다 ─────────────
   같은 정보를 칩으로 끊어 놓으면 눈이 하나씩 잡아낸다 */
.vfeat{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 9px}
.vfeat span{
  font-size:10.5px;font-weight:600;letter-spacing:-.03em;line-height:1.5;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.38);
  color:#fff;border-radius:5px;padding:3px 7px;
}
.vcard:hover .vfeat span{
  background:#f1f5f9;border-color:transparent;color:#4c5a6b;
}
/* 색을 의미로 나눈다. 초록이 많은 카드는 포함이 많은 상품이라는 뜻이 된다.
   사진 위에서는 색칩이 지저분해지므로 판이 깔린 뒤에만 색을 준다 */
.vcard:hover .vfeat span.ok{background:#e6f6ed;color:#137a4b}
.vcard:hover .vfeat span.mute{background:#f1f5f9;color:#78859a}
.vcard:hover .vfeat span.day{background:#fdf2e2;color:#8a6510}
.vcard:hover .vfeat span.night{background:#eaedfb;color:#3b4a91}
.vcard:hover .vfeat span.grade{background:#eaf2fe;color:#1a5cb8}
@media (hover:none){
  .vfeat span.ok{background:#e6f6ed;color:#137a4b}
  .vfeat span.mute{background:#f1f5f9;color:#78859a}
  .vfeat span.day{background:#fdf2e2;color:#8a6510}
  .vfeat span.night{background:#eaedfb;color:#3b4a91}
  .vfeat span.grade{background:#eaf2fe;color:#1a5cb8}
}
/* 가격은 색이 아니라 크기로 이긴다.
   파랑은 누를 수 있는 것의 색이라 가격에 쓰면 클릭 대상으로 오해받는다.
   할인 신호는 앰버 배지 · 취소선 · 큰 숫자 셋으로 이미 충분하다 */
.vcard:hover .vprice{margin-top:2px}
.vcard:hover .vprice .now{color:#141a20;font-size:24px;letter-spacing:-.05em}
.vcard:hover .vprice .was{color:#9aa7b5;font-size:12px}
.vcard:hover .vprice .won{color:#5b6b7f}

/* 호버에서만 뜨는 버튼. 채움으로 두면 가격과 무게가 같아져 둘 다 죽는다 */
.vgo{
  display:none;margin-top:11px;background:transparent;color:var(--brand);
  border:1.5px solid var(--brand);
  font-size:12.5px;font-weight:700;border-radius:7px;padding:9px 0;text-align:center;
  letter-spacing:-.02em;transition:background .14s,color .14s;
}
.vcard:hover .vgo{display:block}
.vcard:hover .vgo:hover{background:var(--brand);color:#fff}

@media (hover:none){
  .vfeat span{background:#f1f5f9;border-color:transparent;color:#4c5a6b}
  .vtag{color:var(--ink-3)}
  .vhash{color:var(--ink-2);font-weight:500}
  .vprice .now{color:#141a20;font-size:24px}
  .vprice .was{color:#9aa7b5}
  .vprice .won{color:#5b6b7f}
  .vgo{display:block}
}

/* 손가락으로 쓰는 기기 — 흰 판을 처음부터 깔아 둔다 */
@media (hover:none){
  .vbody{
    left:9px;right:9px;padding:12px 13px 13px;
    background:var(--paper);color:var(--ink);box-shadow:0 4px 16px rgba(6,20,34,.20);
  }
  .vtag{color:var(--brand)}
  .vname{color:var(--ink);text-shadow:none}
  .vhash{color:var(--brand)}
  .vmeta{color:var(--ink-2);border-bottom-color:var(--line)}
  .vprice .now{color:var(--ink)}
  .vprice .was{color:var(--ink-3)}
  .vprice .won{color:var(--ink-2)}
}

/* 정렬바 · 호텔 칩 */
.sortbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:2px 0 12px;font-size:14px;
}
.sortbar .cnt{font-weight:600}
.sortbar .cnt em{font-style:normal;font-weight:400;color:var(--ink-3);margin-left:3px}
.sortbar .srt{
  font-size:13px;color:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-s);
  padding:7px 12px;display:flex;align-items:center;gap:7px;cursor:pointer;
}
.sortbar .srt:hover{border-color:var(--ink-3)}
.sortbar .srt i{
  width:6px;height:6px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);
  transform:rotate(45deg);display:inline-block;margin-top:-3px;
}
.hotelchips{display:flex;gap:7px;overflow-x:auto;padding-bottom:16px;scrollbar-width:none}
.hotelchips::-webkit-scrollbar{display:none}
.hotelchips button{
  flex:0 0 auto;border:1px solid var(--line);background:var(--paper);border-radius:30px;
  padding:7px 15px;font-size:13px;color:var(--ink-2);cursor:pointer;transition:all .14s;
}
.hotelchips button:hover{border-color:var(--brand);color:var(--brand)}
.hotelchips button.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}

/* ───────────── A-2 좌측 카테고리 네비 ───────────── */
.rail{
  width:150px;flex:0 0 150px;background:var(--paper);border-right:1px solid var(--line);
  padding:18px 0;
}
.rail-g{padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--line-2)}
.rail-g:last-child{border-bottom:0;margin-bottom:0}
.rail a{
  display:flex;align-items:center;gap:10px;padding:9px 18px;font-size:13.5px;
  color:var(--ink-2);font-weight:500;transition:background .14s,color .14s;
}
.rail a:hover{background:var(--brand-soft);color:var(--brand)}
.rail a.on{background:var(--brand-soft);color:var(--brand);font-weight:700}
.rail a svg{width:18px;height:18px;flex:0 0 auto}
.rail .lbl{
  padding:0 18px 6px;font-size:11px;font-weight:700;color:var(--ink-3);letter-spacing:.03em;
}
.main.wide{width:calc(var(--wrap-w) - 150px)}

/* ───────────── 유틸 헤더 (A-2) ───────────── */
.uhead{
  display:flex;align-items:center;gap:18px;padding:12px 24px;
  border-bottom:1px solid var(--line);background:var(--paper);
}
.uhead img.logo{height:30px}
.uhead .ubox{
  flex:1;max-width:330px;display:flex;align-items:center;gap:8px;
  border:1.5px solid var(--brand);border-radius:var(--r-s);padding:7px 10px;
}
.uhead .ubox input{
  border:0;outline:0;flex:1;font-family:inherit;font-size:13.5px;color:var(--ink);
  background:transparent;
}
.uhead .ubox button{
  border:0;background:var(--brand);color:#fff;border-radius:5px;width:30px;height:26px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.uhead .ubox button svg{width:15px;height:15px}
.uhead .unav{margin-left:auto;display:flex;align-items:center;gap:18px;font-size:13px;color:var(--ink-2)}
.uhead .unav a:hover{color:var(--brand)}

/* ───────────── A-3 · 검색이 상단 밴드로 빠지는 판 ─────────────
   사진을 흐리게 깔고 브랜드색을 덮어 시원하게. 검색툴은 밴드 밖으로 걸쳐 나온다 */
.full{background:var(--paper)}
.full .inner{max-width:var(--wrap-w);margin:0 auto;padding:0 24px}
/* ───────────── A-3 — 히어로를 띄우고 바탕을 회색으로 ─────────────
   전폭으로 깔면 여백이 사라진다. 여백은 비워서 생기는 게 아니라 구획으로 생긴다.
   상단바 아래로 회색 바탕을 보이게 하고 히어로와 목록을 각각 라운드 판으로 세운다 */
#a3 .wrap.col{background:var(--paper)}
.t3row{display:flex;align-items:stretch}
.t3side{width:174px;flex:0 0 174px;border-right:1px solid var(--line);padding:15px 0}
.t3side .gp{padding-bottom:11px;margin-bottom:11px;border-bottom:1px solid var(--line-2)}
.t3side .gp:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
/* 항목 열한 개가 히어로보다 아래로 내려가면 안 된다. 간격을 줄여 촘촘하게 */
.t3side a{
  display:flex;align-items:center;gap:10px;padding:7px 18px;
  font-size:13px;font-weight:500;color:var(--ink);letter-spacing:-.03em;
  transition:background .14s,color .14s;
}
.t3side a svg{width:18px;height:18px;flex:0 0 auto;color:var(--ink-3);transition:color .14s}
.t3side a:hover{background:var(--brand-soft);color:var(--brand)}
.t3side a:hover svg{color:var(--brand)}
.t3side a.on{background:var(--brand-soft);color:var(--brand);font-weight:700}
.t3side a.on svg{color:var(--brand)}
.t3main{flex:1;min-width:0;padding-bottom:10px}

/* 히어로는 파란 판이다. 사진을 꽉 채우면 주변 흰 여백이 잡아먹혀 답답해진다 */
.hero.band{
  width:auto;height:246px;margin:20px 26px 0;border-radius:14px;
}
/* 파란 판으로만 덮으면 골프장이 사라진다. 왼쪽만 진하게 눌러 글자를 받치고
   오른쪽으로 갈수록 사진이 드러나게 한다. 트립닷컴도 판 오른쪽에 사진을 남긴다 */
#a3 .hero.band .hero-bg{opacity:1;filter:saturate(.9);background-position:center 58%}
#a3 .hero-veil.strong{
  background:
    linear-gradient(96deg,
      rgba(7,54,134,.94) 0%, rgba(9,74,168,.88) 30%,
      rgba(11,105,212,.62) 62%, rgba(12,120,190,.30) 100%),
    linear-gradient(180deg, rgba(4,30,66,.30) 0%, rgba(4,30,66,0) 46%, rgba(4,30,66,.34) 100%);
}
body[data-tone="tropical"] #a3 .hero-veil.strong{
  background:
    linear-gradient(96deg,
      rgba(18,60,40,.94) 0%, rgba(24,84,56,.88) 30%,
      rgba(27,94,63,.60) 62%, rgba(48,110,60,.28) 100%),
    linear-gradient(180deg, rgba(10,34,22,.30) 0%, rgba(10,34,22,0) 46%, rgba(10,34,22,.34) 100%);
}
.hero.band .hero-bg{filter:blur(1.5px) saturate(.86);transform:scale(1.06)}
.hero-veil.brand{
  background:
    linear-gradient(180deg, rgba(10,72,150,.90) 0%, rgba(11,105,212,.80) 46%, rgba(13,128,150,.86) 100%);
}
body[data-tone="tropical"] .hero-veil.brand{
  background:linear-gradient(180deg, rgba(22,74,50,.92) 0%, rgba(27,94,63,.82) 48%, rgba(48,110,60,.88) 100%);
}
.hero.band h1{font-size:34px;margin-bottom:8px}
.hero.band .sub{margin-bottom:0;font-size:14.5px}
/* 검색툴이 아래를 46px 덮는다. 그만큼만 위로 올려 카피가 판 가운데 오게 한다 */
.hero.band .hero-in{padding-bottom:44px}
.hero.band .hero-trust{margin-top:13px;font-size:12.5px}

/* 목록은 히어로보다 안쪽에서 시작한다. 양옆 여백이 그대로 보이게 둔다 */
#a3 .full{background:transparent;padding:22px 0 40px}
#a3 .full .inner{
  max-width:none;background:transparent;border:0;box-shadow:none;padding:0 44px;
}
#a3 .full .inner > .bnrow:first-child{margin-top:0}
#a3 .sec{margin-top:30px}
.sec h3 .cntbig{color:var(--brand);font-style:normal;font-weight:800}
body[data-tone="tropical"] .sec h3 .cntbig{color:var(--teal)}
.morewrap{text-align:center;padding:24px 0 6px}
.morewrap .btn-ghost{padding:12px 34px;border-radius:30px}

/* ───────────── 조건이 없을 때 받는 자리 ─────────────
   목록이 곧 메인이면 스크롤 끝에서 손님이 갈 곳이 있어야 한다.
   여행사 매출은 목록에 없는 조건을 문의로 받는 데서 나온다 */
.askbar{
  margin-top:22px;display:flex;align-items:center;gap:22px;
  background:var(--brand-soft);border:1px solid #cfe0f8;border-radius:14px;padding:20px 24px;
}
body[data-tone="tropical"] .askbar{background:var(--brand-soft);border-color:#e3d6c2}
.askbar .tx{flex:1;min-width:0}
.askbar .tx b{
  display:block;font-size:16.5px;font-weight:800;letter-spacing:-.04em;color:var(--ink);
}
.askbar .tx span{
  display:block;margin-top:5px;font-size:13.5px;line-height:1.6;color:var(--ink-2);
  word-break:keep-all;
}
.askbar .bt{display:flex;gap:9px;flex:0 0 auto}
.askbar .bt a{
  display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;
  border-radius:8px;padding:12px 19px;letter-spacing:-.02em;
}
.askbar .bt svg{width:17px;height:17px}
.askbar .bt .pri{background:var(--brand);color:#fff}
.askbar .bt .pri:hover{background:#0a5cbb}
.askbar .bt .sec2{background:var(--paper);color:var(--ink);border:1.4px solid var(--line)}
.askbar .bt .sec2:hover{border-color:var(--brand);color:var(--brand)}
body[data-tone="tropical"] .askbar .bt .pri{background:var(--teal)}
/* 검색툴은 히어로보다 한 단 더 좁다. 히어로 → 검색툴 → 목록으로 폭이 좁아지는 계단이 여백을 만든다 */
.hstack.out{
  width:auto;max-width:none;margin:-46px 128px 0;position:relative;z-index:3;
}
.hstack.out .itabs{max-width:none}
.trustline{width:100%}
.hstack.out .itabs{background:var(--paper);box-shadow:0 -2px 16px rgba(6,22,36,.10);padding:12px 8px 0}
.hstack.out .hsearch{box-shadow:0 16px 40px rgba(6,22,36,.20);padding:9px}
.hstack.out .hf{padding:11px 12px 11px 17px}
.hstack.out .hf .v{font-size:15.5px}
.hstack.out .hbtn{font-size:16.5px;padding:0 30px}
.trustline{
  display:flex;justify-content:center;gap:0;margin:18px 0 0;font-size:13px;color:var(--ink-2);
}
.trustline span{padding:0 16px;position:relative;display:inline-flex;align-items:center;gap:6px}
.trustline span+span::before{
  content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:var(--line);
}
.trustline svg{width:15px;height:15px;flex:0 0 auto;color:var(--brand)}
body[data-tone="tropical"] .trustline svg{color:var(--teal)}
.vgrid.c5{grid-template-columns:repeat(5,1fr)}
.vgrid.c5 .vname{font-size:14.5px}
.vgrid.c5 .vprice .now{font-size:18px}
.courserow.c5wide .ccard img{height:132px}

/* ───────────── 프로모션 배너 2장 (원본 비율 그대로) ─────────────
   CCP 배너 3:1 · 렌터카 배너 1.76:1 이라 폭을 1.7:1 로 두면 높이가 저절로 맞는다.
   cover 로 자르지 않으니 사진 속 글자가 잘리지 않는다 */
.bnrow{display:grid;grid-template-columns:1.7fr 1fr;gap:14px;margin:18px 0 4px}
.bnrow a{
  display:block;border-radius:12px;overflow:hidden;background:#eef2f7;
  box-shadow:var(--shadow-1);transition:transform .18s,box-shadow .18s;
}
.bnrow a:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.bnrow img{width:100%;height:auto}
/* A-3 은 밴드 바로 아래에서 시작하므로 위 여백을 더 준다 */
.full .inner > .bnrow:first-child{margin-top:26px}

/* ───────────── 좌측 메뉴의 골프장 목록 ─────────────
   골프장 소개를 첫 화면에서 뺐다. 대신 늘 보이는 좌측 메뉴에서 바로 들어간다 */
/* 21px 원형 사진은 코스 항공샷을 다 초록 동그라미로 만든다. 구별이 안 되면 장식일 뿐이라 뺐다.
   상위 항목의 아이콘 폭(18 + gap 10)만큼 들여써서 계층을 글자 위치로 드러낸다 */
.rail-sub{padding:0 0 5px}
.rail-sub a{
  display:block;padding:6px 18px 6px 46px;position:relative;
  font-size:12.5px;font-weight:500;color:var(--ink-2);letter-spacing:-.03em;
}
.rail-sub a:hover{color:var(--brand);background:var(--brand-soft)}
.rail-sub .dot{
  position:absolute;right:18px;top:50%;transform:translateY(-50%);
  width:5px;height:5px;border-radius:50%;background:var(--sale);
}
body[data-tone="tropical"] .rail-sub a:hover{color:#7D5A2B}

/* A-2 필터 줄의 정보 버튼 — 고르는 것과 읽는 것을 한 줄에서 가른다 */
.course .ci{
  width:17px;height:17px;border-radius:50%;border:1.3px solid #cfd8e2;background:#fff;
  color:var(--ink-3);font-size:10.5px;font-weight:700;font-family:Georgia,serif;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;margin:0 7px 0 4px;
}
.course .ci:hover{border-color:var(--brand);color:var(--brand)}

/* ═════════════ 단독 페이지 a3.html — 괌이지 색 ═════════════
   파랑은 트립닷컴 색이다. 괌은 바다 청록과 잔디 초록이다.
   비교 페이지 안에 세 판을 이어 붙이면 폭이 묶여 시원함이 안 나오므로 화면을 넓게 쓴다 */
/* 색은 디자인 시트를 따른다 — 파랑이 주색, 초록과 앰버는 배지에만 */
.p3page{
  --brand:#1570EF;
  --brand-ink:#0B4DA2;
  --brand-soft:#EAF2FE;
  --lime:#22B573;
  --sale:#F59E0B;
  --ink:#334155;
  --ink-2:#5b6b7f;
  --ink-3:#94a3b8;
  --ground:#F8FAFC;
  --line:#e6ecf3;
  --line-2:#f1f5f9;
  background:var(--paper);
}
/* 화면을 다 쓴다. 폭을 묶으면 사이드 메뉴와 상품 사이 공간이 나오지 않는다 */
.p3page .wrap{
  width:auto;max-width:none;border:0;border-radius:0;box-shadow:none;
  background:var(--paper);
}
.p3page .uhead{border-radius:0;padding:14px 30px}
/* 히어로만 오른쪽 끝까지 빠진다. 잘린 판이 화면 밖으로 이어지는 느낌을 만든다 */
.p3page .hero.band{
  height:288px;margin:26px 0 0 28px;border-radius:16px 0 0 16px;
}

/* 히어로 — 왼쪽은 시트의 네이비로 눌러 글자를 받치고 오른쪽으로 갈수록 코스가 드러난다 */
.p3page .hero-veil.strong{
  background:
    linear-gradient(96deg,
      rgba(8,42,92,.94) 0%, rgba(11,77,162,.86) 30%,
      rgba(21,112,239,.50) 62%, rgba(21,112,239,.16) 100%),
    linear-gradient(180deg, rgba(6,26,54,.24) 0%, rgba(6,26,54,0) 46%, rgba(6,26,54,.32) 100%);
}
.p3page .hero.band .hero-bg{opacity:1;filter:saturate(1);background-position:center 56%}
.p3page .hero.band h1{font-size:38px}
.p3page .hero.band .sub{font-size:15.5px}
.p3page .hero.band .hero-in{padding-bottom:56px}

/* 검색툴과 목록은 가운데로 모은다. 사이드 메뉴와 이 사이에 생기는 빈 공간이 시원함을 만든다 */
.p3page .hstack.out{width:100%;max-width:1040px;margin:-52px auto 0}
.p3page .trustline{max-width:1040px;margin:18px auto 0}
.p3page .full{padding:24px 0 56px}
.p3page .full .inner{max-width:1040px;margin:0 auto;padding:0}

/* 좌측 메뉴 — A-2 회색 판을 따른다. 스크롤해도 따라오게 sticky 로 세우고 글자를 키웠다 */
.p3page .t3row{align-items:flex-start}
/* 좌측은 A-2 필터를 그대로 옮겨 왔다. 스크롤해도 따라오게 세운다 */
.p3page .side.classic{
  width:288px;flex:0 0 288px;border-radius:0;
  position:sticky;top:0;align-self:flex-start;
  max-height:100vh;
}
.p3page .side.classic .side-lead b{color:var(--brand)}
.p3page .side.classic .fset > h4 em{color:var(--brand)}
.p3page .side.classic .side-top{padding-top:18px}
/* 지금 쓰지 않는 메뉴형 사이드바. 되살릴 일이 있으면 클래스만 붙이면 된다 */
.p3page .t3side{
  width:228px;flex:0 0 228px;background:#eef2f7;border-right:1px solid #dfe5ed;
  padding:20px 0 26px;
  position:sticky;top:0;align-self:flex-start;
  max-height:100vh;overflow-y:auto;
}
.p3page .t3side::-webkit-scrollbar{width:6px}
.p3page .t3side::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
.p3page .t3side .gp{border-bottom-color:#dde4ec;padding-bottom:15px;margin-bottom:15px}
.p3page .t3side a{
  position:relative;color:#33455c;padding:12px 22px;font-size:15px;font-weight:600;gap:12px;
}
.p3page .t3side a svg{width:20px;height:20px;color:#8595ab}
.p3page .t3side a:hover{background:rgba(255,255,255,.75);color:var(--brand)}
.p3page .t3side a:hover svg{color:var(--brand)}
.p3page .t3side a.on{
  background:var(--paper);color:var(--brand);font-weight:700;
  box-shadow:0 1px 3px rgba(15,40,80,.10);
}
.p3page .t3side a.on svg{color:var(--brand)}
.p3page .t3side a.on::before{
  content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;
  background:var(--brand);border-radius:0 2px 2px 0;
}

/* 배지는 시트대로 — 기간은 파랑, 라운드는 초록, 조식·특가는 앰버 */
.p3page .hero-trust svg{color:#9fd0ff}
.p3page .askbar{background:var(--brand-soft);border-color:#cfe0f8}
.p3page .sec h3 .cntbig{color:var(--brand)}
.p3page .vchip{background:var(--brand);color:#fff;backdrop-filter:none}
.p3page .vchip.sale{background:var(--sale);color:#fff}
.p3page .vchip.rd{background:var(--lime);color:#fff}
.p3page .vtag{color:#a9d4ff}
.p3page .vhash{color:#bfdcff}
.p3page .vcard:hover .vtag,.p3page .vcard:hover .vhash{color:var(--brand)}
/* 골프장 다섯 곳 — 배너 아래 작은 가로 카드 한 줄 */
.p3page .courserow{gap:12px}
.p3page .ccard img{height:110px}
.p3page .ccard .bd{background:rgba(255,255,255,.95);color:var(--ink);font-weight:600}
.p3page .ccard.on .bd{background:var(--sale);color:#fff}
.p3page .ccard .nm b{font-size:14.5px}
.p3page .ccard .nm span{font-size:10.5px}

/* ═════════════ 모바일 (a3.html) ═════════════
   여행사 트래픽은 모바일이 대부분이다. 데스크톱 화면을 축소하는 게 아니라
   손가락으로 쓰는 화면을 따로 짠다. 좌측 필터는 접고, 목록은 한 줄 가로 카드로 바꾼다 */
.mtopbar,.mfixed{display:none}

@media (max-width:720px){
  /* 데스크톱 고정폭(1300px)이 살아 있으면 화면 밖으로 밀린다.
     flex 컨테이너도 자식이 안 줄어들면 부모를 늘리므로 block 으로 바꾼다 */
  html,body{overflow-x:hidden}
  .p3page{padding:0 0 78px;overflow-x:hidden}
  /* 데스크톱 폭이 여러 곳에 박혀 있어 한 번에 눌러 둔다 */
  .p3page .wrap,
  .p3page .t3row,
  .p3page .t3main,
  .p3page .full,
  .p3page .full .inner,
  .p3page .hstack.out,
  .p3page .hsearch,
  .p3page .itabs{
    width:100% !important;max-width:100% !important;min-width:0 !important;
  }
  .p3page .wrap{display:block;min-height:0}
  .p3page .t3row,.p3page .t3main{display:block}

  /* 상단바 — 로고와 검색만 남긴다 */
  .p3page .uhead{padding:11px 14px;gap:10px}
  .p3page .uhead .unav{display:none}
  .p3page .uhead img.logo{height:26px}
  .p3page .uhead .ubox input{font-size:14px}

  /* 좌측 필터는 접는다. 대신 조건 요약 줄을 세운다 */
  .p3page .t3row{display:block}
  .p3page .side.classic{display:none}
  .p3page .t3main{padding:0}
  .mtopbar{
    display:flex;align-items:center;gap:10px;padding:10px 14px;
    background:var(--paper);border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:40;
  }
  .mtopbar .cond{flex:1;min-width:0}
  .mtopbar .cond b{display:block;font-size:13.5px;font-weight:700;letter-spacing:-.03em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mtopbar .cond span{display:block;font-size:11.5px;color:var(--ink-2);margin-top:2px}
  .mtopbar .edit{
    flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--brand);
    border:1.4px solid var(--brand);border-radius:20px;padding:7px 13px;
  }

  /* 히어로 — 카피만 남기고 낮춘다 */
  .p3page .hero.band{height:186px;margin:0;border-radius:0}
  .p3page .hero.band h1{font-size:21px;letter-spacing:-.05em;padding:0 16px}
  .p3page .hero.band .sub{font-size:12.5px;padding:0 18px;line-height:1.5}
  .p3page .hero.band .hero-in{padding-bottom:16px}
  .p3page .hero.band .hero-trust{display:none}

  /* 검색툴 — 필드를 세로로 쌓는다. 한 줄에 넣으면 글자가 잘린다 */
  .p3page .hstack.out{margin:12px 14px 0;max-width:none}
  .hstack.out .itabs{padding:4px 2px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .itabs{border-radius:10px 10px 0 0}
  .itab{padding:9px 12px;font-size:12px;gap:4px;white-space:nowrap}
  .itab svg{width:16px;height:16px}
  .hsearch{flex-direction:column;padding:8px;box-shadow:var(--shadow-2);border-radius:0 0 10px 10px}
  .hf{padding:10px 12px;border-bottom:1px solid var(--line-2)}
  .hf::after{display:none}
  .hf .v{font-size:14.5px}
  .hbtn{width:100%;padding:14px 0;margin-top:8px;font-size:15px;border-radius:8px}
  .p3page .trustline{display:none}

  /* 배너는 한 장씩 */
  .p3page .full{padding:14px 0 30px}
  .p3page .full .inner{padding:0 14px}
  /* grid 의 1fr 은 minmax(auto,1fr) 이라 내용 최소 크기 밑으로 줄지 않는다.
     원본 1400px 배너와 가로 카드가 칸을 밀어내고 있었다. minmax(0,1fr) 로 바꿔야 줄어든다 */
  .bnrow{grid-template-columns:minmax(0,1fr);gap:10px;margin:0}
  .bnrow a{min-width:0}
  .bnrow img{max-width:100%}

  /* 골프장 다섯 곳 — 옆으로 밀어 본다 */
  .sec{margin:24px 0 11px}
  .sec h3{font-size:17px}
  .sec p{font-size:12px}
  .courserow{
    display:flex;gap:9px;overflow-x:auto;-webkit-overflow-scrolling:touch;
    margin:0 -14px;padding:0 14px 4px;scroll-snap-type:x mandatory;
  }
  .courserow .ccard{flex:0 0 148px;scroll-snap-align:start}
  .courserow .ccard img{height:92px}
  .courserow::-webkit-scrollbar{display:none}

  /* 조건 칩도 옆으로 */
  .hotelchips{overflow-x:auto;flex-wrap:nowrap;margin:0 -14px;padding:0 14px 6px}
  .hotelchips button{white-space:nowrap}
  .srt{font-size:12.5px}

  /* 상품 목록 — 세로 카드를 한 줄 가로 카드로 바꾼다 */
  .vgrid,.vgrid.c5,.vgrid.c3{grid-template-columns:minmax(0,1fr);gap:10px}
  .vcard{
    aspect-ratio:auto;display:flex;align-items:stretch;min-width:0;
    background:var(--paper);border:1px solid var(--line);box-shadow:none;
  }
  .vcard:hover{transform:none;box-shadow:none}
  .vcard > img{
    position:relative;inset:auto;flex:0 0 128px;width:128px;height:auto;min-height:138px;
  }
  .vcard:hover > img{transform:none}
  .vcard .g{display:none}
  .vcard .vtop{top:7px;left:7px;right:auto}
  .vchip{font-size:9.5px;padding:2.5px 6px}
  .vbody,.vcard:hover .vbody{
    position:static;left:auto;right:auto;bottom:auto;flex:1;min-width:0;
    padding:11px 12px 12px;background:transparent;box-shadow:none;color:var(--ink);
  }
  .vtag{color:var(--ink-3);font-size:10.5px;margin-bottom:3px}
  .vname{font-size:14.5px;color:var(--ink);text-shadow:none;margin-bottom:5px}
  .vhash{font-size:10.5px;color:var(--ink-2);margin-bottom:5px}
  .vfeat{gap:4px;margin-bottom:7px}
  .vfeat span{font-size:9.5px;padding:2.5px 6px}
  .vprice{margin-top:auto}
  .vprice .now,.vcard:hover .vprice .now{font-size:19px;color:#141a20}
  .vprice .was{font-size:11px}
  .vgo{display:none !important}

  .morewrap .btn-ghost{width:100%;padding:13px 0}

  /* 문의 블록 — 세로로 */
  .askbar{flex-direction:column;align-items:stretch;gap:13px;padding:16px 16px 17px;margin-top:18px}
  .askbar .tx b{font-size:15px}
  .askbar .tx span{font-size:12.5px}
  .askbar .bt{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .askbar .bt a{justify-content:center;padding:13px 0}

  /* 하단 고정 — 모바일에서 상담으로 가는 길을 항상 열어 둔다 */
  .mfixed{
    display:grid;grid-template-columns:1fr 1.25fr;gap:8px;
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96);border-top:1px solid var(--line);
    backdrop-filter:blur(8px);
  }
  .mfixed a{
    display:flex;align-items:center;justify-content:center;gap:6px;
    border-radius:9px;padding:13px 0;font-size:14px;font-weight:700;letter-spacing:-.02em;
  }
  .mfixed svg{width:17px;height:17px}
  .mfixed .k{background:#FEE500;color:#191600}
  .mfixed .p{background:var(--brand);color:#fff}

  /* 시안 안내 줄은 모바일에서 자리만 차지한다 */
  .p3bar{padding:8px 14px;font-size:11px;gap:8px}
  .p3bar .sp{display:none}
}

/* 아주 좁은 화면 */
@media (max-width:380px){
  .p3page .hero.band h1{font-size:19px}
  .vcard > img{flex:0 0 112px;width:112px}
  .vname{font-size:13.5px}
}

/* ───────────── 클래식 변형 — 지금 실서버 느낌을 살린 좌측 판 ───────────── */
.side.classic{background:#eef2f7;border-right:1px solid #dfe4ea}
.side.classic .side-lead{
  background:#fff;border:1px solid #dde5ee;color:#333;border-radius:6px;font-size:13px;
}
.side.classic .side-lead b{color:#0056b3}
.side.classic .fset{border-top-color:#dbe2ea}
.side.classic .fset > h4{color:#333;font-size:13px;font-weight:600;letter-spacing:-.02em}
.side.classic .fset > h4 em{color:#0056b3}
.side.classic .chip{border-radius:5px;border-color:#c8d2dd;background:#fff;color:#333}
.side.classic .chip:hover{border-color:#007bff;color:#0056b3;background:#f2f8ff}
.side.classic .chip.on{background:#007bff;border-color:#007bff;color:#fff;box-shadow:none}
.side.classic .seg{border-radius:5px;border-color:#c8d2dd;background:#fff}
.side.classic .seg button{border-left-color:#dde5ee}
.side.classic .seg button.on{background:#007bff}
.side.classic .course:hover{background:#e4ecf6;border-color:#bcd2ec}
.side.classic .course.on{background:#e2edfb;border-color:#007bff}
.side.classic .course.on .th{box-shadow:0 0 0 2px #007bff}
/* 깃발로 바꾼 뒤로는 배경색을 칠하지 않는다. 칠하면 파란 사각형이 된다 */
.side.classic .course.on .ck{
  background-color:transparent;border-color:transparent;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 19.6V4' stroke='%23007bff' stroke-width='1.9' stroke-linecap='round'/><path d='M8.9 4.5l8.3 3-8.3 3z' fill='%23007bff'/><ellipse cx='8' cy='20.2' rx='3.6' ry='1.3' fill='%23007bff' opacity='.34'/></svg>");
}
.p3page .side.classic .course.on .ck{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 19.6V4' stroke='%231570EF' stroke-width='1.9' stroke-linecap='round'/><path d='M8.9 4.5l8.3 3-8.3 3z' fill='%231570EF'/><ellipse cx='8' cy='20.2' rx='3.6' ry='1.3' fill='%231570EF' opacity='.34'/></svg>");
}
.side.classic .side-cta{background:#eef2f7;border-top-color:#dbe2ea}
.side.classic .btn-primary{border-radius:6px;background:#007bff;box-shadow:none;font-size:15px}
.side.classic .btn-primary:hover{background:#0069d9;transform:none}
.side.classic .btn-ghost{background:#e3e9f0;border-color:#d2dae3;border-radius:6px;color:#555}
.side.classic .fset.fold > summary{font-size:13px;color:#333;font-weight:600}
.side.classic .fset.fold[open] > summary{color:#0056b3}
.side.classic .side-body::-webkit-scrollbar-thumb{background:#c9d3de}

/* 클래식 탭 — 회색 블록, 활성은 파란 채움 */
.tabs.classic{padding:18px 24px 0;border-bottom:0;gap:3px}
.tabs.classic a{
  flex:1;justify-content:center;background:#f1f3f6;color:#555;
  border-bottom:0;border-radius:7px 7px 0 0;padding:15px 0 14px;font-size:15px;
}
.tabs.classic a:hover{background:#e8ecf1;color:#333}
.tabs.classic a.on{background:#007bff;color:#fff;font-weight:700}
.tabs.classic a svg,.tabs.classic .sp{display:none}

/* ───────────── Tropical Ease 톤 보정 ─────────────
   브라운을 그대로 큰 버튼에 쓰면 골프 사진과 부딪치고 대비가 약하다.
   행동 버튼은 시트의 딥그린, 강조는 오렌지, 선택 표시는 라임으로 나눈다 */
body[data-tone="tropical"] .hbtn{background:var(--teal)}
body[data-tone="tropical"] .hbtn:hover{background:#14472f}
body[data-tone="tropical"] .btn-primary{
  background:var(--teal);box-shadow:0 4px 14px rgba(27,94,63,.30);
}
body[data-tone="tropical"] .btn-primary:hover{background:#14472f;box-shadow:0 7px 20px rgba(27,94,63,.36)}
body[data-tone="tropical"] .vchip.sale{color:#4a3208}          /* 오렌지 위 흰 글씨는 안 읽힌다 */
body[data-tone="tropical"] .banner .bd{color:#4a3208}
body[data-tone="tropical"] .ccard.on{outline-color:var(--lime)}
body[data-tone="tropical"] .ccard.on::after{background:var(--lime)}
body[data-tone="tropical"] .hotelchips button.on{background:var(--teal);border-color:var(--teal)}
body[data-tone="tropical"] .tabs a.on,
body[data-tone="tropical"] .itab.on{color:var(--teal);border-bottom-color:var(--teal)}
body[data-tone="tropical"] .hero-eyebrow{
  background:rgba(139,195,74,.24);border-color:rgba(139,195,74,.55);
}
body[data-tone="tropical"] .side-lead{background:var(--brand-soft);color:var(--brand-ink)}

/* 히어로 CTA 2개 — 디자인 시트 시안의 버튼 짝 */
.hero-cta{display:flex;justify-content:center;gap:10px;margin-bottom:22px}
.hero-cta button{
  border:0;border-radius:30px;padding:12px 26px;font-size:14.5px;font-weight:700;
  cursor:pointer;font-family:inherit;letter-spacing:-.02em;transition:transform .12s,background .15s;
}
.hero-cta .fill{background:var(--teal);color:#fff;box-shadow:0 6px 18px rgba(27,94,63,.34)}
.hero-cta .fill:hover{transform:translateY(-1px);background:#14472f}
.hero-cta .line{
  background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.6);
  backdrop-filter:blur(6px);
}
.hero-cta .line:hover{background:rgba(255,255,255,.24)}

/* ───────────── 골프장 리포트 카드 ─────────────
   4열 격자에서 CCP 만 두 칸을 쓴다. 나머지 넷은 세로에 가까운 칸이라 4:5 사진이 맞는다.
   위 행 = CCP(2칸) + 망길라오 + 탈로포포 / 아래 행 = 파인이스트 + 레오팔레스 + 안내(2칸) */
.rgrid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:320px;gap:14px}
.rcard{
  position:relative;display:block;border-radius:14px;overflow:hidden;color:#fff;
  background:#0d1b26;box-shadow:var(--shadow-1);transition:transform .2s,box-shadow .2s;
}
.rcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.rcard > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s}
.rcard:hover > img{transform:scale(1.05)}
.rcard .g{
  position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(4,16,28,.34) 0%, rgba(4,16,28,0) 30%,
    rgba(4,16,28,.34) 56%, rgba(4,16,28,.88) 100%);
}
.rcard .rb{position:absolute;top:12px;left:12px;display:flex;gap:6px}
.rcard .rb span{
  background:rgba(255,255,255,.94);color:var(--ink);font-size:11px;font-weight:700;
  border-radius:20px;padding:3.5px 9px;letter-spacing:-.02em;
}
.rcard .rb span.hot{background:var(--sale);color:#fff}
.rcard .rin{position:absolute;left:15px;right:15px;bottom:14px}
.rcard .rt{
  font-size:15px;font-weight:800;line-height:1.4;letter-spacing:-.04em;
  text-shadow:0 1px 10px rgba(0,0,0,.55);
}
/* 한글은 글자 단위로 끊긴다. 어절 단위로 넘겨야 「코스」가 갈라지지 않는다 */
.rcard .rt,.rcard .rx,.rcard.cta h4,.rcard.cta p,
.pmcard h4,.pmcard .pd,.pbody h1,.ptext,.pnote{word-break:keep-all}
.rcard .rx{display:none}
.rcard .au{display:flex;align-items:center;gap:7px;margin-top:11px}
.rcard .au .ph{
  width:22px;height:22px;border-radius:50%;flex:0 0 auto;
  background:linear-gradient(135deg,#1c88f0,#0b69d4);
  display:flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:800;letter-spacing:-.05em;border:1.5px solid rgba(255,255,255,.85);
}
.rcard .au b{font-size:11.5px;font-weight:600;letter-spacing:-.02em}
.rcard .au em{font-size:11px;color:rgba(255,255,255,.66);font-style:normal}
body[data-tone="tropical"] .rcard .au .ph{background:linear-gradient(135deg,#2e9e6b,#1B5E3F)}

/* CCP — 두 칸을 쓰는 큰 카드. 발췌 한 줄이 더 붙는다 */
.rcard.big{grid-column:span 2}
.rcard.big .rin{left:22px;right:22px;bottom:20px}
.rcard.big .rt{font-size:24px;line-height:1.34}
.rcard.big .rx{
  display:block;margin-top:9px;font-size:13.5px;line-height:1.62;
  color:rgba(255,255,255,.86);max-width:88%;
}
.rcard.big .au{margin-top:14px}
.rcard.big .au .ph{width:27px;height:27px;font-size:11.5px}
.rcard.big .au b{font-size:12.5px}

/* 마지막 두 칸 — 사진 없이 리포트 전체로 보내는 자리 */
.rcard.cta{
  grid-column:span 2;background:linear-gradient(128deg,#0d4f96 0%,var(--brand) 52%,#0f7fa8 100%);
  display:flex;flex-direction:column;justify-content:center;padding:0 26px;
}
body[data-tone="tropical"] .rcard.cta{background:linear-gradient(128deg,#164a32 0%,#1B5E3F 54%,#2f7d4a 100%)}
.rcard.cta .k{font-size:11.5px;font-weight:700;color:rgba(255,255,255,.7);letter-spacing:.02em}
.rcard.cta h4{margin:8px 0 0;font-size:23px;font-weight:800;letter-spacing:-.045em;line-height:1.34}
.rcard.cta p{margin:9px 0 0;font-size:13px;line-height:1.6;color:rgba(255,255,255,.82)}
.rcard.cta .go{
  margin-top:16px;align-self:flex-start;background:#fff;color:var(--brand);
  font-size:13px;font-weight:700;border-radius:22px;padding:9px 17px;
  display:flex;align-items:center;gap:6px;
}
body[data-tone="tropical"] .rcard.cta .go{color:#1B5E3F}
.rcard.cta .go i{
  width:6px;height:6px;border-right:1.8px solid currentColor;border-top:1.8px solid currentColor;
  transform:rotate(45deg);
}

/* 좌측 필터판이 있는 A-2 는 폭이 좁아 칸을 낮춘다 */
.rgrid.narrow{grid-auto-rows:288px;gap:12px}
.rgrid.narrow .rcard.big .rt{font-size:21px}
.rgrid.narrow .rcard .rt{font-size:14px}

/* ───────────── 골프장 세로 카드 한 줄 (A-2 · A-3) ─────────────
   크기를 다르게 두지 않는다. 다섯 곳을 같은 카드로 세워 한 줄에 넣고
   그 아래 패키지 목록이 바로 보이게 높이를 줄인다 */
.rgrid.row5{grid-template-columns:repeat(5,1fr);grid-auto-rows:auto;gap:12px}
.rgrid.row5 .rcard{aspect-ratio:3/4}
.rgrid.row5 .rcard .rin{left:13px;right:13px;bottom:12px}
.rgrid.row5 .cnm{
  font-size:17px;font-weight:800;letter-spacing:-.045em;
  text-shadow:0 1px 10px rgba(0,0,0,.6);
}
.rgrid.row5 .rcard .rt{font-size:12.5px;font-weight:600;margin-top:3px;color:rgba(255,255,255,.9)}
.rgrid.row5 .rcard .au{margin-top:9px}
.rgrid.row5 .rcard .au b{font-size:11px}
.rgrid.row5 .rcard .rb span{font-size:10.5px;padding:3px 8px}

/* ───────────── 프로모션 카드 ─────────────
   AI 로 뽑은 배너를 통째로 깔면 폰트가 제각각이라 촌스러워진다.
   사진만 쓰고 글자는 여기서 얹는다. 문구·사진만 갈아 끼우면 된다 */
.pmrow{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin:20px 0 4px}
.pmcard{
  position:relative;display:block;height:174px;border-radius:14px;overflow:hidden;color:#fff;
  background:#0d3f6b;box-shadow:var(--shadow-1);transition:transform .18s,box-shadow .18s;
}
.pmcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.pmcard > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pmcard .pv{
  position:absolute;inset:0;
  background:linear-gradient(97deg,rgba(3,24,45,.92) 0%,rgba(3,24,45,.78) 42%,rgba(3,24,45,.14) 100%);
}
.pmcard .pin{position:absolute;inset:0;padding:0 26px;display:flex;flex-direction:column;justify-content:center}
.pmcard .pk{font-size:11.5px;font-weight:700;color:#8ecdff;letter-spacing:.01em}
.pmcard h4{margin:7px 0 0;font-size:25px;font-weight:800;letter-spacing:-.05em;line-height:1.28}
.pmcard .pd{margin-top:8px;font-size:13px;color:rgba(255,255,255,.82);letter-spacing:-.02em}
.pmcard .pp{margin-top:12px;display:flex;align-items:baseline;gap:4px}
.pmcard .pp small{font-size:12px;color:rgba(255,255,255,.72)}
.pmcard .pp b{font-size:23px;font-weight:800;letter-spacing:-.04em}
.pmcard .pp span{font-size:12.5px;color:rgba(255,255,255,.8)}
/* 사진이 없는 판 — 렌터카처럼 쓸 실사가 없으면 색과 글자만으로 간다 */
.pmcard.flat{background:linear-gradient(126deg,#0c7b70 0%,var(--teal) 58%,#12968a 100%)}
body[data-tone="tropical"] .pmcard.flat{background:linear-gradient(126deg,#164a32 0%,#1B5E3F 58%,#2f7d4a 100%)}
.pmcard.flat .pk{color:rgba(255,255,255,.74)}
.pmcard.flat h4{font-size:22px}
/* 사진이 없으니 오른쪽이 텅 빈다. 빛무리 두 겹으로 채운다 */
.pmcard.flat::after{
  content:"";position:absolute;right:-58px;top:-52px;width:250px;height:250px;border-radius:50%;
  background:radial-gradient(circle at 34% 36%, rgba(255,255,255,.19) 0%, rgba(255,255,255,.05) 52%, rgba(255,255,255,0) 72%);
}
.pmcard.flat::before{
  content:"";position:absolute;right:26px;bottom:-46px;width:118px;height:118px;border-radius:50%;
  border:1.6px solid rgba(255,255,255,.22);
}
.pmcard.flat .pin{z-index:2}
.pmcard .pgo{
  margin-top:13px;align-self:flex-start;display:flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.16);border:1.4px solid rgba(255,255,255,.55);
  border-radius:22px;padding:7px 15px;font-size:12.5px;font-weight:700;backdrop-filter:blur(4px);
}
.pmcard:hover .pgo{background:rgba(255,255,255,.28)}
.pmcard .pgo i{
  width:5.5px;height:5.5px;border-right:1.8px solid currentColor;border-top:1.8px solid currentColor;
  transform:rotate(45deg);
}

/* A-3 밴드 — 골프장 사진을 흐리지 않고 그대로 쓴다 */
.hero.band .hero-bg{filter:none;transform:none}

/* ───────────── CCP 리포트 상세 ─────────────
   왼쪽에 사진, 오른쪽에 글. 인스타 게시물을 데스크톱에서 볼 때의 구조다 */
.crumb{
  max-width:var(--wrap-w);margin:0 auto;padding:16px 24px 0;
  font-size:12.5px;color:var(--ink-2);display:flex;align-items:center;gap:7px;
}
.crumb a{color:var(--ink-2)}
.crumb a:hover{color:var(--brand)}
.crumb b{color:var(--ink);font-weight:600}
.crumb i{
  width:5px;height:5px;border-right:1.4px solid var(--line-2);border-top:1.4px solid var(--line-2);
  transform:rotate(45deg);
}
.post{
  max-width:var(--wrap-w);margin:0 auto;padding:14px 24px 44px;
  display:grid;grid-template-columns:minmax(0,1fr) 452px;gap:26px;align-items:start;
}
.gal{background:#0c151d;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-1)}
.gal .stagepic{position:relative;aspect-ratio:4/3;background:#0c151d}
.gal .stagepic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gal .cnt{
  position:absolute;left:14px;bottom:14px;background:rgba(4,16,28,.62);color:#fff;
  font-size:12px;font-weight:600;border-radius:20px;padding:4px 11px;backdrop-filter:blur(4px);
}
.gal .arw{
  position:absolute;top:50%;transform:translateY(-50%);width:42px;height:60px;
  background:rgba(10,22,34,.44);color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .16s;
}
.gal .arw:hover{background:rgba(10,22,34,.72)}
.gal .arw.l{left:0;border-radius:0 4px 4px 0}
.gal .arw.r{right:0;border-radius:4px 0 0 4px}
.gal .arw i{
  width:11px;height:11px;border-right:2px solid #fff;border-top:2px solid #fff;
}
.gal .arw.r i{transform:rotate(45deg)}
.gal .arw.l i{transform:rotate(-135deg)}
.gal .strip{display:flex;gap:6px;padding:8px;background:#101c26}
/* 다섯 장이 사진 폭을 나눠 갖게 한다. 고정폭으로 두면 오른쪽이 검게 비어 보인다 */
.gal .strip img{
  flex:1 1 0;min-width:0;height:68px;object-fit:cover;border-radius:3px;cursor:pointer;
  opacity:.55;transition:opacity .16s;
}
.gal .strip img:hover{opacity:.85}
.gal .strip img.on{opacity:1;outline:2.5px solid var(--brand);outline-offset:-2.5px}

.pbody{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;
  padding:22px 24px;box-shadow:var(--shadow-1);
}
.pau{display:flex;align-items:center;gap:10px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.pau .ph{
  width:38px;height:38px;border-radius:50%;flex:0 0 auto;color:#fff;
  background:linear-gradient(135deg,#1c88f0,#0b69d4);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;
}
body[data-tone="tropical"] .pau .ph{background:linear-gradient(135deg,#2e9e6b,#1B5E3F)}
.pau .nm b{display:block;font-size:14px;font-weight:700;letter-spacing:-.03em}
.pau .nm span{display:block;font-size:12px;color:var(--ink-2);margin-top:2px}
.pau .fol{
  margin-left:auto;font-size:12.5px;font-weight:700;color:var(--brand);
  border:1.4px solid var(--brand);border-radius:20px;padding:6px 13px;cursor:pointer;
}
.pau .fol:hover{background:var(--brand);color:#fff}
.pbody h1{
  margin:17px 0 0;font-size:22px;font-weight:800;line-height:1.42;letter-spacing:-.045em;
  text-wrap:balance;
}
.pbody .tagline{margin:9px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.pbody .tagline span{
  font-size:11.5px;font-weight:600;color:var(--brand);background:var(--brand-soft);
  border-radius:20px;padding:4px 10px;
}
.ptext{margin-top:16px;font-size:14.5px;line-height:1.78;color:var(--ink)}
.ptext p{margin:0 0 13px}
.ptext p:last-child{margin-bottom:0}
.ptext .lead{font-weight:600}
.pnote{
  margin-top:16px;background:var(--amber-soft);border-left:3px solid var(--amber);
  border-radius:0 6px 6px 0;padding:13px 15px;font-size:13.5px;line-height:1.7;
}
.pspec{margin-top:18px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.pspec dl{display:grid;grid-template-columns:104px 1fr;margin:0;font-size:13.5px}
.pspec dt{
  padding:10px 13px;background:var(--ground);color:var(--ink-2);font-weight:600;
  border-bottom:1px solid var(--line);
}
.pspec dd{margin:0;padding:10px 13px;border-bottom:1px solid var(--line);letter-spacing:-.02em}
.pspec dl > :nth-last-child(1),.pspec dl > :nth-last-child(2){border-bottom:0}
.pspec dd b{font-variant-numeric:tabular-nums}

.plink{
  margin-top:18px;padding-top:16px;border-top:1px solid var(--line);
}
.plink .lb{font-size:12.5px;color:var(--ink-2);margin-bottom:9px}
.plink a{
  display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:9px;
  padding:10px;transition:border-color .16s,box-shadow .16s;
}
.plink a:hover{border-color:var(--brand);box-shadow:var(--shadow-1)}
.plink a img{width:56px;height:42px;object-fit:cover;border-radius:5px;flex:0 0 auto}
.plink a .tx b{display:block;font-size:13.5px;font-weight:700;letter-spacing:-.03em}
.plink a .tx span{display:block;font-size:12px;color:var(--ink-2);margin-top:2px}
.pact{
  margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:16px;font-size:13px;color:var(--ink-2);
}
.pact .cta{
  margin-left:auto;background:var(--brand);color:#fff;font-weight:700;font-size:13.5px;
  border-radius:8px;padding:11px 18px;
}
.pact .cta:hover{background:#0a5cbb}
body[data-tone="tropical"] .pact .cta{background:var(--teal)}

/* ───────────── 골프장이 주역이다 (2026-08-12) ─────────────
   손님이 고르는 기준은 어느 골프장을 도느냐다. 광고 사이트링크에서도
   골프장 고유명이 클릭률 5.2~8.5% 로 최상위였고 상품목록형은 1.0~3.0% 였다.
   해시태그 알약은 SNS 문법이라 정보가 아니라 장식으로 읽힌다. 텍스트로 세운다 */
.vcourse{
  font-size:15px;font-weight:800;line-height:1.34;letter-spacing:-.04em;
  margin-bottom:2px;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.62);
}
.vcourse i{font-style:normal;font-weight:600;opacity:.66;margin:0 1px}
.vcourse b{
  font-weight:700;font-size:11.5px;margin-left:5px;vertical-align:1px;
  padding:2px 7px;border-radius:5px;letter-spacing:-.02em;
  background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.42);
  white-space:nowrap;                /* 골프장이 셋이면 「54 / 홀」로 갈린다 */
  display:inline-block;
}
/* 호텔은 조건이지 주인공이 아니다. 골프장 아래에서 한 급 낮춘다 */
.vname{font-size:12.5px;font-weight:600;opacity:.92}
.vgrid.c3 .vcourse{font-size:16.5px}
.vgrid.c5 .vcourse{font-size:14px}
.vfeat span.view{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.38)}
.vcard:hover .vfeat span.view{background:#e8f4fb;color:#136f9e}
@media (hover:none){ .vfeat span.view{background:#e8f4fb;color:#136f9e} }

/* 흰 판이 깔리면 글자를 반전시킨다 */
.vcard:hover .vcourse{color:var(--ink);text-shadow:none}
.vcard:hover .vcourse i{opacity:.42}
.vcard:hover .vcourse b{background:#eaf2fe;border-color:transparent;color:#1a5cb8}
.vcard:hover .vname{color:var(--ink-2);text-shadow:none;font-weight:500}
.p3page .vcourse{color:#fff}
.p3page .vcard:hover .vcourse{color:var(--ink)}
@media (hover:none){
  .vcourse{color:var(--ink);text-shadow:none}
  .vcourse i{opacity:.42}
  .vcourse b{background:#eaf2fe;border-color:transparent;color:#1a5cb8}
  .vname{color:var(--ink-2);font-weight:500}
}
@media (max-width:760px){
  .vcourse{font-size:14px;margin-bottom:2px}
  .vcourse b{font-size:10.5px;padding:1.5px 6px}
  .vname{font-size:11.5px;margin-bottom:5px}
}
/* ───────────── 골프장 위치와 이동시간 (2026-08-12) ─────────────
   손님이 제일 먼저 재는 것이 호텔에서 몇 분 걸리느냐다.
   구글 지도는 키가 필요하고 브랜드색을 못 입힌다. 괌은 섬이라 윤곽이 단순해 직접 그렸다.
   다섯 골프장에 그대로 재사용한다 — 좌표와 강조 대상만 바꾸면 된다 */
.pmap,.pspec2{margin-top:14px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px 20px 17px;box-shadow:var(--shadow-1)}
.mhd{display:flex;align-items:baseline;gap:9px;margin-bottom:13px}
.mhd h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.03em}
.mhd .dummy{
  font-size:11px;font-weight:700;color:var(--amber);background:var(--amber-soft);
  border-radius:20px;padding:2.5px 9px;letter-spacing:-.02em;
}
.mwrap{display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:start}
.gmap{width:100%;height:auto;border-radius:8px;display:block}
.gmap .isle{fill:#dfe9de;stroke:#c3d2c2;stroke-width:1.2}
.gmap .pin circle{fill:#8fa39a}
.gmap .pin text{display:none}
.gmap .pin.here circle{fill:var(--brand);stroke:#fff;stroke-width:2.5}
.gmap .pin.here text{font-size:17px;fill:var(--brand);font-weight:800}
.gmap .ref rect,.gmap .ref circle{fill:#fff;stroke:#8fa39a;stroke-width:1.4}
.gmap .ref text{font-size:13px;fill:#7c8d84;font-weight:600}

.mtime .mt-lb{font-size:12px;color:var(--ink-2);margin-bottom:8px}
.mtime ul{list-style:none;margin:0;padding:0}
.mtime li{
  display:flex;align-items:baseline;gap:10px;padding:9px 0;
  border-bottom:1px solid var(--line);font-size:13.5px;
}
.mtime li:last-child{border-bottom:0}
.mtime li span{flex:1;min-width:0;color:var(--ink-2);letter-spacing:-.03em}
.mtime li b{
  font-size:19px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;
  color:var(--ink);white-space:nowrap;
}
.mtime li b i{font-style:normal;font-size:11.5px;font-weight:600;color:var(--ink-2);margin-left:1px}
.mnote{margin:9px 0 0;font-size:11.5px;color:var(--ink-3);line-height:1.6}
.maddr{
  display:flex;align-items:center;gap:7px;margin-top:13px;padding-top:12px;
  border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2);
}
.maddr svg{flex:0 0 auto;color:var(--ink-3)}

/* 스펙 — 골퍼가 확인하는 숫자. 위쪽 설명과 층을 나눈다 */
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:8px;overflow:hidden}
.sgrid > div{background:var(--paper);padding:11px 12px}
.sgrid span{display:block;font-size:11.5px;color:var(--ink-3);margin-bottom:3px;letter-spacing:-.02em}
.sgrid b{font-size:15px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.sgrid b i{font-style:normal;font-size:11px;font-weight:600;color:var(--ink-2);margin-left:1px}
.sfoot{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:11px;font-size:12.5px;color:var(--ink-2)}
.sfoot b{color:var(--ink);font-weight:700;margin-right:4px}

@media (max-width:760px){
  .mwrap{grid-template-columns:132px 1fr;gap:12px}
  .sgrid{grid-template-columns:repeat(2,1fr)}
  .mtime li{font-size:12.5px;padding:7px 0}
  .mtime li b{font-size:16px}
}
/* ───────────── 작성자 자리에 로고 (2026-08-12) ─────────────
   원형 아바타에 가로 로고를 넣으면 높이가 12px 로 뭉개진다. 창을 가로로 눕힌다.
   로고 원본 800x400 중 글자는 184,120~630,278 안에만 있어 여백을 잘라 낸다 */
.pau .ph{
  width:85px;height:30px;border-radius:0;background:none;
  overflow:hidden;position:relative;flex:0 0 auto;
  padding-right:0;margin-right:2px;
}
.pau .ph img{position:absolute;left:-35px;top:-23px;width:152px;max-width:none;display:block}
body[data-tone="tropical"] .pau .ph{background:none}
.pau .ph + .nm{padding-left:11px;border-left:1px solid var(--line)}

/* 골프장 카드 프로모션 배지 — 지금 무엇이 붙는지 카드에서 바로 보이게 */
.ccard{position:relative}
.ccard .promo{
  position:absolute;left:8px;bottom:52px;z-index:2;display:flex;flex-wrap:wrap;gap:4px;align-items:flex-start;
}
.ccard .promo b{
  font-size:10.5px;font-weight:800;letter-spacing:-.03em;line-height:1;
  padding:4px 8px;border-radius:5px;color:#fff;
  background:var(--amber);box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.ccard .promo b.free{background:#137a4b}
.ccard .promo b.plus{background:#c2410c}
/* ───────────── 모자이크 갤러리 (2026-08-12) ─────────────
   큰 사진 아래 썸네일 줄은 2010년대 쇼핑몰 문법이다. 큰 것 하나에 작은 넷을 붙인다 */
.gmos{
  display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;
  gap:4px;border-radius:14px;overflow:hidden;aspect-ratio:16/9;box-shadow:var(--shadow-1);
}
.gmos a{position:relative;display:block;overflow:hidden;background:#0c151d}
.gmos a.g1{grid-row:1 / 3}
.gmos img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.gmos a:hover img{transform:scale(1.04)}
.gmos .cap{
  position:absolute;left:14px;bottom:13px;color:#fff;font-size:14px;font-weight:700;
  letter-spacing:-.03em;text-shadow:0 1px 10px rgba(0,0,0,.6);
}
.gmos a.g1:after{
  content:"";position:absolute;inset:auto 0 0 0;height:38%;
  background:linear-gradient(180deg,transparent,rgba(4,12,20,.55));
}
.gmos .more{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(6,16,26,.42);color:#fff;font-size:22px;font-weight:800;letter-spacing:-.03em;
}
@media (max-width:760px){
  .gmos{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;aspect-ratio:4/3}
  .gmos a.g1{grid-column:1 / 3;grid-row:1}
  .gmos a:nth-child(4),.gmos a:nth-child(5){display:none}
}

/* 알짜 넷 — 후기에서 자주 나오는데 공식 소개에는 잘 없는 것들. 크게 세운다 */
.pkey{
  display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:18px;
}
.pkey > div{
  background:var(--ground);border:1px solid var(--line);border-radius:10px;padding:12px 14px;
  display:grid;grid-template-columns:74px 1fr;align-items:baseline;column-gap:10px;
}
.pkey span{font-size:12px;color:var(--ink-2);letter-spacing:-.02em;font-weight:600}
.pkey b{font-size:15.5px;font-weight:800;letter-spacing:-.04em;color:var(--brand);line-height:1.35;word-break:keep-all}
.pkey i{grid-column:2;font-style:normal;font-size:11.5px;color:var(--ink-3);margin-top:2px;line-height:1.5;word-break:keep-all}
@media (max-width:760px){ .pkey{grid-template-columns:repeat(2,1fr)} }
/* ───────────── 골프장 안내 · 2단 (2026-08-12) ─────────────
   갤러리를 전폭으로 두고 그 아래를 2단으로 나눈다.
   앞서 갤러리만 왼쪽에 두었더니 그 아래가 통째로 비고 오른쪽에 정보가 다 몰렸다 */
.post2{max-width:var(--wrap-w);margin:0 auto;padding:14px 24px 44px}
.pcols{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start;margin-top:22px}
.pmain{min-width:0}
.pmain h1{
  margin:0;font-size:26px;font-weight:800;line-height:1.38;letter-spacing:-.045em;text-wrap:balance;
}
.pmain .tagline{margin:11px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.pmain .tagline span{
  font-size:11.5px;font-weight:600;color:var(--brand);background:var(--brand-soft);
  border-radius:20px;padding:4px 10px;
}
.pmain .pau{margin-top:18px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pmain .ptext{margin-top:20px}

/* 작성자 — 후기가 없으니 사람이 신뢰의 축이다 */
.pau .ph{
  width:46px;height:46px;border-radius:50%;flex:0 0 auto;object-fit:cover;
  border:2px solid #fff;box-shadow:0 1px 6px rgba(16,26,38,.18);background:none;
  padding:0;margin:0;position:static;
}
.pau .nm b{display:block;font-size:15px;font-weight:800;letter-spacing:-.03em}
.pau .nm b .rk{display:inline;font-size:13px;font-weight:600;color:var(--ink-2);margin-left:4px}
.pau .nm span{display:block;font-size:12px;color:var(--ink-2);margin-top:2px}
.pau .ph + .nm{padding-left:0;border-left:0}

/* 오른쪽 요약 카드 — 스크롤을 따라온다 */
.pside{position:sticky;top:78px}
.pcard{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;
  padding:18px 20px 20px;box-shadow:var(--shadow-1);
}
.pct{font-size:14px;font-weight:800;letter-spacing:-.03em;margin-bottom:12px}
.pcdl{display:grid;grid-template-columns:66px 1fr;margin:0 0 16px;font-size:13px;row-gap:9px}
.pcdl dt{color:var(--ink-3);letter-spacing:-.02em}
.pcdl dd{margin:0;color:var(--ink);letter-spacing:-.02em;line-height:1.55}
.pcdl dd b{font-weight:700}
.pcta{
  display:block;text-align:center;background:var(--brand);color:#fff;font-weight:700;font-size:14.5px;
  border-radius:9px;padding:13px;letter-spacing:-.02em;transition:background .15s;
}
.pcta:hover{background:#0a5cbb}
body[data-tone="tropical"] .pcta{background:var(--teal)}
.pcsub{margin-top:9px;text-align:center;font-size:12px;color:var(--ink-2)}
.pcsub b{color:var(--ink);font-weight:700}
.pcact{
  display:flex;gap:16px;justify-content:center;margin-top:14px;font-size:13px;color:var(--ink-2);
}

@media (max-width:900px){
  .pcols{grid-template-columns:1fr;gap:20px}
  .pside{position:static}
  .pmain h1{font-size:21px}
}
@media (max-width:760px){
  .post2{padding:12px 16px 40px}
  .pmain h1{font-size:19.5px}
}
/* ───────────── 왼쪽은 사진과 사실, 오른쪽은 글 (2026-08-12) ───────────── */
.lcol{display:flex;flex-direction:column;gap:14px;min-width:0}
.lcol .pmap,.lcol .pspec2{margin-top:0}
.lcol .pkey{margin-top:0}
/* 왼쪽이 넓어졌으니 알짜는 4칸으로 편다 */
.lcol .pkey{grid-template-columns:repeat(2,1fr)}
@media (min-width:1100px){ .lcol .pkey{grid-template-columns:repeat(2,1fr)} }
@media (max-width:900px){
  .post{grid-template-columns:1fr}
  .lcol .pkey{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){ .lcol .pkey{grid-template-columns:1fr} }
/* ═════════════ 회의록 2026-08-12 반영 ═════════════ */

/* 회의록 5장 — 프로모션 배너는 좌우 슬라이드. 자산이 늘면 장수만 더하면 된다 */
.bnwrap{position:relative;margin:18px 0 4px}
.bnwrap .bnrow{margin:0}
.bnarw{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.94);
  border:1px solid var(--line);box-shadow:0 2px 10px rgba(8,24,40,.16);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.bnarw:hover{background:#fff;box-shadow:0 4px 14px rgba(8,24,40,.22)}
.bnarw.l{left:-12px}
.bnarw.r{right:-12px}
.bnarw i{width:8px;height:8px;border-right:2px solid var(--ink-2);border-top:2px solid var(--ink-2)}
.bnarw.r i{transform:rotate(45deg);margin-left:-2px}
.bnarw.l i{transform:rotate(-135deg);margin-right:-2px}
.bndot{display:flex;justify-content:center;gap:6px;margin-top:10px}
.bndot span{
  width:7px;height:7px;border-radius:50%;background:#cfd8e2;cursor:pointer;transition:background .16s,width .16s;
}
.bndot span.on{width:20px;border-radius:20px;background:var(--brand)}

/* 회의록 5장 — 카드 한 장에 금액과 인원 기준이 같이 보여야 한다 */
.vprice .per{
  font-size:10.5px;font-weight:600;color:rgba(255,255,255,.72);
  margin-left:2px;letter-spacing:-.02em;
}
.vcard:hover .vprice .per{color:var(--ink-3)}
@media (hover:none){ .vprice .per{color:var(--ink-3)} }

@media (max-width:720px){
  .bnwrap{margin:0}
  .bnarw{display:none}
  .bndot{margin-top:9px}
}

/* ═════════════ 검색툴 드롭다운 ═════════════
   칸 순서는 신이사님 기준 — 날짜가 맨 왼쪽. 출발일·투숙일을 붙이고 호텔·골프장·인원을 뒤에 둔다.
   버튼에 배경을 지정하지 않으면 브라우저 기본 회색이 드러나 날짜마다 박스가 붙는다. 전부 명시한다 */
.hsearch{position:relative}
.hf{position:relative;border-radius:10px;transition:background .16s}
.hf.open{background:rgba(21,112,239,.055)}
.hf .v.ph{color:var(--ink-3)}

/* 칸 폭을 내용에 맞게 나눈다. 다섯 칸을 균등하게 두면 골프장 이름이 잘린다 */
/* 날짜 칸만 둘을 담는다. 나머지에서 조금씩 때온다 (2026-08-20) */
.hsearch .hf.f-date{flex:1.34}
.hsearch .hf.f-nights{flex:.88}
.hsearch .hf.f-hotel{flex:.98}
.hsearch .hf.f-course{flex:1.10}
.hsearch .hf.f-pax{flex:.95}

/* 패널 — 반투명 유리에 얕은 그림자 세 겹. 열릴 때 살짝 내려앉는다 */
.hpanel{
  display:none;position:absolute;top:calc(100% + 12px);left:-4px;z-index:50;
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:saturate(180%) blur(22px);
  backdrop-filter:saturate(180%) blur(22px);
  border:.5px solid rgba(16,24,40,.07);border-radius:18px;
  box-shadow:0 1px 2px rgba(16,24,40,.04), 0 10px 26px rgba(16,24,40,.10), 0 28px 64px rgba(16,24,40,.13);
  padding:16px;cursor:default;
}
.hf.open > .hpanel{display:block;animation:hpop .2s cubic-bezier(.32,.72,0,1)}
@keyframes hpop{ from{opacity:0;transform:translateY(-7px) scale(.975)} to{opacity:1;transform:none} }
.hpanel.right{left:auto;right:-4px}
.hpanel .ptit{
  font-size:12.5px;font-weight:600;color:var(--ink-2);margin:2px 4px 11px;letter-spacing:-.02em;
}
.hpanel .cnote{
  margin:12px 4px 2px;font-size:11.5px;color:var(--ink-3);line-height:1.55;letter-spacing:-.02em;
}

/* 목록형 — 투숙일 */
.hpanel.p-nights{width:274px}
.plist{display:flex;flex-direction:column;gap:1px}
.plist button{
  display:flex;align-items:center;gap:8px;text-align:left;
  background:transparent;border:0;padding:11px 12px;border-radius:12px;
  font-size:14px;font-weight:500;color:var(--ink);letter-spacing:-.03em;
  transition:background .14s,color .14s,transform .1s;
}
.plist button:hover{background:rgba(16,24,40,.045)}
.plist button:active{transform:scale(.985)}
.plist button.on{background:rgba(21,112,239,.09);color:var(--brand);font-weight:700}
.plist button em{
  font-style:normal;font-size:11px;font-weight:600;color:var(--ink-3);
  background:rgba(16,24,40,.055);border-radius:20px;padding:3px 8px;margin-left:auto;
}
.plist button.on em{background:rgba(21,112,239,.12);color:var(--brand)}

/* 체크 목록형 — 호텔 · 골프장. 동그란 체크가 네모보다 부드럽다 */
.hpanel.p-hotel{width:308px}
.hpanel.p-course{width:352px}
.pchk{display:flex;flex-direction:column;gap:1px;max-height:296px;overflow-y:auto;margin:0 -4px}
.pchk::-webkit-scrollbar{width:5px}
.pchk::-webkit-scrollbar-thumb{background:rgba(16,24,40,.16);border-radius:3px}
.pchk label{
  display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:12px;
  font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;transition:background .14s;
}
.pchk label:hover{background:rgba(16,24,40,.045)}
.pchk input{display:none}
.pchk .bx{
  width:21px;height:21px;flex:0 0 auto;border-radius:50%;
  border:1.5px solid rgba(16,24,40,.2);background:transparent;position:relative;
  transition:background .16s,border-color .16s,transform .12s;
}
.pchk label:active .bx{transform:scale(.9)}
.pchk input:checked + .bx{background:var(--brand);border-color:var(--brand)}
.pchk input:checked + .bx::after{
  content:"";position:absolute;left:5.5px;top:7px;width:7.5px;height:4px;
  border-left:1.9px solid #fff;border-bottom:1.9px solid #fff;transform:rotate(-45deg);
}
.pchk .th{width:42px;height:31px;border-radius:8px;object-fit:cover;flex:0 0 auto}
.pchk .tx{flex:1;min-width:0}
.pchk .tx b{display:block;font-size:14px;font-weight:600;letter-spacing:-.03em}
.pchk .tx span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:1.5px;letter-spacing:-.02em}
.pfoot{display:flex;gap:8px;margin-top:13px;padding-top:13px;border-top:.5px solid rgba(16,24,40,.09)}
.pfoot button{
  flex:1;padding:11px 0;border:0;border-radius:12px;font-size:13.5px;font-weight:600;
  letter-spacing:-.02em;transition:background .14s,transform .1s;
}
.pfoot button:active{transform:scale(.98)}
.pfoot .ok{background:var(--brand);color:#fff}
.pfoot .ok:hover{background:var(--brand-ink)}
.pfoot .rst{background:rgba(16,24,40,.055);color:var(--ink)}
.pfoot .rst:hover{background:rgba(16,24,40,.09)}

/* 인원 — 성인 · 아동 · 유아 */
.hpanel.p-pax{width:296px}
.pax{display:flex;flex-direction:column}
.pax .row{display:flex;align-items:center;gap:10px;padding:11px 4px}
.pax .row + .row{border-top:.5px solid rgba(16,24,40,.07)}
.pax .row .lb{flex:1;min-width:0}
.pax .row .lb b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.03em}
.pax .row .lb span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px;letter-spacing:-.02em}
.stp{display:flex;align-items:center;gap:13px;flex:0 0 auto}
.stp button{
  width:30px;height:30px;border-radius:50%;border:0;background:rgba(16,24,40,.06);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:400;color:var(--ink);line-height:1;
  transition:background .14s,transform .1s,opacity .14s;
}
.stp button:hover:not(:disabled){background:rgba(16,24,40,.1)}
.stp button:active:not(:disabled){transform:scale(.9)}
.stp button:disabled{opacity:.3;cursor:default}
.stp b{min-width:18px;text-align:center;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}

/* 달력 — 날짜는 원이다. 네모 박스를 깔면 격자처럼 보인다 */
.hpanel.p-date{width:316px}
.cal .chd{display:flex;align-items:center;justify-content:space-between;margin:0 2px 10px}
.cal .chd b{font-size:14.5px;font-weight:700;letter-spacing:-.03em}
.cal .chd button{
  width:30px;height:30px;border-radius:50%;border:0;background:transparent;
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-2);font-size:13px;transition:background .14s,transform .1s;
}
.cal .chd button:hover{background:rgba(16,24,40,.06);color:var(--ink)}
.cal .chd button:active{transform:scale(.9)}
.cal .cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal .cgrid span.dw{
  text-align:center;font-size:11.5px;font-weight:600;color:var(--ink-3);padding:2px 0 8px;
}
.cal .cgrid button{
  height:38px;border:0;background:transparent;border-radius:50%;
  font-size:14px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;
  transition:background .15s,color .15s,transform .1s;
}
.cal .cgrid button:hover:not(:disabled):not(.on){background:rgba(16,24,40,.06)}
.cal .cgrid button:active:not(:disabled){transform:scale(.92)}
.cal .cgrid button.on{background:var(--brand);color:#fff;font-weight:700}
.cal .cgrid button:disabled{color:transparent;cursor:default}
.cal .cgrid button.sun{color:#d1495b}
.cal .cgrid button.on.sun{color:#fff}

/* 다크 모드 대응 — 유리판이 흰색으로 고정되면 밤에 눈이 부신다 */
@media (prefers-color-scheme:dark){
  .p3page .hpanel{
    background:rgba(28,32,38,.9);border-color:rgba(255,255,255,.09);
    box-shadow:0 10px 26px rgba(0,0,0,.34), 0 28px 64px rgba(0,0,0,.4);
  }
}

@media (max-width:720px){
  /* 모바일에서는 칸이 세로로 쌓이므로 패널을 화면 폭에 맞춘다 */
  .hpanel{left:0;right:0;width:auto !important;max-width:none;border-radius:16px}
  .hpanel.right{left:0;right:0}
  .hsearch .hf.f-date,.hsearch .hf.f-nights,.hsearch .hf.f-hotel,
  .hsearch .hf.f-course,.hsearch .hf.f-pax{flex:none}
  .pchk{max-height:44vh}
}
/* ───────────── 배너 자동 교체 · 골프셔틀 ↔ 렌터카 (2026-08-13) ─────────────
   오른쪽 배너 칸 하나에 두 장을 겹쳐 두고 3.5 초마다 바꾼다.
   첫 장은 흐름에 남겨 칸 높이를 만들고, 나머지는 그 위에 절대배치로 올린다.
   두 이미지가 830x467 로 같은 규격이라 겹쳐도 테두리가 어긋나지 않는다 */
/* ═════ 배너 페이드 교체 (구) ═════
   루트 /hotelpack/test/index.asp 는 아래 .bnroll 롤링으로 넘어갔지만
   /admin/hotel/hotelpack/test/index.asp 가 아직 .bnswap 마크업을 쓰고 이 CSS 를 그대로 물고 있다.
   지우면 그쪽 배너가 깨진다. 형제가 넘어올 때까지 남긴다 (2026-08-22 확인) */
.bnswap{position:relative;display:block;overflow:hidden;border-radius:12px}
.bnswap img{
  width:100%;height:auto;display:block;
  opacity:0;transform:translateX(14px);
  transition:opacity .6s cubic-bezier(.32,.72,0,1),transform .6s cubic-bezier(.32,.72,0,1);
}
.bnswap img:first-child{position:relative}
.bnswap img + img{position:absolute;left:0;top:0;right:0;bottom:0;height:100%;object-fit:cover}
.bnswap img.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .bnswap img{transition:none;transform:none}
}

/* ═════ 배너 롤링 칸 (2026-08-22 개편) ═════
   칸(.bncell)마다 독립으로 좌우로 넘어간다. 앞의 .bnswap 페이드를 대신한다.
   장수가 늘어도 CSS 는 그대로다 — 마크업에 <img> 만 더 넣으면 된다 */
.bnrow > .bncell{position:relative;min-width:0}
.bnroll{position:relative;display:block;overflow:hidden;border-radius:12px}
.bnroll img{
  display:block;width:100%;
  position:absolute;left:0;top:0;right:0;bottom:0;height:100%;object-fit:cover;
  opacity:0;transform:translateX(100%);
  transition:opacity .55s cubic-bezier(.32,.72,0,1),transform .55s cubic-bezier(.32,.72,0,1);
}
/* 첫 장이 칸 높이를 만든다. 안 보이는 동안에도 자리는 지킨다 */
.bnroll img:first-child{position:relative;height:auto}
/* 보이는 장 / 왼쪽으로 나간 장 / 오른쪽에 대기 중인 장 */
.bnroll img.on{opacity:1;transform:translateX(0)}
.bnroll img.bl{opacity:0;transform:translateX(-100%)}
.bnroll img.br{opacity:0;transform:translateX(100%)}

/* 화살표는 칸 안쪽에 둔다. 밖으로 빼면 두 칸 사이에서 서로 겹친다.
   평소엔 숨어 있다가 손이 올라오면 뜬다 */
.bncell .bnarw{left:auto;right:auto;opacity:0;transition:opacity .18s}
.bncell .bnarw.l{left:10px}
.bncell .bnarw.r{right:10px}
.bncell:hover .bnarw{opacity:1}

/* 모션을 줄여 달라는 설정이면 애니메이션 없이 즉시 바뀐다 */
@media (prefers-reduced-motion:reduce){
  .bnroll img{transition:none}
}

/* ═════════════ 모바일 카드 색 확정 (2026-08-13) ═════════════
   카드 글자가 흰색인 채로 흰 판 위에 올라가 안 보였다.
   hover:none 블록에만 반전을 걸어 뒀는데 그건 기기가 정해 준다 — 폭 기준으로 직접 박는다.
   카드 구조가 .vtag 에서 .vcourse 로 바뀌어 있어 그쪽도 같이 지정한다 */
@media (max-width:720px){
  .vcard .vcourse{color:#2c3a4a}
  .vcard .vcourse i{color:#9aa7b5}
  .vcard .vname{font-size:15px;color:#141a20;text-shadow:none;margin-bottom:6px}
  .vcard .vhash{color:#5b6b7f}

  .vcard .vfeat span{background:#f1f5f9;border-color:transparent;color:#4c5a6b}
  .vcard .vfeat span.ok{background:#e6f6ed;color:#137a4b}
  .vcard .vfeat span.mute{background:#f1f5f9;color:#78859a}
  .vcard .vfeat span.day{background:#fdf2e2;color:#8a6510}
  .vcard .vfeat span.night{background:#eaedfb;color:#3b4a91}
  .vcard .vfeat span.grade{background:#eaf2fe;color:#1a5cb8}

  .vcard .vprice .now{color:#141a20}
  .vcard .vprice .was{color:#9aa7b5}
  .vcard .vprice .won,.vcard .vprice .per{color:#5b6b7f}
}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 회의 반영 — 상세 조건
   기존 규칙은 한 줄도 안 고친다. 여기에만 더한다
   ═══════════════════════════════════════════════════════════ */

.hmore{max-width:812px;margin:10px auto 0;text-align:center}

.hmt{
  border:.5px solid rgba(16,24,40,.14);background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);
  border-radius:999px;padding:7px 15px 7px 17px;cursor:pointer;
  font-size:13px;font-weight:600;color:var(--ink-2);letter-spacing:-.02em;
  display:inline-flex;align-items:center;gap:7px;
  box-shadow:0 1px 2px rgba(16,24,40,.05),0 6px 18px rgba(16,24,40,.07);
  transition:color .16s,border-color .16s,background .16s;
}
.hmt:hover{color:var(--brand);border-color:rgba(21,112,239,.34);background:#fff}
.hmore.picked .hmt{color:var(--brand);border-color:rgba(21,112,239,.42);background:var(--brand-soft)}
.hmt .cnt{font-weight:700;color:var(--brand)}
.hmt .ar{
  width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);margin-top:-3px;transition:transform .2s cubic-bezier(.32,.72,0,1);
}
.hmore.open .hmt .ar{transform:rotate(-135deg);margin-top:1px}

.hmp{
  display:none;margin-top:9px;text-align:left;
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);
  border:.5px solid rgba(16,24,40,.07);border-radius:18px;padding:16px 18px 14px;
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 10px 26px rgba(16,24,40,.10),0 28px 64px rgba(16,24,40,.13);
}
.hmore.open .hmp{display:block;animation:hpop .2s cubic-bezier(.32,.72,0,1)}

.mgrp{display:flex;align-items:center;gap:12px;padding:7px 0}
.mgrp+.mgrp{border-top:.5px solid rgba(16,24,40,.06)}
.mlb{
  flex:0 0 78px;font-size:12px;font-weight:700;color:var(--ink-3);
  letter-spacing:-.02em;padding-top:1px;
}
.mchips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}
.mchips button{
  border:1px solid var(--line);background:var(--paper);border-radius:999px;
  padding:6px 13px;font-size:13px;font-weight:500;color:var(--ink);
  letter-spacing:-.02em;cursor:pointer;
  transition:background .14s,border-color .14s,color .14s,transform .1s;
}
.mchips button:hover{border-color:rgba(21,112,239,.38);color:var(--brand)}
.mchips button:active{transform:scale(.97)}
.mchips button.on{
  background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;
}

.mfoot{
  display:flex;align-items:center;gap:12px;
  margin-top:11px;padding-top:11px;border-top:.5px solid rgba(16,24,40,.09);
}
.mrst{
  border:0;background:rgba(16,24,40,.055);border-radius:8px;
  padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;
  letter-spacing:-.02em;transition:background .14s;
}
.mrst:hover{background:rgba(16,24,40,.09)}
.mnote{font-size:12px;color:var(--ink-3);letter-spacing:-.02em}

@media (hover:none){
  .hmt:hover{color:var(--ink-2);border-color:rgba(16,24,40,.14);background:rgba(255,255,255,.86)}
  .mchips button:hover{border-color:var(--line);color:var(--ink)}
}
@media (max-width:760px){
  .hmore{margin-top:9px}
  .mgrp{display:block;padding:9px 0}
  .mlb{display:block;margin-bottom:7px}
  .mchips button{padding:8px 14px;font-size:13.5px}
  .mfoot{flex-direction:column;align-items:stretch;gap:8px}
  .mnote{text-align:center}
}


/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 모바일 재설계
   좌측 사이드바를 없앤 자리를 아이콘 네비가 대신한다.
   검색툴은 접어 두고, 요약 한 줄을 탭하면 열린다 (트립닷컴 문법)
   ═══════════════════════════════════════════════════════════ */

.msum{display:none}

@media (max-width:720px){

  /* ① 조건 요약 바 제거 — 아래 검색툴과 내용이 겹친다 */
  .mtopbar{display:none !important}

  /* ② 히어로를 낮춘다. 모바일은 첫 화면에 기능이 보여야 한다 */
  .p3page .hero.band{height:150px}
  .p3page .hero.band h1{font-size:19.5px}
  .p3page .hero.band .sub{display:none}

  /* ③ 상단 로고·검색 — 넘치지 않게 */
  .p3page .uhead{padding:10px 14px;gap:9px;align-items:center}
  .p3page .uhead img.logo{flex:0 0 auto}
  .p3page .uhead .ubox{flex:1 1 auto;min-width:0}
  .p3page .uhead .ubox input{min-width:0;width:100%}

  /* ④ 아이콘 네비 — 사라진 좌측 메뉴를 여기서 되살린다 */
  .p3page .hstack.out{margin:0;padding:0}
  .hstack.out .itabs{
    display:grid !important;grid-template-columns:repeat(4,1fr);
    gap:0;padding:16px 8px 14px;margin:0;overflow:visible;
    background:var(--paper);border:0;border-radius:0;
  }
  .itab{
    display:flex;flex-direction:column;align-items:center;gap:7px;
    padding:0;border:0;font-size:12px;font-weight:600;color:var(--ink);
    letter-spacing:-.03em;text-align:center;line-height:1.25;white-space:normal;
  }
  .itab::before{
    content:"";position:absolute;width:0;height:0;
  }
  .itab svg{
    width:24px;height:24px;box-sizing:content-box;
    padding:13px;border-radius:50%;
    background:var(--brand-soft);color:var(--brand);
  }
  .itab.on{color:var(--brand);border:0}
  .itab.on svg{background:var(--brand);color:#fff}

  /* ⑤ 검색툴 — 기본은 접는다 */
  .msum{
    display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:stretch;
    width:calc(100% - 28px);min-height:64px;margin:0 14px 4px;padding:0;
    overflow:hidden;cursor:pointer;text-align:left;font:inherit;color:inherit;
    background:var(--paper);border:1px solid #ccd9e8;border-radius:17px;
    box-shadow:0 7px 20px rgba(35,64,94,.09);
  }
  .msum .ms-t{
    min-width:0;padding:11px 8px 10px 14px;
    display:flex;flex-direction:column;justify-content:center;
  }
  .msum .ms-t b{
    display:block;font-size:14px;font-weight:750;letter-spacing:-.03em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .msum .ms-t > span{
    display:block;font-size:11px;color:#7f90a4;margin-top:4px;letter-spacing:-.02em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .msum .ms-e{
    display:grid;place-items:center;position:relative;background:var(--brand);color:#fff;
  }
  .msum .ms-e svg{width:19px;height:19px;transform:translateY(-5px)}
  .msum .ms-e i{
    position:absolute;bottom:9px;width:6px;height:6px;
    border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
    transform:rotate(45deg);transition:transform .2s ease;
  }
  .msum .ms-state{
    position:absolute!important;width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;overflow:hidden!important;
    clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
  }
  .hstack.sopen .msum{border-color:rgba(21,112,239,.55)}
  .hstack.sopen .msum .ms-e i{transform:rotate(225deg) translate(-1px,-1px)}

  /* 열기 전에는 검색툴과 상세조건을 감춘다 */
  .p3page .hsearch,
  .p3page .hmore{display:none}
  .p3page .hstack.sopen .hsearch{display:flex}
  .p3page .hstack.sopen .hmore{display:block}

  .hsearch{
    flex-direction:column;margin:0 14px;padding:7px;
    border-radius:14px;box-shadow:var(--shadow-2);
    animation:hpop .2s cubic-bezier(.32,.72,0,1);
  }
  .hf{padding:11px 13px;border-bottom:1px solid var(--line-2);border-radius:8px}
  .hf:last-of-type{border-bottom:0}
  .hbtn{
    width:100%;margin:7px 0 0;padding:14px 0;font-size:15px;
    border-radius:10px;justify-content:center;
  }
  .hmore{margin:9px 14px 0}
  .hmp{padding:14px 15px 12px}

  /* ⑥ 패널이 화면을 넘지 않게 */
  .hpanel{
    position:static;width:auto !important;margin-top:9px;
    box-shadow:none;border:1px solid var(--line);border-radius:12px;
  }
  .hpanel.right{left:auto;right:auto}
  .pchk{max-height:230px}

  /* ⑦ 배너를 아이콘 바로 아래로 붙인다 */
  .p3page .full{padding:16px 0 30px}
}

@media (max-width:380px){
  .itab{font-size:11px}
  .itab svg{width:21px;height:21px;padding:11px}
  .msum .ms-t b{font-size:12.5px}
}


/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 좌측 카테고리 네비를 a3 에 되살린다
   지운 것은 「필터」 사이드바이고, 이것은 「네비게이션」이다.
   상단 검색과 묻는 것이 다르므로 08-09 해부도 2-4 의 중복 문제가 없다
   ═══════════════════════════════════════════════════════════ */

.p3page .rail{
  flex:0 0 176px;width:176px;padding:20px 0;
  border-right:1px solid var(--line);background:var(--paper);
  position:sticky;top:0;align-self:flex-start;
}
.p3page .rail a{padding:10px 20px;font-size:13.5px;letter-spacing:-.025em;border-radius:0}
.p3page .rail a svg{width:17px;height:17px}
.p3page .rail-g{padding-bottom:13px;margin-bottom:13px}
.p3page .rail .lbl{padding:0 20px 7px}

/* 히어로가 오른쪽 끝까지 빠지는 인상은 유지한다 */
.p3page .t3main{min-width:0}

@media (max-width:1180px){
  .p3page .rail{flex:0 0 150px;width:150px}
  .p3page .rail a{padding:9px 16px;font-size:13px}
  .p3page .rail .lbl{padding:0 16px 6px}
}

/* 모바일 — 좌측은 접는다. 아이콘 네비 4개가 그 역할을 한다 */
@media (max-width:720px){
  .p3page .rail{display:none}
}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 역할 교대
   PC   좌측 rail 이 카테고리를 맡는다 → 검색툴 위 탭은 중복이라 뺀다
   모바일 rail 을 접으므로 탭이 아이콘 네비 역할을 한다
   ═══════════════════════════════════════════════════════════ */
.p3page .itabs{display:none}
.p3page .hsearch{border-radius:var(--r-l)}

@media (max-width:720px){
  .p3page .itabs{display:grid !important}
}

/* 모바일 잔손질 — 검색 인풋 넘침, 안내띠 두 줄 */
@media (max-width:720px){
  .p3page .uhead .ubox{flex:1 1 0;min-width:0;max-width:none;padding:6px 8px}
  .p3page .uhead .ubox input{min-width:0;width:100%;font-size:16px}
  .p3page .uhead .ubox button{flex:0 0 auto}
  .p3bar{
    display:flex;align-items:center;white-space:nowrap;overflow:hidden;
    padding:7px 14px;font-size:11px;
  }
  .p3bar a{display:none}
}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 카드 위계: 호텔이 메인, 골프가 세컨
   「호텔이 메인이고 골프가 그다음 세컨」 — 신대표 01:28:40
   순서만 바꾸면 안 되고 크기도 뒤집어야 위계가 읽힌다
   ═══════════════════════════════════════════════════════════ */
.p3page .vname,
.p3page .vcard:hover .vname{
  font-size:19px;font-weight:800;letter-spacing:-.045em;
  line-height:1.28;margin-bottom:5px;
}
.p3page .vcourse,
.p3page .vcard:hover .vcourse{
  font-size:13px;font-weight:600;letter-spacing:-.03em;margin-bottom:7px;
}
.p3page .vcourse b{font-size:10.5px;padding:1.5px 6px;vertical-align:1px}
.p3page .vgrid.c3 .vname{font-size:20.5px}
.p3page .vgrid.c5 .vname{font-size:17px}

@media (max-width:760px){
  .p3page .vname,.p3page .vcard:hover .vname{font-size:15.5px;margin-bottom:3px}
  .p3page .vcourse,.p3page .vcard:hover .vcourse{font-size:12px;margin-bottom:5px}
}

/* 2026-08-18 정정 — 메인에는 좌측 네비를 두지 않는다.
   회의 결정대로 메인은 상단 검색으로 통일하고, 조건 선택 패널은 「맞춤견적」 화면에서 살린다
   (신대표 01:19:44 「맞춤 견적을 눌렀을 때 이 다이나믹이 나오게끔」) */
.p3page .rail{display:none}
.p3page .itabs{display:flex}
@media (max-width:720px){ .p3page .itabs{display:grid !important} }

/* 2026-08-18 — 골프장 안내 갤러리
   브로셔 사진이 가로 원본이라 세로 큰 칸에 cover 하면 하늘만 남는다.
   시선을 아래로 내려 코스가 보이게 한다 */
.gmos a.g1 img{object-position:50% 64%}
.gmos a:not(.g1) img{object-position:50% 55%}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 골프장 지도를 구글 지도로 (회의 결정 18)
   「지도는 구글 지도로 바꾸고 크게 넣습니다」 — 신대표 01:24:19
   자체 SVG 는 「성의 없어 보인다」는 지적을 받았다
   ═══════════════════════════════════════════════════════════ */
.gmapbox{
  border-radius:var(--r-m);overflow:hidden;border:1px solid var(--line);
  background:var(--line-2);margin-bottom:14px;
}
.gmapbox iframe{display:block;width:100%;height:340px;border:0}
.pmap .mwrap{display:block}
.pmap .mtime{padding:0}
.pmap .mtime .mt-lb{
  font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:-.02em;margin-bottom:6px;
}
@media (max-width:760px){
  .gmapbox iframe{height:230px}
}

/* 지도를 크게 — .mwrap 의 104px 2열 그리드를 확실히 푼다 (회의 결정 18) */
.pmap .mwrap{display:block !important;grid-template-columns:none !important}
.pmap .gmapbox{width:100%}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 작성자를 팀 명의로
   개인 이름을 걸면 책임이 따르고 사람이 바뀌면 다섯 페이지를 다 갈아야 한다.
   신뢰 축은 「누가 확인했나」이므로 팀 이름 + 확인 표시로 대신한다
   ═══════════════════════════════════════════════════════════ */
/* 파란 체크 원 대신 괌이지 로고를 세운다. 이미지 자체에 흰 원이 있어
   배경색과 체크 아이콘은 걷었다 (2026-08-21 CTO).
   정사각 이미지라 cover 로도 안 찌그러진다 — 원본 1254x1254 */
.pau.team .tmark{
  flex:0 0 auto;width:42px;height:42px;border-radius:50%;
  object-fit:cover;display:block;background:#fff;
}
.pau.team .nm b{font-size:14.5px;font-weight:700;letter-spacing:-.03em}
.pau.team .nm span{font-size:11.5px;color:var(--ink-3);letter-spacing:-.02em}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 카드 팝업 흔들림 수정
   호버하면 금액이 20px→24px 로 커진다. 그 순간 폭이 넘쳐
   「1인 기준」이 다음 줄로 밀리고 카드 높이가 바뀌어 버벅거렸다.
   → 「1인 기준」을 처음부터 아래 줄에 고정한다. 그러면 흔들릴 일이 없다
   ═══════════════════════════════════════════════════════════ */
.vprice{flex-wrap:wrap;row-gap:0}
.vprice .per{
  flex:0 0 100%;width:100%;margin:2px 0 0;
  font-size:11.5px;color:var(--ink-3);letter-spacing:-.02em;
}
.vcard:hover .vprice .per{color:var(--ink-3)}
/* 금액 줄 높이를 미리 잡아 둔다 — 커져도 아래가 안 밀린다 */
.p3page .vprice{min-height:46px;align-content:flex-start}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 (재) — 좌측 네비를 메인에 둔다. CTO 확인 화면 기준
   앞서 뺐다가 되살린다. 필터가 아니라 길잡이라 상단 검색과 겹치지 않는다.
   골프장 안내 아래에 다섯 곳을 펼쳐 바로 갈 수 있게 한다
   ═══════════════════════════════════════════════════════════ */
.p3page .rail{
  display:block;flex:0 0 186px;width:186px;padding:16px 0 24px;
  border-right:1px solid var(--line);background:var(--paper);
  position:sticky;top:0;align-self:flex-start;
}
.p3page .rail a{padding:10px 20px;font-size:13.5px;letter-spacing:-.03em;border-radius:0}
.p3page .rail a svg{width:17px;height:17px}
.p3page .rail-g{padding-bottom:12px;margin-bottom:12px}
.p3page .rail .lbl{padding:0 20px 7px}
.p3page .rail-sub a{padding:6px 20px 6px 48px;font-size:12.5px}
.p3page .rail-sub .dot{right:20px}

/* 좌측이 카테고리를 맡으므로 검색툴 위 탭은 PC 에서 뺀다 */
.p3page .itabs{display:none}
.p3page .hsearch{border-radius:var(--r-l)}

@media (max-width:1180px){
  .p3page .rail{flex:0 0 158px;width:158px}
  .p3page .rail a{padding:9px 16px;font-size:13px}
  .p3page .rail .lbl{padding:0 16px 6px}
  .p3page .rail-sub a{padding:6px 16px 6px 40px}
  .p3page .rail-sub .dot{right:16px}
}
@media (max-width:720px){
  .p3page .rail{display:none}
  .p3page .itabs{display:grid !important}
}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 우하단 플로팅 (기존 괌이지와 같은 자리)
   실서버 top.asp 가 카톡·공유·맨위로 셋을 띄운다. 그대로 옮기되 모양만 새로 잡는다
   ═══════════════════════════════════════════════════════════ */
.gfloat{
  position:fixed;right:22px;bottom:26px;z-index:70;
  display:flex;flex-direction:column;align-items:flex-end;gap:9px;
}
.gf{
  display:flex;align-items:center;justify-content:center;gap:7px;
  border:0;cursor:pointer;border-radius:999px;
  box-shadow:0 2px 6px rgba(16,24,40,.12),0 10px 26px rgba(16,24,40,.16);
  transition:transform .16s cubic-bezier(.32,.72,0,1),box-shadow .16s,background .16s;
}
.gf:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(16,24,40,.14),0 16px 34px rgba(16,24,40,.2)}
.gf:active{transform:scale(.97)}
.gf svg{width:21px;height:21px;flex:0 0 auto}

.gf.kakao{
  background:#FEE500;color:#191600;padding:12px 19px 12px 16px;
  font-size:14px;font-weight:700;letter-spacing:-.03em;
}
.gf.kakao .lb{white-space:nowrap}
.gf.share,.gf.top{
  width:46px;height:46px;padding:0;
  background:rgba(255,255,255,.92);color:var(--ink-2);
  -webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);
  border:.5px solid rgba(16,24,40,.08);
}
.gf.share:hover,.gf.top:hover{color:var(--brand)}
/* 맨 위로는 조금 내려가야 나타난다 */
.gf.top{opacity:0;visibility:hidden;transform:translateY(6px)}
.gf.top.on{opacity:1;visibility:visible;transform:none}

/* 모바일 — 하단 고정 바가 이미 있으므로 카톡 라벨을 접고 위로 띄운다 */
@media (max-width:720px){
  .gfloat{right:13px;bottom:calc(72px + env(safe-area-inset-bottom));gap:8px}
  .gf.kakao{width:46px;height:46px;padding:0}
  .gf.kakao .lb{display:none}
  .gf.share{display:none}

  /* ── 하단 고정 바가 없는 페이지는 사정이 다르다 (2026-08-24) ────────
     호텔 상세 12곳과 골프 상세 5곳에는 .mfixed 가 없다. 위 규칙을 그대로 두면
     모바일에서 카톡과 공유가 둘 다 사라져 상담 창구가 화면에 남지 않는다.
     390px 실측으로 확인했다 — 「맨 위로」 하나만 떠 있었다.
     그런 페이지에서는 셋을 다 살리고 바닥에 붙인다.

     :not(:has()) 로 예외를 파는 방향이라 이 선택자를 모르는 브라우저에서는
     지금과 똑같이 동작한다. 뒤집어 쓰면 메인이 망가지므로 방향을 지킨다 */
  body:not(:has(.mfixed)) .gfloat{bottom:calc(18px + env(safe-area-inset-bottom))}
  body:not(:has(.mfixed)) .gf.kakao,
  body:not(:has(.mfixed)) .gf.share{display:flex}
}

/* 상단 유틸 — 로그인만 살짝 도드라지게 */
.uhead .unav .lg{
  border:1px solid var(--line);border-radius:999px;padding:5px 13px;
  font-weight:600;color:var(--ink);
}
.uhead .unav .lg:hover{border-color:var(--brand);color:var(--brand)}

/* 맞춤견적 — 조건 패널을 본문 왼쪽에 세운다 (메인에서 걷어낸 그 패널이다) */
.qwrap .side.classic{
  flex:0 0 288px;width:288px;border-right:1px solid var(--line);
  border-radius:0;box-shadow:none;background:var(--paper);
  position:sticky;top:0;align-self:flex-start;max-height:100vh;
}
@media (max-width:900px){
  .qwrap{display:block !important}
  .qwrap .side.classic{
    flex:none;width:100%;border-right:0;border-bottom:1px solid var(--line);
    position:static;max-height:none;
  }
}

/* 맞춤견적 — 출발일 칸 (조건 순서를 상단 검색바와 맞췄다) */
.qdate input{
  width:100%;border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;
  font-family:inherit;font-size:14px;color:var(--ink);outline:0;background:var(--paper);
  transition:border-color .15s;
}
.qdate input:focus{border-color:var(--brand)}
.qdate .hint{display:block;font-size:11.5px;color:var(--ink-3);margin-top:6px;letter-spacing:-.02em}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 (재) — 메인 카드 구조를 프로모션 카드와 맞춘다
   ① 골프장과 호텔을 같은 크기로 (신대표 「비중이 같았으면」 · AI 2곳 공통 지적)
   ② 포함사항 한 줄 — 데이터가 있는 것만 (조식 A47 · 이동 A50 · 항공 A49)
   ③ 금액 기준을 명시 — 2인 1실 · 1인 기준
   ═══════════════════════════════════════════════════════════ */
.p3page .vcourse,
.p3page .vcard:hover .vcourse{
  font-size:16px;font-weight:800;letter-spacing:-.045em;line-height:1.3;margin-bottom:2px;
}
.p3page .vname,
.p3page .vcard:hover .vname{
  font-size:16px;font-weight:800;letter-spacing:-.045em;line-height:1.3;margin-bottom:6px;
}
.p3page .vcourse b{font-size:10.5px;padding:2px 7px;vertical-align:2px;margin-left:3px}

/* 포함사항 줄 */
.vinc{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.vinc span{
  font-size:11px;font-weight:600;letter-spacing:-.02em;border-radius:6px;padding:3px 7px;
  background:rgba(255,255,255,.18);color:#fff;
}
.vcard:hover .vinc span{background:#e6f6ed;color:#137a4b}
@media (hover:none){ .vinc span{background:#e6f6ed;color:#137a4b} }

/* 금액 기준 */
.p3page .vprice .per{font-size:11px}

/* ═══════════════════════════════════════════════════════════
   2026-08-18 — 모바일 점검에서 나온 것 일괄 수정
   원인 하나: 모바일 규칙을 «.p3page» 스코프로 넣었는데
   골프장·공항픽업 페이지에는 그 래퍼가 없어 하나도 안 먹었다.
   → 스코프를 뺀 규칙을 따로 둔다
   ═══════════════════════════════════════════════════════════ */
@media (max-width:720px){

  /* ① 상단 로고·검색 — 우측으로 넘치던 것 (전 페이지 공통) */
  .uhead{padding:10px 14px;gap:9px;align-items:center;flex-wrap:nowrap}
  .uhead img.logo{flex:0 0 auto;height:26px}
  .uhead .ubox{flex:1 1 0;min-width:0;max-width:none;padding:6px 8px}
  .uhead .ubox input{min-width:0;width:100%;font-size:16px}
  .uhead .ubox button{flex:0 0 auto}
  .uhead .unav{display:none}

  /* ② 시안 안내띠 — 세 줄로 터지던 것. 한 줄로 눌러 둔다 */
  .navjump{
    padding:8px 14px;font-size:11.5px;gap:9px;
    white-space:nowrap;overflow:hidden;
  }
  .navjump a{padding:4px 10px;font-size:11px;flex:0 0 auto}
  .navjump .sp{display:none}

  /* ③ 골프장 안내 — 알짜 넷을 2열로 (세로로 길게 늘어지던 것) */
  .pkey{grid-template-columns:1fr 1fr;gap:8px}
  .pkey > div{padding:11px 12px}
  .pkey b{font-size:14px}
  .pkey i{font-size:11px}

  /* ④ 프로모션 히어로 — 배너 위에 캡션이 겹쳐 글자가 뭉갰다.
        모바일에서는 캡션을 배너 아래로 내린다 */
  .pmhero{border-radius:var(--r-m)}
  .pmhero .cap{
    position:static;background:var(--paper);color:var(--ink);
    padding:12px 14px 13px;border:1px solid var(--line);border-top:0;
    border-radius:0 0 var(--r-m) var(--r-m);
  }
  .pmhero .cap b{font-size:14.5px}
  .pmhero .cap span{font-size:12px;color:var(--ink-2);opacity:1}
  .pmhero .cap .to{
    background:var(--brand-soft);border:0;color:var(--brand);font-size:11.5px;padding:5px 11px;
  }
  .pbase{font-size:12.5px;padding:11px 13px;line-height:1.9}

  /* ⑤ 맞춤견적 — 조건 패널이 통째로 사라졌던 것.
        메인용 «side.classic 숨김» 규칙이 여기까지 먹었다 */
  .qwrap{display:block !important}
  .qwrap .side.classic{
    display:block !important;
    flex:none;width:100%;border-right:0;border-bottom:1px solid var(--line);
    position:static;max-height:none;
  }
  .qwrap .side-body{max-height:none;overflow:visible}
  .qmain{padding:18px 14px 30px}
  .qstep{gap:6px;font-size:12px}
  .qstep i{width:12px}
  .qrow{grid-template-columns:1fr}
}
.mbOnly{display:none}
@media (max-width:720px){ .pcOnly{display:none} .mbOnly{display:inline} }


/* ═══════════════════════════════════════════════════════════════
   2026-08-19 — 서버가 찍는 button 을 칩으로
   시안은 label>input 체크박스였는데 실서버는 <button name="thisHotel"> 을 찍는다.
   그래서 스타일이 안 붙어 세로로 늘어졌다. 이름은 못 바꾸므로(script.asp 가 잡는다)
   CSS 로 맞춘다. .selected 도 script.asp 가 붙이는 것이다
   ═══════════════════════════════════════════════════════════════ */
.pchk.gz-btns,
.plist.gz-btns,
.mchips{
  display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;
  max-height:292px;overflow-y:auto;margin:0 -2px;padding:2px;
}
.pchk.gz-btns::-webkit-scrollbar,
.plist.gz-btns::-webkit-scrollbar{width:5px}
.pchk.gz-btns::-webkit-scrollbar-thumb,
.plist.gz-btns::-webkit-scrollbar-thumb{background:rgba(16,24,40,.16);border-radius:3px}

.pchk.gz-btns button,
.plist.gz-btns button,
.mchips button{
  flex:0 0 auto;width:auto;min-width:0;
  border:1px solid var(--line);background:var(--paper);border-radius:999px;
  padding:7px 14px;font-size:13px;font-weight:500;color:var(--ink);
  letter-spacing:-.02em;cursor:pointer;font-family:inherit;line-height:1.35;
  transition:background .14s,border-color .14s,color .14s,transform .1s;
}
.pchk.gz-btns button:hover,
.plist.gz-btns button:hover,
.mchips button:hover{border-color:rgba(21,112,239,.38);color:var(--brand)}
.pchk.gz-btns button:active,
.plist.gz-btns button:active,
.mchips button:active{transform:scale(.97)}

/* script.asp 가 붙이는 상태 클래스 — 이름을 바꾸면 안 된다 */
.pchk.gz-btns button.selected,
.plist.gz-btns button.selected,
.mchips button.selected{
  background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;
}

/* 검색 버튼 — .sidebar-buttons 로 감싸면서 자리가 틀어졌다 */
.hsearch .sidebar-buttons{
  display:flex;align-items:stretch;margin:0;padding:0;background:transparent;
  border:0;position:static;width:auto;flex:0 0 auto;
}
.hsearch .sidebar-buttons .hbtn{margin-left:6px}
.hsearch .sidebar-buttons .reset-button{display:none !important}

@media (max-width:760px){
  .pchk.gz-btns,.plist.gz-btns,.mchips{max-height:none}
  .hsearch .sidebar-buttons{width:100%;margin-top:7px}
  .hsearch .sidebar-buttons .hbtn{width:100%;margin-left:0;padding:14px 0;justify-content:center}
}

/* 카드 — 호텔명 아래 보조 줄 (객실 등급·조식 여부) */
.vsub{
  font-size:12px;font-weight:500;letter-spacing:-.02em;
  color:rgba(255,255,255,.82);margin:-3px 0 5px;
}
.vcard:hover .vsub{color:var(--ink-2)}
@media (hover:none){ .vsub{color:var(--ink-2)} }
/* 목록 그리드 — .hotel-list 와 .vgrid 가 같이 붙어 있어 순서를 못 박는다 */
body.p3page #hotel-list.hotel-list.vgrid{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(228px,1fr)) !important;
  gap:14px;
}
@media (max-width:760px){
  body.p3page #hotel-list.hotel-list.vgrid{grid-template-columns:minmax(0,1fr) !important;gap:10px}
}

/* ═══════════════════════════════════════════════════════════════
   2026-08-19 — 태그 칩에 규칙을 준다
   전부 같은 파랑이면 무엇이 이름이고 무엇이 설명인지 구분이 안 된다.
   색을 늘리지 않고 역할로 셋을 가른다 (디자인규칙 「진한 색은 파랑 하나」)
     tg-nm    골프장 이름 — 주인공. 파랑 채움
     tg-fact  숫자가 든 사실(27홀) — 연한 파랑
     tg-sub   성격·형용(평탄한 코스) — 회색 테두리. 면적을 안 먹는다
   ═══════════════════════════════════════════════════════════════ */
.tagline span{
  display:inline-block;font-size:12.5px;font-weight:600;letter-spacing:-.02em;
  padding:5px 12px;border-radius:999px;margin:0 5px 5px 0;line-height:1.35;
}
.tagline .tg-nm{background:var(--brand);color:#fff;font-weight:700}
.tagline .tg-fact{background:var(--brand-soft);color:var(--brand);font-weight:700}
.tagline .tg-sub{
  background:transparent;border:1px solid var(--line);color:var(--ink-2);font-weight:500;
}

/* ═══════════════════════════════════════════════════════════════
   2026-08-19 — 두 가지 되돌림
   ① 검색툴 위 탭(골프패키지·골프 부킹·공항 픽업·렌터카·맞춤견적)
      좌측 네비와 겹친다고 숨겼는데 실제로 쓰던 건 이 탭이다. 되살린다
   ② 검색창 폭
      #sFrm 을 넣으려고 .sidebar 로 감쌌더니 그 래퍼가 폭을 먹었다.
      .sidebar 는 이름을 못 바꾸므로(script.asp) 껍데기만 투명하게 만든다
   ═══════════════════════════════════════════════════════════════ */

/* ① 탭 */
.p3page .itabs{display:flex !important}
@media (max-width:720px){ .p3page .itabs{display:grid !important} }

/* ② 검색툴을 감싼 .sidebar 껍데기를 없앤 것처럼 만든다 */
.hstack .sidebar,
.hstack .sidebar.gz-flat{
  position:static !important;width:auto !important;max-width:none !important;
  height:auto !important;min-height:0 !important;transform:none !important;
  background:transparent !important;border:0 !important;box-shadow:none !important;
  overflow:visible !important;padding:0 !important;margin:0 !important;
  z-index:auto !important;display:block !important;
}
.hstack .sidebar .sidebar-menu{
  width:auto !important;max-width:none !important;height:auto !important;
  padding:0 !important;margin:0 !important;background:transparent !important;
  border:0 !important;box-shadow:none !important;overflow:visible !important;
  display:block !important;
}
.hstack .sidebar form{margin:0;padding:0}
/* 검색툴 본체는 시안 폭을 그대로 */
/* .sidebar 껍데기를 없앤 뒤에는 폭을 되돌려 준다. 탭과 검색창이 같은 폭이어야 한다 */
.hstack .sidebar .hsearch{max-width:none;margin:0}

/* ═══════════════════════════════════════════════════════════════
   부트스트랩과 이름이 겹친다 (2026-08-19 실측)
   실서버에는 bootstrap.min.css 가 깔려 있고 .hstack .row .col 이 거기에도 있다.
   시안에는 그 파일이 없어 안 겪던 문제다. 부트스트랩은 손대지 않고
   우리 화면 안(.p3page)에서만 되돌린다.
     .hstack  → display:flex 가 먹어 탭과 검색창이 가로로 나란히 섰다
     .row     → .row>* 가 width:100% 라 인원 스텝퍼가 세로로 떨어진다
     .col     → .wrap.col 이 flex:1 0 0 이 된다
   ═══════════════════════════════════════════════════════════════ */
.p3page .hstack{display:block;flex-direction:column;align-items:stretch;align-self:auto}
.p3page .wrap.col{flex:0 1 auto;width:auto;max-width:none}
.p3page .pax .row{--bs-gutter-x:0;--bs-gutter-y:0;margin:0;flex-wrap:nowrap}
.p3page .pax .row>*{
  flex-shrink:1;width:auto;max-width:none;
  padding-left:0;padding-right:0;margin-top:0;
}
.p3page .pax .row .lb{flex:1;min-width:0}
.p3page .pax .row .stp{flex:0 0 auto;width:auto}

/* ── 골프장 패널만 행형으로 — 시안처럼 사진과 한 줄 설명을 붙인다 ──
   서버가 아니라 우리가 찍는 버튼이라 안에 내용을 넣을 수 있다.
   .selected 는 script.asp 가 붙인다. 이름은 그대로 둔다 */
.pchk.gz-rows{
  display:flex;flex-direction:column;flex-wrap:nowrap;gap:1px;
  max-height:296px;overflow-y:auto;margin:0 -4px;padding:0;
}
.pchk.gz-rows::-webkit-scrollbar{width:5px}
.pchk.gz-rows::-webkit-scrollbar-thumb{background:rgba(16,24,40,.16);border-radius:3px}
.pchk.gz-rows button{
  display:flex;align-items:center;gap:11px;width:100%;flex:0 0 auto;
  padding:9px 10px;border:0;border-radius:12px;background:transparent;
  font-family:inherit;font-size:14px;font-weight:500;color:var(--ink);
  text-align:left;cursor:pointer;transition:background .14s;
}
.pchk.gz-rows button:hover{background:rgba(16,24,40,.045);color:var(--ink)}
.pchk.gz-rows button:active{transform:none}
.pchk.gz-rows .bx{
  width:21px;height:21px;flex:0 0 auto;border-radius:50%;
  border:1.5px solid rgba(16,24,40,.2);background:transparent;position:relative;
  transition:background .16s,border-color .16s;
}
.pchk.gz-rows .th{width:42px;height:31px;border-radius:8px;object-fit:cover;flex:0 0 auto}
.pchk.gz-rows .tx{flex:1;min-width:0}
.pchk.gz-rows .tx b{display:block;font-size:14px;font-weight:600;letter-spacing:-.03em}
.pchk.gz-rows .tx span{
  display:block;font-size:11.5px;color:var(--ink-3);margin-top:1.5px;letter-spacing:-.02em;
}
.pchk.gz-rows button.selected{background:rgba(21,112,239,.07);color:var(--ink)}
.pchk.gz-rows button.selected .bx{background:var(--brand);border-color:var(--brand)}
.pchk.gz-rows button.selected .bx::after{
  content:"";position:absolute;left:5.5px;top:7px;width:7.5px;height:4px;
  border-left:1.8px solid #fff;border-bottom:1.8px solid #fff;transform:rotate(-45deg);
}
.pchk.gz-rows button.selected .tx b{color:var(--brand)}

/* ── 로딩 오버레이 — 실서버 규칙이 안 넘어와서 항상 보였다 (2026-08-19) ──
   원본 new_style.css 595행. script.asp 가 .active 를 붙였다 뗀다 */
.p3page .loading-overlay{
  position:fixed;top:0;left:0;right:0;bottom:0;
  background:rgba(6,22,36,.45);backdrop-filter:blur(2px);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  z-index:9999;opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
}
.p3page .loading-overlay.active{opacity:1;visibility:visible}
.p3page .loading-spinner{
  width:44px;height:44px;border-radius:50%;
  border:4px solid rgba(255,255,255,.28);border-top-color:#fff;
  animation:gzspin .9s linear infinite;
}
@keyframes gzspin{to{transform:rotate(360deg)}}
.p3page .loading-overlay p{margin-top:14px;font-size:14px;color:#fff;font-weight:600}

/* ── 결과 0건 — script.asp 가 #no-results-alert 를 켠다 ── */
.p3page #no-results-alert{
  display:none;margin:8px 0 4px;padding:44px 24px;text-align:center;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);
}
.p3page #no-results-alert .nra-t{
  font-size:18px;font-weight:700;letter-spacing:-.03em;color:var(--ink);
}
.p3page #no-results-alert .nra-d{
  margin-top:8px;font-size:13.5px;color:var(--ink-2);letter-spacing:-.02em;line-height:1.65;
}
.p3page #no-results-alert .nra-b{
  margin-top:20px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;
}
.p3page #no-results-alert .nra-b a{
  display:inline-flex;align-items:center;gap:6px;padding:11px 20px;border-radius:var(--r-s);
  font-size:14px;font-weight:600;text-decoration:none;letter-spacing:-.02em;
}
.p3page #no-results-alert .nra-b .p{background:var(--brand);color:#fff}
.p3page #no-results-alert .nra-b .p:hover{background:var(--brand-ink)}
.p3page #no-results-alert .nra-b .s{
  background:var(--paper);color:var(--ink);border:1.4px solid var(--line);
}
.p3page #no-results-alert .nra-b .s:hover{border-color:var(--brand);color:var(--brand)}

/* ── 투숙일을 시안 목록형으로 되돌렸다 (2026-08-19)
      시안은 .on 을 쓰고 script.asp 는 .selected 를 붙인다. 둘을 같게 맞췄다 ── */
.p3page .plist button.selected{
  background:rgba(21,112,239,.09);color:var(--brand);font-weight:700;
}
.p3page .plist button.selected em{background:rgba(21,112,239,.12);color:var(--brand)}

/* 호텔 패널은 사진이 없다 — 이름과 위치 두 줄만 놓는다 */
.p3page #gzHotelBox button{padding-left:10px}

/* ═══════════════════════════════════════════════════════════════
   포함사항 칩 — 다시 잡았다 (2026-08-19)

   전에는 흰 반투명(rgba(255,255,255,.18)) 이라
   하늘·흰 건물 사진 위에서 글자가 묻혔다.

   색으로 종류를 나누지 않는다. 카드가 90장 깔리는 화면에서
   칩이 알록달록하면 정작 봐야 할 가격이 안 보인다.
     포함(✓)  조식·왕복셔틀·렌터카 — 돈이 붙는 것
     정보(.n)  주간·야간항공편 — 종류일 뿐이다. 한 단 흐리게
   ═══════════════════════════════════════════════════════════════ */
.vinc span{
  background:rgba(8,20,32,.48);
  border:.5px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(6px) saturate(150%);
  backdrop-filter:blur(6px) saturate(150%);
  color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.30);
}
.vinc span.n{
  background:rgba(8,20,32,.30);border-color:rgba(255,255,255,.13);
  color:rgba(255,255,255,.84);font-weight:500;
}
.vcard:hover .vinc span{
  background:#e4f5ec;border-color:rgba(19,122,75,.20);color:#0f6b41;text-shadow:none;
}
.vcard:hover .vinc span.n{
  background:#f1f3f6;border-color:rgba(16,24,40,.10);color:#5b6572;
}
@media (hover:none){
  .vinc span{background:#e4f5ec;border-color:rgba(19,122,75,.20);color:#0f6b41;text-shadow:none}
  .vinc span.n{background:#f1f3f6;border-color:rgba(16,24,40,.10);color:#5b6572}
}

/* ═══════════════════════════════════════════════════════════════
   자랑거리 네 줄 — 세 번째 판 (2026-08-19)

   ① 텍스트만 → 「사진에 묻혀 안 보인다」
   ② 유리 알약 + 흰 원형 아이콘 → 「너무 과해」
   ③ 지금 — 장식을 빼고 타이포와 여백으로 푸다

   알약 4개가 나란히 서면 누를 수 있는 버튼줄로 읽힌다. 그것부터 틀렸다.
   흰 원형 배지는 대비가 가장 강해 제목보다 먼저 시선을 가져간다 — 위계가 뒤집힌다.
   자랑거리는 제목의 경쟁자가 아니라 제목을 믿게 만드는 근거다.

   GPT·Gemini 교차검증에서 둘 다 같은 결론을 냈다 — 장식을 버리고 대비만 남긴다.
   ═══════════════════════════════════════════════════════════════ */
.p3page .hero-trust{
  margin-top:24px;                       /* 부제와 띄워 독립된 정보로 읽히게 한다 */
  display:flex;justify-content:center;flex-wrap:wrap;
  color:#fff;                            /* 반투명 85%보다 100%가 오히려 또렷하다 */
  font-size:13.5px;font-weight:600;letter-spacing:-.018em;
  text-shadow:0 1px 4px rgba(0,20,55,.30);
}
.p3page .hero-trust span{
  position:relative;                     /* 구분선 기준점. 이게 없어 엉뚱한 곳에 붙었다 */
  display:inline-flex;align-items:center;gap:7px;
  padding:2px 18px;white-space:nowrap;
  background:none;border:0;box-shadow:none;border-radius:0;
  -webkit-backdrop-filter:none;backdrop-filter:none;
}
.p3page .hero-trust span+span::before{
  content:"";display:block;position:absolute;left:0;top:50%;
  width:1px;height:13px;transform:translateY(-50%);
  background:rgba(255,255,255,.32);
}
.p3page .hero-trust span svg{
  width:17px;height:17px;flex:0 0 auto;padding:0;border-radius:0;
  background:none;box-shadow:none;color:#8fd4ff;
}
body[data-tone="tropical"] .p3page .hero-trust span svg{color:#ffd479}

@media (max-width:720px){
  /* 전에는 모바일에서 통째로 숨겼다. 자랑거리를 숨기면 안 된다 */
  .p3page .hero.band .hero-trust{
    display:grid;grid-template-columns:1fr 1fr;gap:9px 10px;
    margin-top:16px;font-size:11.5px;justify-items:start;
  }
  .p3page .hero-trust span{padding:0;gap:6px;white-space:normal;line-height:1.3;text-align:left}
  .p3page .hero-trust span+span::before{display:none}   /* 2열에서 세로선은 끊겨 보인다 */
  .p3page .hero-trust span svg{width:15px;height:15px}
}

/* ══════════════════════════════════════════════════════════════
   골프 부킹 · 공항 픽업·렌터카 · 맞춤견적 — 메인 톤으로 맞춘다 (2026-08-19)

   적용 범위는 body.gz-tone 안뿐이다. 실서비스 화면은 이 클래스가 없어 영향을 받지 않는다.
   기존 shuttle_style.css · menu_style.css · group_style.css 는 한 줄도 고치지 않는다.

   【실측한 구조】 세 화면이 서로 다르다
     골프    .sidebar > .sidebar-menu > form > ul > li   섹션 카드 5
     셔틀    .sidebar > form > ul > li                   섹션 카드 4
     견적    .sidebar > form > ul > li                   섹션 카드 3
   셋 다 `.sidebar form > ul > li` 로 잡힌다.

   🔴 `.sidebar ul li` 로 잡으면 안쪽 항목(.toolbar-action > li — 골프장 5행 등)까지
   카드가 돼버린다. 처음에 그렇게 썼다가 교차검증에서 잡혔다.
   ═══════════════════════════════════════════════════════════════ */
.gz-tone{
  --paper:#ffffff;                      /* :root 에도 있지만 방어적으로 다시 선언한다 */
  --brand:#1570EF; --brand-ink:#0B4DA2; --brand-soft:#EAF2FE;
  --lime:#22B573; --sale:#F59E0B;
  --ink:#334155; --ink-2:#5b6b7f; --ink-3:#94a3b8;
  --ground:#F8FAFC; --line:#e6ecf3; --line-2:#f1f5f9;
  letter-spacing:-.015em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* ① 좌측 폼 — 검은 2px 테두리를 걷는다
      범인은 shuttle_style.css 의 .sidebar ul li { border:2px solid #000; padding:20px 14px 14px }
      우측만 padding-right 로 덮으면 좌우가 어긋난다. 네 면을 다 쓴다 */
.gz-tone .sidebar{background:#EFF3F8}   /* 흰 카드가 떠 보이게 한 단 진하게 */
.gz-tone .sidebar form > ul > li{
  background:var(--paper);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 22px rgba(16,24,40,.05);
  padding:20px 18px 16px;
}
.gz-tone .sidebar form > ul > li h3,
.gz-tone .sidebar form > ul > li .thisTitle{letter-spacing:-.03em;color:var(--ink)}

/* ② 상단 탭 — 메인 .itab 과 같은 문법
      비활성 색은 --ink-3(#94a3b8) 가 흰 배경에서 2.4:1 밖에 안 나온다.
      WCAG AA 가 4.5:1 이므로 --ink-2 로 올렸다 (교차검증 지적) */
.gz-tone .thisMenu{
  background:var(--paper);border-bottom:1px solid var(--line);
  border-radius:16px 16px 0 0;
}
.gz-tone .menubar{gap:0}
.gz-tone .menubar li a{
  color:var(--ink-2);font-weight:600;font-size:14.5px;letter-spacing:-.025em;
  background:none;border-radius:0;padding:13px 0 11px;
  border-bottom:2.5px solid transparent;transition:color .15s, border-color .15s;
}
.gz-tone .menubar li a:hover{background:none;color:var(--ink)}
.gz-tone .menubar li.active a{
  background:none;color:var(--brand);font-weight:700;border-bottom-color:var(--brand);
}

/* ③ 좌측 폼 안내 — 박스를 걷는다
      「네모상자 가시성이 별로」(CTO). 여행사들은 안내를 박스에 넣지 않는다.
      박스가 입력칸보다 크고 색이 강하면 안내가 주인공이 된다.
      입력칸 아래 작은 글씨 + 왼쪽 실선으로 낮춘다.
      실측 — .alert-area 는 전부 사이드바 안이다. 본문 상단 띠는 swiper 라 안 걸린다 */
.gz-tone .alert-area{margin:8px 0 0}
.gz-tone .alert-area .alert-info{
  background-color:transparent !important;
  border:0;border-left:2.5px solid #d7e6fb;border-radius:0;
  padding:1px 0 1px 11px;
  color:var(--ink-2);font-size:12px;font-weight:400;
  line-height:1.65;letter-spacing:-.02em;
  display:block;text-align:left;
}
/* 안내 안의 첫 줄만 한 단 진하게 — 「무엇을 하라」가 먼저 읽혀야 한다 */
.gz-tone .alert-area .alert-info b,
.gz-tone .alert-area .alert-info strong{color:var(--ink);font-weight:600}

/* ④ 버튼 — 검정 대신 브랜드 파랑 */
.gz-tone .sidebar-buttons .apply-filter-button,
.gz-tone .booking-button,
.gz-tone .thisBookingBotton button{
  background:var(--brand);color:#fff;font-weight:700;border-radius:14px;
  box-shadow:0 6px 18px rgba(21,112,239,.24);transition:background .15s;
}
.gz-tone .sidebar-buttons .apply-filter-button:hover,
.gz-tone .booking-button:hover,
.gz-tone .thisBookingBotton button:hover{background:var(--brand-ink)}
.gz-tone .sidebar-buttons .reset-button{
  background:var(--paper);color:var(--ink-2);font-weight:600;
  border:1px solid var(--line);border-radius:14px;transition:border-color .15s, color .15s;
}
.gz-tone .sidebar-buttons .reset-button:hover{border-color:var(--brand);color:var(--brand)}

/* 포함·개별이동 같은 둘 중 하나 토글 — 섹션 카드 바로 밑으로 범위를 좁힌다.
   달력·인원 증감 같은 기능 버튼까지 잡으면 안 된다 */
.gz-tone .sidebar form > ul > li > div > button.selected,
.gz-tone .sidebar form > ul > li > button.selected{
  background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;
}
.gz-tone .sidebar form > ul > li > div > button:not(.selected):not(:disabled),
.gz-tone .sidebar form > ul > li > button:not(.selected):not(:disabled){
  border-color:var(--line);color:var(--ink-2);
}

/* ⑤ 드롭다운 — 입력칸처럼 보이게.
      .dropdown-menu 를 그대로 잡으면 페이지 안 모든 부트스트랩 드롭다운이 따라온다.
      실측 결과 10개 전부 .toolbar-action 안이므로 거기로 좁힌다 */
.gz-tone .toolbar-action .btn.dropdown-toggle{
  border:1px solid var(--line);border-radius:10px;background:var(--paper);
  color:var(--ink);font-weight:500;padding:6px 10px;font-size:13px;
  transition:border-color .15s, color .15s;
}
.gz-tone .toolbar-action .btn.dropdown-toggle:hover{border-color:var(--brand);color:var(--brand)}
.gz-tone .toolbar-action .dropdown-menu{
  --bs-dropdown-bg:var(--paper);
  --bs-dropdown-border-color:var(--line);
  --bs-dropdown-border-radius:14px;
  border:1px solid var(--line);border-radius:14px;
  box-shadow:0 12px 34px rgba(16,24,40,.13);padding:6px;
}
.gz-tone .toolbar-action .dropdown-menu .sort-item{
  border-radius:9px;font-size:13.5px;letter-spacing:-.02em;
}

/* ⑥ 카드 — 메인 카드와 같은 결.
      overflow:hidden 은 셔틀 가로형 카드의 이미지 모서리 때문에 필요하다.
      카드 안 절대배치를 전수로 셌고 .badge 뿐이라 잘릴 것이 없다(실측) */
.gz-tone .hotel-card{
  border:1px solid var(--line);border-radius:18px;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.06);
  transition:transform .18s cubic-bezier(.32,.72,0,1), box-shadow .18s;
}
.gz-tone .hotel-card:hover{
  transform:translateY(-3px);
  box-shadow:0 2px 4px rgba(16,24,40,.05), 0 18px 40px rgba(16,24,40,.13);
}
.gz-tone .hotel-title{font-weight:700;letter-spacing:-.03em;color:var(--ink)}
.gz-tone .hotel-price{font-weight:800;letter-spacing:-.03em;color:var(--ink)}
.gz-tone .cta{
  background:var(--brand);border-radius:10px;font-weight:700;
  box-shadow:0 3px 10px rgba(21,112,239,.22);transition:background .15s;
}
.gz-tone .cta:hover{background:var(--brand-ink)}

/* ⑦ 바깥 틀 */
.gz-tone .wrapper{
  border-radius:16px;
  box-shadow:0 1px 3px rgba(16,24,40,.05), 0 12px 34px rgba(16,24,40,.07);
}

/* ⑧ 입력칸 — 세 화면이 각기 다른 모양이었다 */
.gz-tone .sidebar input[type="text"],
.gz-tone .sidebar input[type="tel"],
.gz-tone .sidebar input[type="email"],
.gz-tone .sidebar input[type="date"],
.gz-tone .sidebar select,
.gz-tone .sidebar textarea,
.gz-tone .inputText{
  border:1px solid var(--line);border-radius:10px;background:var(--paper);
  padding:8px 12px;font-size:13.5px;color:var(--ink);font-family:inherit;
  transition:border-color .15s, box-shadow .15s;
}
.gz-tone .sidebar input:focus,
.gz-tone .sidebar select:focus,
.gz-tone .sidebar textarea:focus,
.gz-tone .inputText:focus{
  outline:0;border-color:var(--brand);box-shadow:0 0 0 3px rgba(21,112,239,.13);
}

/* ⑨ 키보드 초점 — 이전에는 없었다. 탭으로 이동하는 손님이 어디 있는지 보여야 한다 */
.gz-tone .menubar li a:focus-visible,
.gz-tone .sidebar-buttons button:focus-visible,
.gz-tone .toolbar-action .btn:focus-visible,
.gz-tone .cta:focus-visible,
.gz-tone .booking-button:focus-visible{
  outline:3px solid rgba(21,112,239,.32);outline-offset:2px;border-radius:8px;
}

/* ⑩ 모바일 카드의 가격 배지 — 사진 위에 흰 글씨만 있어 묻혔다.
      원본이 480px 이하에서만 보이게 하므로 같은 범위로 좁힌다.

      !important 를 쓴 이유 — 원본이
      .product-list.grid-view .hotel-list .hotel-card .badge (클래스 5개) 로
      배경을 투명으로 박아둔다. 원본 CSS 를 안 고치는 이상 특이도로는 못 이긴다 */
@media screen and (max-width:480px){
  .gz-tone .badge.badge-price{
    background:rgba(8,20,32,.52) !important;
    -webkit-backdrop-filter:blur(6px) saturate(150%);
    backdrop-filter:blur(6px) saturate(150%);
    border:.5px solid rgba(255,255,255,.22) !important;
    border-radius:9px !important;padding:5px 10px !important;
    font-weight:700 !important;letter-spacing:-.02em;color:#fff !important;
    text-shadow:0 1px 2px rgba(0,0,0,.32);
  }
}

/* ⑪ 움직임을 줄이는 설정을 켜 둔 사용자 */
@media (prefers-reduced-motion:reduce){
  .gz-tone .hotel-card,
  .gz-tone .hotel-card:hover{transition:none;transform:none}
}

/* ── 날짜 선택을 두 달 나란히로 (2026-08-19 CTO 요청) ──────────
      여행사 달력은 두 달을 보여준다. 왕복 일정을 잡을 때 달을 넘나들지 않아도 된다.
      날짜가 원인 것, 화살표가 원인 것은 시안 그대로 두고 폭만 넓힌다 */
.p3page .hpanel.p-date{width:648px}
.p3page .cal2 .chd{margin:0 2px 4px}
.p3page .cal2 .chd b{font-size:14px;color:var(--ink-2);font-weight:600}
.p3page .cal2 .cmons{
  display:grid;grid-template-columns:1fr 1fr;gap:0 26px;position:relative;
}
/* 두 달 사이 헤어라인 — 경계가 없으면 한 덩어리로 읽힌다 */
.p3page .cal2 .cmons::before{
  content:"";position:absolute;left:50%;top:6px;bottom:6px;width:1px;
  background:rgba(16,24,40,.07);
}
.p3page .cal2 .cmt{
  text-align:center;font-size:14px;font-weight:700;letter-spacing:-.03em;
  color:var(--ink);padding:2px 0 8px;
}
.p3page .cal2 .cgrid button{height:36px;font-size:13.5px}

/* 지난 날짜 — 전에는 아무 날이나 눌렸다 */
.p3page .cal .cgrid button.past{color:var(--ink-3);opacity:.38;cursor:default}
.p3page .cal .cgrid button.past:hover{background:transparent}
.p3page .cal .cgrid button.pad{color:transparent;cursor:default}
.p3page .cal .cgrid button.pad:hover{background:transparent}

@media (max-width:760px){
  /* 좁은 화면에서는 한 달만. 두 달을 욱여넣으면 날짜가 눌리지 않는다 */
  .p3page .hpanel.p-date{width:auto}
  .p3page .cal2 .cmons{grid-template-columns:1fr;gap:14px}
  .p3page .cal2 .cmons::before{display:none}
  .p3page .cal2 .cmon:nth-child(2){display:none}
}

/* ── 골프장 안내 — 단품 경로를 연다 (2026-08-19 CTO 요청) ──────
      「골프장 패키지 뿐만 아니라 단품 메뉴도」
      패키지가 주, 그린피 단품이 보조다. 둘을 같은 크기로 두면 손님이 고민한다 */
.ctas{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ctas .cta{flex:0 0 auto}
.ctas .cta2{
  display:inline-flex;align-items:center;justify-content:center;
  padding:11px 20px;border-radius:var(--r-s);
  background:var(--paper);color:var(--ink);border:1.4px solid var(--line);
  font-size:14px;font-weight:600;letter-spacing:-.02em;text-decoration:none;
  transition:border-color .15s, color .15s;
}
.ctas .cta2:hover{border-color:var(--brand);color:var(--brand)}
@media (max-width:560px){
  .ctas{width:100%}
  .ctas .cta,.ctas .cta2{flex:1 1 100%;justify-content:center}
}

/* ── 차로 이동 — 위계를 다시 잡는다 (2026-08-19 CTO 지적) ──────
      전에는 제목 「차로 이동」이 12px 회색이고 숫자가 19px 800 이었다.
      숫자만 튀어서 무엇을 말하는 표인지 안 읽혔다.
      제목 → 라벨 → 값 순으로 읽히게 낮춘다 */
.mtime .mt-lb{
  font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.03em;
  margin:0 0 4px;padding-bottom:9px;border-bottom:1px solid var(--line);
}
.mtime li{padding:10px 0;border-bottom:1px solid var(--line-2)}
.mtime li span{font-size:14px;font-weight:500;color:var(--ink);letter-spacing:-.03em}
.mtime li b{font-size:17px;font-weight:700;color:var(--ink)}
/* 「분」이 11.5px 이라 「30」과 따로 놀았다. 한 덩어리로 읽히게 키운다 */
.mtime li b i{font-size:13px;font-weight:600;color:var(--ink-2);margin-left:2px}
.mnote{margin:10px 0 0;font-size:11.5px;color:var(--ink-3);line-height:1.6}

@media (max-width:760px){
  .mtime .mt-lb{font-size:12.5px}
  .mtime li span{font-size:13px}
  .mtime li b{font-size:16px}
  .mtime li b i{font-size:12px}
}

/* ── 상세조건 칩 재클릭 해제 버그 — 화면 쪽 방어 (2026-08-19)

      서버가 찍은 칩은 script.asp 가 .selected 를 토글한다.
      시안 쪽 JS 가 붙이는 .on 은 「한 묶음에서 하나만」 로직이라
      여러 개를 켜 둔 상태에서는 둘이 어긋난다.

      JS 쪽은 고쳤고(name 있는 버튼은 건드리지 않는다),
      혹시 모를 경로로 .on 이 남아도 파랑으로 보이지 않게 막는다.
      실측 — 셋 다 켜고 하나씩 다시 누를 때 hidden 은 맞는데 화면만 틀렸다 */
.p3page .mchips button[name].on:not(.selected){
  background:var(--paper);border-color:var(--line);
  color:var(--ink);font-weight:500;
}

/* ── 카드를 누를 때 폼 행 강조 (2026-08-19 A안) ── */
.gz-tone .divGolf.gz-flash{animation:gzflash 1.3s ease}
@keyframes gzflash{
  0%{background:rgba(21,112,239,.18);box-shadow:0 0 0 3px rgba(21,112,239,.20)}
  70%{background:rgba(21,112,239,.10);box-shadow:0 0 0 3px rgba(21,112,239,.10)}
  100%{background:transparent;box-shadow:0 0 0 0 rgba(21,112,239,0)}
}
/* 모바일 — 폼이 접혀 있을 때 담겼다는 것만 알린다 */
.gz-toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(10px);
  background:rgba(8,20,32,.90);color:#fff;padding:11px 18px;border-radius:999px;
  font-size:13.5px;font-weight:600;letter-spacing:-.02em;z-index:10000;
  opacity:0;pointer-events:none;transition:opacity .2s, transform .2s;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(2,12,22,.28);
}
.gz-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
@media (prefers-reduced-motion:reduce){
  .gz-tone .divGolf.gz-flash{animation:none;background:rgba(21,112,239,.12)}
}

/* ── CCP 평일 9홀 신청 체크박스 (2026-08-19) ──
      예약 확인 화면은 gz-tone 스코프가 없으므로 전역 이름으로 둔다.
      gz9- 접두사라 기존 클래스와 겹치지 않는다 */
.gz9-row{
  display:flex;align-items:flex-start;gap:11px;cursor:pointer;
  padding:13px 15px;border-radius:12px;
  background:#f2f8f1;border:1px solid #d9ead6;
}
.gz9-row:hover{border-color:#9fce97}
.gz9-row input[type="checkbox"]{
  width:19px;height:19px;flex:0 0 auto;margin:1px 0 0;accent-color:#43801f;cursor:pointer;
}
.gz9-tx{flex:1;min-width:0;line-height:1.5}
.gz9-tx b{
  display:block;font-size:14.5px;font-weight:700;color:#2f6516;letter-spacing:-.03em;
}
.gz9-tx span{
  display:block;margin-top:3px;font-size:12.5px;color:#5b6b5a;letter-spacing:-.02em;
}

/* ═══════════════════════════════════════════════════════════
   2026-08-20 — 모바일 다듬기
   실제 기기 폭(390)에서 훑고 걸린 것만 잡는다
   ═══════════════════════════════════════════════════════════ */

/* ── ① 플로팅이 두 벌이었다 ──────────────────────────────
   실서버 top.asp 의 카톡·공유·맨위로가 그대로 살아 있어 시안 .gfloat 와 겹쳤다.
   특히 원본 카톡 버튼(z-index 9999)이 하단 고정 바의 「맞춤견적 요청」 글자를 덮었다.
   시안 쪽을 남기고 원본 쪽을 감춘다.
   골프·셔틀·견적에는 .gfloat 가 없으므로 그쪽 원본은 건드리지 않는다 */
/* 2026-08-24 CTO 「본섭처럼해줘」 — PC 는 원본을 되살린다.
   위 08-24 항목에서 원본 셋을 감췄는데, 형님이 본섭 모양을 원하셨다.
   test/index.asp 가 /hotelpack/top.asp 를 그대로 include 하고 있고
   test/script.asp 에 .show 를 붙이는 코드도 있으므로, 감추기만 풀면
   본섭과 픽셀 단위로 같아진다 — 60×60 · radius 12 · #ffe500 · right 20 · bottom 20/89/160.

   모바일은 그대로 감춘다. 하단 고정 바(.mfixed 67px) 위로 원본 카톡이
   bottom 15px · z-index 9999 로 올라와 「맞춤견적 요청」 글자를 덮는다.
   08-24 에 390px 로 재서 확인한 자리다 */
@media (max-width:720px){
  .p3page .btn-kakao,
  .p3page .divShare,
  .p3page .divTop{display:none !important}
}
@media (min-width:721px){
  .p3page .gfloat{display:none}
}

/* ── ② 건수 표시가 둘이었다 ──────────────────────────────
   sort.asp 의 「골프패키지(1/8)」 는 페이지 번호이고 시안 헤더는 총 건수다.
   같은 자리에 다른 숫자가 둘 뜨면 어느 쪽이 결과인지 알 수 없다. 총 건수를 남긴다 */
.p3page .show-filter-mobile .thisCount{display:none}
.p3page .show-filter-mobile{margin:0;padding:0;min-height:0;border:0;background:none}
.p3page .show-filter-tag:empty{display:none}

/* ── ③ 진짜 정렬을 시안 헤더 자리에서 시안 톤으로 ────────
   마크업은 sort.asp 것 그대로다. 자리와 모양만 바꾼다 */
.p3page .srtslot{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.p3page .srtslot .thisToobar{margin:0;padding:0}
.p3page .srtslot .toolbar-action{
  display:flex;align-items:center;gap:9px;margin:0;padding:0;list-style:none;
}
.p3page .srtslot .toolbar-action > li{margin:0;padding:0;list-style:none}
.p3page .srtslot .dropdown-toggle{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);
  padding:7px 12px;font-size:13px;font-weight:500;color:var(--ink-2);
  display:flex;align-items:center;gap:7px;box-shadow:none;
}
.p3page .srtslot .dropdown-toggle:hover{border-color:var(--ink-3);color:var(--ink)}
.p3page .srtslot .dropdown-toggle::after{display:none}
.p3page .srtslot .dropdown-toggle .stt-icon-arrow-down{
  width:6px;height:6px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);
  transform:rotate(45deg);display:inline-block;margin-top:-3px;
}
.p3page .srtslot .dropdown-toggle .stt-icon-arrow-down::before{content:none}
.p3page .srtslot .sort-menu{
  border:1px solid var(--line);border-radius:12px;padding:8px 4px;
  box-shadow:0 4px 12px rgba(16,24,40,.08),0 16px 36px rgba(16,24,40,.10);
}
.p3page .srtslot .sort-item{padding:4px 10px}
.p3page .srtslot .sort-item .title{
  display:block;font-size:11px;font-weight:600;color:var(--ink-3);
  letter-spacing:.02em;margin:6px 0 3px;
}
.p3page .srtslot .st-icheck-item label{
  display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink);
  padding:6px 4px;cursor:pointer;margin:0;white-space:nowrap;
}
/* 보기 전환 — 아이콘만 남기고 톤을 맞춘다 */
.p3page .srtslot .layout{display:flex;align-items:center;gap:2px}
.p3page .srtslot .layout-item{
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;color:var(--ink-3);cursor:pointer;transition:all .14s;
}
.p3page .srtslot .layout-item:hover{background:var(--brand-soft);color:var(--brand)}
.p3page .srtslot .layout-item.active{background:var(--brand-soft);color:var(--brand)}
/* 세 번째(네모)는 무엇을 하는지 화면에서 읽히지 않는다. 격자·목록 둘만 남긴다 */
.p3page .srtslot .layout-item.layout-grid{display:none}

/* ── ④ 호텔 브랜드 필터 — 시안 칩과 같은 모양으로 ────────
   sort.asp 가 만드는 13개다. 가로로 흐르는데 잘린 티가 안 나서 끝을 흐린다 */
.p3page #sortHotelMenu{
  gap:7px;padding:0 0 16px;position:relative;
  -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);
          mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);
}
.p3page #sortHotelMenu button{
  border:1px solid var(--line);background:var(--paper);border-radius:30px;
  padding:6px 14px;font-size:12.5px;color:var(--ink-2);transition:all .14s;
  white-space:nowrap;
}
.p3page #sortHotelMenu button:hover{border-color:var(--ink-3);color:var(--ink)}
.p3page #sortHotelMenu button.selected{
  background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;
}

/* ── ⑤ 모바일에서 헤더가 좁다 ───────────────────────────
   제목과 정렬이 한 줄에 다 안 들어가면 정렬을 아래로 내린다 */
@media (max-width:560px){
  .p3page .sec{flex-wrap:wrap;gap:8px}
  .p3page .srtslot{width:100%;justify-content:space-between}
  .p3page .srtslot .toolbar-action{width:100%;justify-content:space-between}
}

/* ── ⑥ 세 화면 — 폼 여는 버튼이 아이콘 하나뿐이었다 ─────
   골프는 좌우화살표(↔), 셔틀·견적은 돋보기만 떠 있어
   누르면 무엇이 열리는지 화면에서 읽힐 방법이 없었다. 한 단어를 붙인다 */
.gz-tone .mobile-menu .mobile-menu-toggle{
  display:flex;align-items:center;gap:6px;width:auto;padding:0 4px;
  font-size:12.5px;font-weight:600;color:var(--ink-2);letter-spacing:-.02em;
}
.gz-tone .mobile-menu-toggle::after{
  font-size:12.5px;font-weight:600;color:var(--ink-2);letter-spacing:-.02em;white-space:nowrap;
}
.gz-golf   .mobile-menu-toggle::after{content:"예약"}
.gz-shuttle .mobile-menu-toggle::after{content:"예약"}
.gz-quote  .mobile-menu-toggle::after{content:"견적"}
/* 본문 안의 큰 버튼에는 이미 글자가 있다. 거기까지 붙이지 않는다 */
.gz-tone .booking-button.mobile-menu-toggle::after{content:none}

/* 드롭다운이 모바일에서 오른쪽 끝에 딱 붙는다. 여유를 준다 */
@media (max-width:560px){
  .p3page .srtslot .sort-menu{right:8px !important;left:auto !important}
}

/* ── 골프장 안내 하단 줄 — 둘로 쪼개지는 것을 막는다 (2026-08-20)
      .pact 에 flex-wrap 이 없어 「저장」「공유」가 41px 로 눌려 줄바꿈됐다.
      560px 이하 규칙만 있었는데 깨진 폭은 633px 였다 */
.pact{flex-wrap:wrap;row-gap:12px}
.pact > span{
  flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;
}
.pact .ctas{margin-left:auto}
.pact .ctas .cta{margin-left:0}
@media (max-width:760px){
  .pact .ctas{width:100%;margin-left:0;justify-content:stretch}
  .pact .ctas .cta,.pact .ctas .cta2{flex:1 1 0;justify-content:center;text-align:center}
}

/* ── 시안이 이미 대신하는 것을 끕다 (2026-08-20 CTO 지시) ─────
      둘 다 alert_new.asp 가 만든다. include 는 그대로 둔다 —
      script.asp 가 이 안의 이름을 잡고 있어 통째로 빼면 다른 것이 같이 죽는다

      .product-notification-area  프로모션 배너 3장(렌트카·공항셔틀·소노포리체)
        → 시안 배너(CCP찬스 · 골프셔틀/렌터카)와 자리가 겹치고 내용도 겹쳤다
      .more-button-area           「맞춤 골프패키지 찾기」
        → 시안 가로 검색바가 이미 그 역할을 한다 */
.p3page .product-notification-area,
.p3page .more-button-area{display:none !important}

/* ── 상단 유틸 — 공지사항 · 예약조회 (2026-08-20) ──
   중앙 탭은 「무엇을 살까」, 상단 유틸은 「사기 전 알아볼 것 · 산 뒤 확인할 것」이다.
   성격이 달라 섞지 않는다 */
.uhead .unav{gap:16px}
.uhead .unav .sep{
  width:1px;height:14px;background:#cfd8e3;flex:0 0 auto;display:block;margin:0 -3px;
}
.uhead .unav a.lg{white-space:nowrap}
.uhead .unav a.lg:hover{background:var(--brand-soft)}

/* 모바일은 .unav 가 통째로 숨는다(983·2403행). 같은 줄을 본문 끝에 깐다 */
.ufoot{display:none}
@media (max-width:860px){
  .ufoot{
    display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 4px;
    padding:16px 66px 78px 14px;border-top:1px solid var(--line);background:var(--paper);
  }
  .ufoot a{font-size:13px;color:var(--ink-2);padding:7px 9px;white-space:nowrap}
  .ufoot a.lg{color:var(--brand);font-weight:600}
  /* 줄이 감기면 구분선이 끝에 걸려 어색하다. 모바일에서는 뗀다 */
  .ufoot i.sep{display:none}
}

/* ── 목록 위 호텔 칩 줄을 없앤다 (2026-08-20 신대표 지적 · 51_버그대장 B-95) ──
   sort.asp 가 만드는 13개인데, 시안 상단 검색바의 「호텔」 칸과 같은 축이다.
   원본은 좌측 사이드바를 열지 않고 호텔만 빨리 바꾸라고 둔 보조였다.
   시안이 사이드바를 가로 검색바로 바꾸면서 그 역할이 위로 올라갔다.

   원본 sort.asp 는 건드리지 않는다. 되돌릴 땐 이 규칙만 지운다.
   위 혜택 칩 줄(조식포함·왕복셔틀·렌터카·주간항공·야간항공)은 상단에 없는 축이라 남긴다 */
.p3page #sortHotelMenu{display:none}

/* ── 로고를 누르면 홈으로 (2026-08-20) ── */
.uhead a.home{display:flex;align-items:center;flex:0 0 auto;line-height:0}
.uhead a.home:hover{opacity:.82}

/* ── 빈 화면에 로고를 아주 연하게 깐다 (2026-08-20 CTO 지시) ──
   통화에서 투명도 20% 얘기가 나왔는데 그건 글자를 방해한다.
   워터마크는 4~5% 다. 있는 줄 모르게 있어야 한다.
   RGBA 투명 로고를 쓴다 — guamez_golf_logo.png 는 RGB 라 흰 네모가 보인다 */
body{position:relative}
.gzmark{
  position:fixed;right:-70px;bottom:-34px;width:640px;height:119px;
  background:url(/images/guamez_golf_logo_side.png) no-repeat center/contain;
  opacity:.05;pointer-events:none;z-index:0;
}
.hlist,.nlist,.glist{position:relative;z-index:1}
@media (max-width:760px){
  .gzmark{width:400px;height:74px;right:-50px;bottom:-24px;opacity:.045}
}

/* ═══ 1단계 호텔 카드 (2026-08-20) ═══
   위쪽 골프장 카드와 같은 사진 카드라 한 목록으로 읽힐 수 있다. 모양을 갈랐다 —
   골프장은 사진 위에 이름을 얹는 「둘러보기」, 호텔은 사진 아래 흰 칸에 값이 붙는 「고르는 것」 */
.hcards{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:4px 0 26px;
}
.hcard{
  display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;
  background:var(--paper);border:1px solid var(--line);border-radius:14px;cursor:pointer;
  font-family:inherit;transition:transform .16s cubic-bezier(.32,.72,0,1),box-shadow .16s,border-color .16s;
}
.hcard:hover{
  transform:translateY(-3px);border-color:var(--brand);
  box-shadow:0 6px 16px rgba(16,24,40,.08),0 18px 36px rgba(16,24,40,.09);
}
.hcard .ph{display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--line)}
.hcard .ph img{width:100%;height:100%;object-fit:cover;display:block}
.hcard .tx{display:flex;flex-direction:column;padding:13px 14px 12px;flex:1 1 auto}
.hcard .tx b{
  font-size:14.5px;font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.hcard .cs{
  margin-top:5px;font-size:12px;color:var(--ink-3);line-height:1.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.hcard .pr{margin-top:9px;font-size:12.5px;color:var(--ink-2);font-weight:500}
.hcard .pr i{font-style:normal;font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.03em}
.hcard .go{
  margin-top:auto;padding-top:11px;font-size:12.5px;font-weight:600;color:var(--brand);
  display:flex;align-items:center;gap:5px;
}
.hcard .go::after{
  content:"";width:5px;height:5px;border-right:1.7px solid currentColor;
  border-top:1.7px solid currentColor;transform:rotate(45deg);
}

/* 2단계에서 돌아오는 줄 */
.hback{display:flex;align-items:center;gap:12px;margin:2px 0 18px}
.hback .bk{
  display:inline-flex;align-items:center;gap:7px;padding:8px 15px;font-family:inherit;
  font-size:13px;font-weight:600;color:var(--ink-2);background:var(--paper);
  border:1px solid var(--line);border-radius:30px;cursor:pointer;transition:all .14s;
}
.hback .bk::before{
  content:"";width:6px;height:6px;border-left:1.8px solid currentColor;
  border-bottom:1.8px solid currentColor;transform:rotate(45deg);
}
.hback .bk:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.hback .cur{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.02em}

@media (max-width:1100px){ .hcards{grid-template-columns:repeat(3,1fr);gap:13px} }
@media (max-width:760px){
  .hcards{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
  .hcard .tx{padding:11px 12px 10px}
  .hcard .tx b{font-size:13.5px}
  .hcard .pr i{font-size:15.5px}
  .hcard .go{padding-top:9px;font-size:12px}
  .hback{margin-bottom:14px}
  .hback .cur{font-size:14px}
}

/* ═══ 골프장 카드 확대 + 추천 조합 배너 (2026-08-20 신대표 요구) ═══
   「사진을 좀 더 키우고 싶다. 너무 작아 보이니까」 — 118px 은 주력 상품의 위계가 아니다.
   목록이 호텔 카드 12장으로 줄어 자리가 생겼다.
   6번째는 골프장이 아니라 상품이다. 사진 없이 브랜드색으로 깔아 성격을 갈랐다 */
/* 다섯 곳을 한 줄에 — 나란히 놓아야 코스 성격이 비교된다 */
.p3page .courserow{grid-template-columns:repeat(5,1fr);gap:12px}
.p3page .ccard img{height:206px}
.p3page .ccard .nm b{font-size:16.5px}
.p3page .ccard .nm span{font-size:11.5px}
.p3page .ccard .bd{font-size:11px;padding:3px 9px;top:10px;left:10px}

.ccard.cpick{
  display:flex;flex-direction:column;justify-content:flex-end;min-height:206px;
  padding:14px 14px 13px;color:#fff;text-align:left;
  background:linear-gradient(155deg,var(--brand) 0%,#0a4f9e 62%,#08356b 100%);
}
.p3page .ccard.cpick .lb{
  position:absolute;top:10px;left:10px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.34);color:#fff;font-size:10.5px;font-weight:700;
  border-radius:20px;padding:3px 9px;letter-spacing:.02em;
}
.p3page .ccard.cpick .nm{position:static;left:auto;right:auto;bottom:auto}
.ccard.cpick .nm b{font-size:16px;line-height:1.35;text-shadow:none}
.ccard.cpick .nm span{color:rgba(255,255,255,.82);font-size:11.5px;margin-top:4px;line-height:1.5}
.p3page .ccard.cpick .go{
  margin-top:11px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:5px;
  color:#fff;
}
.p3page .ccard.cpick .go::after{
  content:"";width:5px;height:5px;border-right:1.8px solid currentColor;
  border-top:1.8px solid currentColor;transform:rotate(45deg);
}
.p3page .ccard.cpick:hover{transform:translateY(-3px)}

@media (max-width:1100px){
  .p3page .courserow{grid-template-columns:repeat(3,1fr);gap:10px}
  .p3page .ccard img{height:168px}
  .p3page .ccard.cpick{min-height:168px}
}
@media (max-width:640px){
  .p3page .courserow{grid-template-columns:repeat(2,1fr);gap:8px}
  .p3page .ccard img{height:132px}
  .p3page .ccard.cpick{min-height:132px;padding:12px}
  .ccard .nm b,.p3page .ccard.cpick .nm b{font-size:14px}
  .p3page .ccard.cpick .nm span{display:none}
}

/* ═══ 상품 카드 위계 뒤집기 (2026-08-20 · GPT·Gemini 교차검증) ═══
   제목이 호텔명이면 안 된다. 이미 고른 호텔이라 카드마다 같은 말이 반복된다.
   상품을 가르는 것은 골프 조합이므로 그것을 제목 자리에 세운다.

   홀 수 배지는 **단색**이다. 위쪽 골프장 카드가 「사진 위 그라데이션 + 흰 글씨」라
   같은 문법을 쓰면 두 카드가 한 종류로 읽힌다. 밝은 하늘 사진에서 글씨가 묻히는 문제도 없다 */
.vcard .vholes{
  position:absolute;right:9px;top:9px;z-index:2;
  background:var(--ink);color:#fff;border-radius:8px;padding:5px 10px;
  font-size:15px;font-weight:800;letter-spacing:-.03em;line-height:1;
  font-variant-numeric:tabular-nums;box-shadow:0 2px 8px rgba(0,0,0,.22);
}
.vcard .vholes i{font-style:normal;font-size:10.5px;font-weight:700;margin-left:1px;opacity:.86}

.vcard .vname{
  font-size:15.5px;font-weight:800;letter-spacing:-.035em;line-height:1.36;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.vcard .vsub{
  margin-top:5px;font-size:12px;color:var(--ink-3);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* 예외를 알리는 칩 — 조식 불포함처럼 손님이 놓치면 안 되는 것 */
.vcard .vinc span.w{
  background:#FEF3E2;border:1px solid #F2D3A0;color:#8A5A11;font-weight:700;
}

@media (max-width:640px){
  .vcard .vholes{right:7px;top:7px;padding:4px 8px;font-size:13.5px}
  .vcard .vname{font-size:14px}
  .vcard .vsub{font-size:11.5px;-webkit-line-clamp:1}
}

/* ── 빠른 필터 줄을 뺀다 (2026-08-20 CTO 판단) ──
   조식포함이 90건 중 85건이라 눌러도 5건만 빠진다. 필터 노릇을 못 한다.
   항공은 실측(주간 49 / 야간 41)이 회의 발언과 어긋나 확인 전에는 손대지 않는다.
   셔틀·렌터카는 갈리지만 카드에 이미 칩으로 보인다.

   무엇보다 상단 검색바에 호텔·골프장·날짜·인원이 있다.
   아래에 또 거르는 줄을 두면 어디서 골라야 하는지 헷갈린다 — 호텔 칩 줄(B-95)과 같은 이유다.

   마크업은 남겼다. 되돌릴 땐 이 한 줄만 지운다 */
.p3page .hotelchips{display:none}

/* ── 망탈 배너 — 두 골프장 사진을 번갈아 (2026-08-20 CTO 지시) ──
   배너가 하나뿐이라 목록 롤링과 달리 산만하지 않다.
   「망길라오 + 탈로포포」라는 이름 그대로 두 곳을 보여준다 */
.p3page .ccard.cpick{overflow:hidden}
.p3page .cpick .sh{
  position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;
  animation:gzPick 8s ease-in-out infinite;
}
.p3page .cpick .sh.b{animation-delay:4s;opacity:0}
.p3page .cpick .vl{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(155deg,rgba(11,105,212,.90) 0%,rgba(10,79,158,.92) 58%,rgba(8,53,107,.95) 100%);
}
.p3page .cpick .lb,
.p3page .cpick .nm,
.p3page .cpick .go{position:relative;z-index:2}

@keyframes gzPick{
  0%   {opacity:1}
  45%  {opacity:1}
  50%  {opacity:0}
  95%  {opacity:0}
  100% {opacity:1}
}

@media (prefers-reduced-motion: reduce){
  .p3page .cpick .sh{animation:none}
  .p3page .cpick .sh.b{display:none}
}

/* ── 렌터카 탭 아이콘 — 승용차와 셔틀이 번갈아 (2026-08-20 CTO 지시) ──
   둘 다 팔기 때문에 하나만 두면 반쪽만 알린다.
   탭 하나뿐이라 목록 롤링처럼 산만하지 않다 */
.ic2{position:relative;display:inline-flex;flex:0 0 auto;line-height:0}
.ic2 svg{animation:gzIc 7s ease-in-out infinite}
.ic2 svg.b{position:absolute;left:0;top:0;animation-delay:3.5s;opacity:0}
@keyframes gzIc{
  0%,42%   {opacity:1}
  50%,92%  {opacity:0}
  100%     {opacity:1}
}
@media (prefers-reduced-motion: reduce){
  .ic2 svg{animation:none}
  .ic2 svg.b{display:none}
}

/* ── 중앙 탭 아이콘 — 마우스를 올렸을 때만 움직인다 (2026-08-20 CTO 지시) ──
   가만히 있을 때도 움직이면 화면이 산만해진다. 호버에서만 한 번 돈다.
   심볼(<use>)은 그림자 DOM 이라 안쪽에 CSS 가 안 걸려 이 넷만 인라인으로 폈다 */
/* 원래 23px 이던 것을 내가 20px 으로 줄이고 있었다. 30px 으로 올린다 (2026-08-20 CTO 지적) */
.itab .ia{width:30px;height:30px;overflow:visible}
/* 아이콘만 키우면 위계가 어긋난다. 글자도 같이 올린다 */
.itabs .itab{font-size:13.5px;gap:7px;padding:10px 22px 12px}
.itab svg{width:30px;height:30px}
@media (max-width:900px){
  .itab .ia,.itab svg{width:25px;height:25px}
  .itabs .itab{font-size:12.5px;padding:9px 14px 11px}
}
.itab .ia *{transition:none}

/* 골프 — 공이 굴러와 홀에 빠지고 깃발이 한 번 흔들린다 */
.itab .ia-golf .ball{opacity:0}
.itab:hover .ia-golf .ball{animation:gzBall 1.15s cubic-bezier(.35,0,.25,1) forwards}
.itab:hover .ia-golf .flag{animation:gzFlag .5s ease-out .85s}
@keyframes gzBall{
  0%   {opacity:1;transform:translateX(0)}
  62%  {opacity:1;transform:translateX(9.4px)}
  78%  {opacity:1;transform:translate(9.4px,.9px) scale(.86)}
  100% {opacity:0;transform:translate(9.4px,1.6px) scale(.5)}
}
@keyframes gzFlag{
  0%,100% {transform:scaleX(1)}
  45%     {transform:scaleX(.9)}
}

/* 골프백 — 클럽 셋이 차례로 살짝 솟는다 */
.itab:hover .ia-bag .c1{animation:gzClub .5s ease-out}
.itab:hover .ia-bag .c2{animation:gzClub .5s ease-out .08s}
.itab:hover .ia-bag .c3{animation:gzClub .5s ease-out .16s}
@keyframes gzClub{
  0%,100% {transform:translateY(0)}
  50%     {transform:translateY(-1.6px)}
}

/* 차량 — 살짝 앞으로 나갔다 온다 */
.itab:hover .ic2 svg{animation-play-state:paused}
.itab:hover .ia-car,.itab:hover .ia-van{transform:translateX(1.4px);transition:transform .32s cubic-bezier(.34,1.4,.5,1)}

/* 맞춤견적 — 손잡이가 제자리를 찾는다 */
.itab:hover .ia-doc .k1{animation:gzKnob .55s ease-out}
.itab:hover .ia-doc .k2{animation:gzKnob .55s ease-out .07s}
.itab:hover .ia-doc .k3{animation:gzKnob .55s ease-out .14s}
@keyframes gzKnob{
  0%   {transform:translateX(0)}
  45%  {transform:translateX(3.2px)}
  100% {transform:translateX(0)}
}

@media (prefers-reduced-motion: reduce){
  .itab:hover .ia *{animation:none !important;transform:none !important}
  .itab:hover .ia-car,.itab:hover .ia-van{transform:none}
}

/* ── 카카오 공식 로고 (2026-08-20 CTO 지시) ──
   직접 그린 말풍선은 손님이 카카오로 못 알아본다.
   브랜드 규정상 모양·색을 바꾸지 않는다. 크기만 맞춘다 */
.hero .meta .kk{width:18px;height:18px;object-fit:contain;flex:0 0 auto;border-radius:4px}

/* ── 호텔 고르는 줄 (2026-08-20) ──
   신대표 「클릭을 하면 그 호텔에 들어가 있는 상품이 또 한 번 보이는 거지」
   전체면 호텔마다 최저가 12장, 고르면 그 호텔 상품 전부 */
.hpickwrap{position:relative;padding:2px 0 14px}
.hpick{
  display:flex;gap:7px;flex-wrap:nowrap;overflow-x:auto;
  -ms-overflow-style:none;scrollbar-width:none;scroll-behavior:smooth;
}
/* 좌우 버튼이 필요할 만큼 길 때만 양옆을 비우고 가장자리를 흐린다 */
.hpickwrap.scroll .hpick{
  padding:0 40px;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%);
}
.hnav{
  display:none;position:absolute;top:calc(50% - 7px);transform:translateY(-50%);z-index:3;
  width:31px;height:31px;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid var(--line);background:#fff;color:var(--ink-2);
  box-shadow:0 2px 9px rgba(16,24,40,.10);transition:all .14s;
}
.hpickwrap.scroll .hnav{display:flex;align-items:center;justify-content:center}
.hnav svg{width:15px;height:15px}
.hnav.prev{left:0}
.hnav.next{right:0}
.hnav:hover{border-color:var(--ink-3);color:var(--ink);box-shadow:0 3px 12px rgba(16,24,40,.15)}
.hnav.off{opacity:.28;pointer-events:none;box-shadow:none}
.hpick::-webkit-scrollbar{display:none}
.hpick button{
  flex:0 0 auto;border:1px solid var(--line);background:var(--paper);border-radius:30px;
  padding:7px 14px;font-family:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);
  cursor:pointer;transition:all .14s;white-space:nowrap;
}
.hpick button i{font-style:normal;font-size:11px;color:var(--ink-3);margin-left:3px}
.hpick button:hover{border-color:var(--ink-3);color:var(--ink)}
.hpick button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.hpick button.on i{color:rgba(255,255,255,.75)}
@media (max-width:760px){
  /* 휴대폰은 손가락으로 민다. 버튼이 오히려 칸을 잡아먹는다 */
  .hpickwrap{padding-bottom:11px}
  .hpick{gap:6px}
  .hpickwrap.scroll .hpick{padding:0}
  .hpickwrap.scroll .hnav{display:none}
  .hpick button{padding:6px 12px;font-size:12px}
}

/* ── 출발일 → 돌아오는 날 (2026-08-20) ──
   CTO 「출발일 시작점을 잡으면 자동으로 투숙일에 따라서 도착일이 되게」
   손님은 출발일만 고르고, 돌아오는 날은 투숙일에서 우리가 센다 */
.hf.f-date .v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hf.f-date .v .dgo{
  font-style:normal;color:var(--ink-3);font-weight:400;
  margin:0 5px;font-size:.92em;
}
/* 머무는 동안은 옅게 이어 두고, 돌아오는 날만 테두리로 집는다 */
.cgrid button.mid{background:rgba(21,112,239,.09);border-radius:0;color:var(--ink)}
.cgrid button.back{
  background:rgba(21,112,239,.13);color:var(--brand);font-weight:700;
  box-shadow:inset 0 0 0 1.5px var(--brand);
}
.cgrid button.on.back{background:var(--brand);color:#fff;box-shadow:none}

/* ── 추천 조합 가로 배너 (2026-08-20) ──
   골프장 카드에서 떼어 냈다. 사진 두 장이 번갈아 뜨고, 글은 왼쪽에서 읽힌다.
   할인 배너처럼 보이지 않게 짙은 바다색으로 깔고 금색 한 점만 쓴다 */
.cband{
  position:relative;display:grid;grid-template-columns:212px 1fr auto;align-items:center;
  gap:22px;margin-top:14px;border-radius:16px;overflow:hidden;text-decoration:none;
  background:linear-gradient(105deg,#0b2a44 0%,#0f3a5c 46%,#12496f 100%);
  box-shadow:0 3px 16px rgba(11,42,68,.20);
  transition:transform .18s,box-shadow .18s;
}
.cband:hover{transform:translateY(-2px);box-shadow:0 7px 24px rgba(11,42,68,.30)}

.cband .ph{position:relative;display:block;height:112px;overflow:hidden}
.cband .ph .sh{
  position:absolute;inset:0;background-size:cover;background-position:center;
  animation:gzBand 9s ease-in-out infinite;
}
.cband .ph .sh.b{animation-delay:4.5s;opacity:0}
@keyframes gzBand{
  0%{opacity:1} 42%{opacity:1} 50%{opacity:0} 92%{opacity:0} 100%{opacity:1}
}
/* 사진에서 글자 쪽으로 자연스럽게 넘어가게 */
.cband .ph::after{
  content:'';position:absolute;inset:0;z-index:2;
  background:linear-gradient(90deg,rgba(11,42,68,.28) 0%,rgba(11,42,68,0) 42%,rgba(11,42,68,.92) 100%);
}

.cband .tx{display:block;padding:16px 0;min-width:0}
.cband .tx em{
  display:inline-block;font-style:normal;font-size:10.5px;font-weight:700;
  letter-spacing:.06em;color:#e8c37a;margin-bottom:6px;
}
.cband .tx b{
  display:block;font-size:19px;font-weight:800;letter-spacing:-.035em;color:#fff;line-height:1.3;
}
.cband .tx b i{font-style:normal;color:#e8c37a;margin:0 3px;font-weight:600}
.cband .tx > span{
  display:block;margin-top:5px;font-size:12.5px;line-height:1.55;color:rgba(255,255,255,.74);
}
.cband .go{
  display:inline-flex;align-items:center;gap:7px;margin-right:22px;white-space:nowrap;
  border:1px solid rgba(255,255,255,.34);border-radius:30px;
  padding:10px 19px;font-size:13px;font-weight:700;color:#fff;transition:all .16s;
}
.cband .go::after{
  content:'';width:6px;height:6px;border-top:1.7px solid currentColor;border-right:1.7px solid currentColor;
  transform:rotate(45deg);
}
.cband:hover .go{background:#fff;border-color:#fff;color:#0f3a5c}

@media (prefers-reduced-motion:reduce){
  .cband .ph .sh{animation:none}
  .cband .ph .sh.b{display:none}
}

@media (max-width:980px){
  .cband{grid-template-columns:150px 1fr;gap:16px}
  .cband .ph{height:100%;min-height:104px}
  .cband .tx > span{display:none}
  .cband .go{grid-column:2;justify-self:start;margin:0 0 15px;padding:8px 15px;font-size:12px}
  .cband .tx{padding:15px 0 6px}
}
@media (max-width:520px){
  .cband{grid-template-columns:1fr;gap:0}
  .cband .ph{height:112px;min-height:0}
  .cband .ph::after{
    background:linear-gradient(180deg,rgba(11,42,68,.20) 0%,rgba(11,42,68,.55) 62%,#0b2a44 100%);
  }
  .cband .tx{padding:0 16px}
  .cband .tx b{font-size:17px}
  .cband .go{grid-column:1;margin:11px 16px 15px}
}

/* ── 출발일 칸이 잘리지 않게 (2026-08-20) ──
   두 날짜가 한 칸에 들어가야 한다. 화살표를 얇게 눕히고 글자를 반 포인트 줄인다 */
.hsearch .hf.f-date .v{font-size:14.5px;letter-spacing:-.03em}
.hsearch .hf.f-date .v .dgo{margin:0 4px;font-size:.86em;color:var(--ink-3)}
@media (max-width:1080px){
  .hsearch .hf.f-date .v{font-size:13.5px}
}

/* ── 사진 위 글자가 어떤 사진에서도 읽히게 (2026-08-20) ──
   CTO 「글자 너무 안 보이는데?」 — 하늘이 밝은 호텔 사진에서 흰 글자가 사라졌다 */
.p3page .vcard .g{
  background:linear-gradient(180deg,
    rgba(2,12,22,.44) 0%,
    rgba(2,12,22,.08) 17%,
    rgba(2,12,22,.36) 40%,
    rgba(2,12,22,.76) 57%,
    rgba(2,12,22,.91) 73%,
    rgba(2,12,22,.96) 100%);
}
/* 그림자를 둘로 겹친다 — 가까이 진하게, 멀리 넓게 */
.p3page .vcourse,
.p3page .vname,
.p3page .vmeta,
.p3page .vprice .now,
.p3page .vprice .won,
.p3page .vprice .was{
  text-shadow:0 1px 2px rgba(0,4,10,.62), 0 2px 16px rgba(0,4,10,.58);
}
/* 호텔 이름은 한 급 낮은 자리지만 회색이 되면 안 읽힌다 */
.p3page .vname{opacity:1;color:rgba(255,255,255,.94)}
.p3page .vmeta{color:rgba(255,255,255,.86)}

/* 마우스를 올리면 흰 판이 뜬다. 거기서는 그림자를 걷는다 */
.p3page .vcard:hover .vcourse,
.p3page .vcard:hover .vname,
.p3page .vcard:hover .vmeta,
.p3page .vcard:hover .vprice .now,
.p3page .vcard:hover .vprice .won,
.p3page .vcard:hover .vprice .was{text-shadow:none}
.p3page .vcard:hover .vname{color:var(--ink-2)}
.p3page .vcard:hover .vmeta{color:var(--ink-3)}

/* 손가락 화면은 호버가 없어 늘 사진 위다. 판을 조금 더 눌러 둔다 */
@media (hover:none) and (min-width:761px){
  .p3page .vcard .g{
    background:linear-gradient(180deg,
      rgba(2,12,22,.46) 0%,
      rgba(2,12,22,.10) 17%,
      rgba(2,12,22,.42) 40%,
      rgba(2,12,22,.82) 57%,
      rgba(2,12,22,.94) 73%,
      rgba(2,12,22,.97) 100%);
  }
}

/* =========================================================
   괌이지 메인 > 골프장 섹션 : GPT 수정안
   적용 방법: 기존 CSS를 건드리지 말고 "파일 맨 마지막"에 추가
   목적: 기존 .ccard/.on/.cband 구조와 JS 동작은 유지하면서 디자인만 교체
   ========================================================= */

/* 1) 섹션 헤더 — 카드가 아래 상품의 필터라는 점을 문장으로 명확하게 */
.p3page .coursehead p{
  max-width:680px;
}

/* 2) 골프장 5개 — 이미지 위 텍스트를 걷고, 사진 + 정보 영역으로 분리 */
.p3page .courserow{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  overflow:visible;
  margin:0;
  padding:0;
}

.p3page .ccard{
  position:relative;
  display:block;
  min-width:0;
  overflow:hidden;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--ink);
  text-decoration:none;
  box-shadow:none;
  outline:0;
  transform:none;
  transition:border-color .16s ease, background-color .16s ease;
}

.p3page .ccard:hover{
  border-color:#c8d2df;
  box-shadow:none;
  transform:none;
}

.p3page .ccard:focus-visible{
  outline:3px solid rgba(21,112,239,.20);
  outline-offset:2px;
}

.p3page .ccard img{
  display:block;
  width:100%;
  height:144px;
  object-fit:cover;
  transform:none;
  transition:none;
}

.p3page .ccard:hover img{
  transform:none;
}

/* 기존 이미지 그라데이션 제거 */
.p3page .ccard .g{
  display:none;
}

/* 코스 성격 태그는 '선택 상태'가 아니라 정보 태그로만 사용 */
.p3page .ccard .bd,
.p3page .ccard.on .bd{
  position:absolute;
  z-index:3;
  top:10px;
  left:10px;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  box-sizing:border-box;
  padding:3px 9px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#334155;
  font-size:11px;
  line-height:1;
  font-weight:700;
}

/* 이름/설명은 이미지 밖으로 내려 가독성과 '소개' 역할을 강화 */
.p3page .ccard .nm{
  position:static;
  display:block;
  min-height:68px;
  box-sizing:border-box;
  padding:10px 11px 11px;
  background:#fff;
  color:var(--ink);
}

.p3page .ccard .nm b{
  display:block;
  margin:0;
  color:#1e293b;
  font-size:16px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:-.03em;
  text-shadow:none;
}

.p3page .ccard .nm span{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:12px;
  line-height:1.4;
}

/* 선택 상태 — '파란 테두리 + 마름모' 대신 테두리 + 체크 한 개 */
.p3page .ccard.on{
  border:2px solid var(--brand);
  outline:0;
  background:#fff;
}

.p3page .ccard.on::after{
  content:"✓";
  position:absolute;
  z-index:4;
  top:10px;
  right:10px;
  bottom:auto;
  left:auto;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  box-sizing:border-box;
  border-radius:50%;
  background:var(--brand);
  color:#fff;
  font-size:13px;
  line-height:1;
  font-weight:800;
  transform:none;
}

/* tropical tone에서도 선택 의미는 브랜드 블루로 통일 */
body[data-tone="tropical"].p3page .ccard.on{
  border-color:var(--brand);
}
body[data-tone="tropical"].p3page .ccard.on::after{
  background:var(--brand);
}

/* 3) 추천 조합 — 위치는 유지하고 '큰 광고 배너' 느낌만 제거 */
.p3page .cband{
  position:relative;
  display:grid;
  grid-template-columns:140px minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  min-height:86px;
  box-sizing:border-box;
  margin-top:14px;
  padding:0 16px 0 0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fafc;
  text-decoration:none;
  box-shadow:none;
  transform:none;
  transition:border-color .16s ease, background-color .16s ease;
}

.p3page .cband:hover{
  border-color:#c8d2df;
  background:#fff;
  box-shadow:none;
  transform:none;
}

/* 두 골프장 이미지를 번갈아 보여주지 않고 동시에 보여서 '조합' 의미를 즉시 전달 */
.p3page .cband .ph{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
  height:86px;
  min-height:0;
  overflow:hidden;
}

.p3page .cband .ph .sh,
.p3page .cband .ph .sh.b{
  position:static;
  display:block;
  inset:auto;
  width:100%;
  height:100%;
  background-size:cover;
  background-position:center;
  animation:none !important;
  opacity:1 !important;
}

.p3page .cband .ph::after{
  display:none;
}

.p3page .cband .tx{
  display:block;
  min-width:0;
  padding:12px 0;
}

.p3page .cband .tx em{
  display:block;
  margin:0 0 4px;
  color:var(--brand);
  font-size:11px;
  line-height:1.3;
  font-style:normal;
  font-weight:800;
  letter-spacing:0;
}

.p3page .cband .tx b{
  display:block;
  color:#1e293b;
  font-size:17px;
  line-height:1.3;
  font-weight:800;
  letter-spacing:-.03em;
}

.p3page .cband .tx b i{
  margin:0 3px;
  color:var(--brand);
  font-style:normal;
  font-weight:700;
}

.p3page .cband .tx > span{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:12px;
  line-height:1.45;
}

.p3page .cband .go{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0;
  padding:9px 13px;
  white-space:nowrap;
  border:1px solid #cbd5e1;
  border-radius:8px;
  background:#fff;
  color:#334155;
  font-size:12px;
  line-height:1;
  font-weight:700;
  transition:border-color .16s ease, color .16s ease, background-color .16s ease;
}

.p3page .cband .go::after{
  content:"";
  width:6px;
  height:6px;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
  transform:rotate(45deg);
}

.p3page .cband:hover .go{
  border-color:var(--brand);
  background:#fff;
  color:var(--brand);
}

/* 추천 조합과 실제 상품 목록은 같은 덩어리로 붙어 보이지 않게 한 번 쉬어 줌 */
.p3page .cband + .sec{
  margin-top:32px;
}

/* 4) 태블릿 이하 — 5개 고정 코스이므로 3+2/2+2+1보다 가로 스와이프가 자연스러움 */
@media (max-width:900px){
  .p3page .courserow{
    display:flex;
    gap:10px;
    overflow-x:auto;
    overflow-y:hidden;
    margin:0 -14px;
    padding:0 14px 6px;
    scroll-snap-type:x mandatory;
    scroll-padding-left:14px;
    -webkit-overflow-scrolling:touch;
  }

  .p3page .courserow::-webkit-scrollbar{
    display:none;
  }

  .p3page .courserow .ccard{
    flex:0 0 220px;
    min-width:220px;
    scroll-snap-align:start;
  }

  .p3page .ccard img{
    height:140px;
  }

  .p3page .cband{
    grid-template-columns:112px minmax(0,1fr) auto;
    gap:14px;
  }
}

@media (max-width:640px){
  .p3page .coursehead p{
    max-width:none;
  }

  .p3page .courserow .ccard{
    flex-basis:210px;
    min-width:210px;
  }

  .p3page .ccard img{
    height:132px;
  }

  .p3page .ccard .nm{
    min-height:66px;
    padding:10px;
  }

  .p3page .ccard .nm b{
    font-size:15px;
  }

  .p3page .ccard .nm span{
    font-size:11px;
  }

  .p3page .cband{
    grid-template-columns:92px minmax(0,1fr);
    grid-template-rows:auto auto;
    gap:0 12px;
    min-height:104px;
    padding-right:12px;
  }

  .p3page .cband .ph{
    grid-row:1 / 3;
    width:92px;
    height:104px;
  }

  .p3page .cband .tx{
    grid-column:2;
    padding:12px 0 4px;
  }

  .p3page .cband .tx > span{
    display:none;
  }

  .p3page .cband .tx b{
    font-size:16px;
  }

  .p3page .cband .go{
    grid-column:2;
    grid-row:2;
    justify-self:start;
    margin:0 0 11px;
    padding:7px 10px;
    font-size:11px;
  }

  .p3page .cband + .sec{
    margin-top:26px;
  }
}

@media (prefers-reduced-motion:reduce){
  .p3page .ccard,
  .p3page .cband,
  .p3page .cband .go{
    transition:none;
  }
}

/* ══════════════════════════════════════════════════════════
   골프장 섹션 v3 (2026-08-21)
   지침  Codex\골프장섹션_최종안\20260821_골프장섹션_v3_Claude적용지침.md

   시안 클래스 다섯이 기존과 겹쳐(.tabs .cta .badge .more .wrap)
   전부 `gs-` 를 붙였다. CCP 상세에서 `.hero{height:352px}` 가
   새어 들어와 화면이 깨진 적이 있다 — 스코프만으로는 모자란다.
   ══════════════════════════════════════════════════════════ */

/* ── 머리 ── */
.p3page .gs-head p{max-width:640px}

/* ── 골프장 탭 다섯 ── */
.gs-tabs{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;
  margin:0 0 12px;
}
.gs-tab{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px 9px 9px;border:1px solid var(--line);border-radius:12px;
  background:#fff;cursor:pointer;text-align:left;
  transition:border-color .15s,background .15s,box-shadow .15s;
}
.gs-tab:hover{border-color:#b9d4f7}
.gs-tab.on{border-color:var(--brand);background:#f5f9ff;box-shadow:0 0 0 2px rgba(21,112,239,.10)}
.gs-tab:focus-visible{outline:3px solid rgba(21,112,239,.28);outline-offset:2px}
.gs-thumb{
  flex:none;width:44px;height:44px;border-radius:9px;
  background-size:cover;background-position:center;background-color:#dbe4ec;
}
.gs-tabtx{display:block;min-width:0}
.gs-tabtx b{
  display:block;font-size:14px;font-weight:700;letter-spacing:-.03em;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.gs-tabtx small{display:block;font-size:11.5px;color:var(--ink-3);margin-top:1px}
.gs-tab.on .gs-tabtx b{color:var(--brand)}

/* ── 대형 비주얼 — 지침 「PC 280~320px」 ── */
.gs-visual{
  position:relative;overflow:hidden;border-radius:16px;
  min-height:300px;display:flex;align-items:flex-end;
  background-size:cover;background-position:center 58%;background-color:#0d2033;
  transition:background-image .2s;
}
.gs-visual::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(6,20,34,.86) 0%,rgba(6,20,34,.62) 46%,rgba(6,20,34,.10) 100%);
}
.gs-count{
  position:absolute;z-index:2;top:20px;right:24px;
  font-size:13px;font-weight:700;color:rgba(255,255,255,.9);letter-spacing:.04em;
}
.gs-count span{color:rgba(255,255,255,.55);font-weight:600}
.gs-copy{position:relative;z-index:2;padding:26px 30px 28px;width:62%;min-width:0}
.gs-type{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.02em;
  padding:3px 10px;border-radius:20px;background:rgba(255,255,255,.18);color:#fff;
  border:1px solid rgba(255,255,255,.28);
}
.gs-copy h2{
  margin:9px 0 2px;font-size:36px;font-weight:800;letter-spacing:-.04em;color:#fff;line-height:1.14;
}
.gs-en{display:block;font-size:12.5px;color:rgba(255,255,255,.66);letter-spacing:-.01em}
.gs-pitch{margin:10px 0 0;font-size:15.5px;color:rgba(255,255,255,.92);letter-spacing:-.02em}
.gs-facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.gs-facts span{
  font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px;
  background:rgba(255,255,255,.14);color:rgba(255,255,255,.92);
}
.gs-cta{
  display:inline-flex;align-items:center;gap:7px;margin-top:14px;
  min-height:44px;padding:0 20px;border-radius:9px;
  background:var(--brand);color:#fff;font-size:14.5px;font-weight:700;letter-spacing:-.02em;
  transition:background .15s;
}
.gs-cta::after{
  content:"";width:6px;height:6px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);
}
.gs-cta:hover{background:#0f57bf;color:#fff}
.gs-cta:focus-visible{outline:3px solid rgba(21,112,239,.35);outline-offset:2px}

/* ── 추천 코스 ── */
.gs-combos{margin-top:26px}
.gs-combohead h3{margin:0 0 3px;font-size:20px;font-weight:800;letter-spacing:-.035em;color:var(--ink)}
.gs-combohead p{margin:0 0 13px;font-size:13.5px;color:var(--ink-3)}

.gs-comborail{position:relative;padding:6px 0 8px}
.gs-comborow{
  /* 한 화면에 셋이 딱 맞는다. gap 두 칸을 빼고 삼등분 (2026-08-21 CTO) */
  display:grid;grid-auto-flow:column;
  grid-auto-columns:calc((100% - 24px) / 3);
  gap:12px;overflow-x:auto;overflow-y:visible;
  /* 아래 22px 은 선택 포인터 자리다. overflow-x:auto 는 세로도 함께 잘라 낸다 */
  /* mandatory 는 스크롤 도중에도 강제로 끌어당겨 튀는 느낌을 준다 */
  scroll-snap-type:x proximity;padding:6px 0 24px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.gs-comborow::-webkit-scrollbar{display:none}

.gs-nav{
  display:none;position:absolute;top:calc(50% - 11px);transform:translateY(-50%);z-index:5;
  width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;
  color:var(--ink-2);cursor:pointer;box-shadow:0 2px 10px rgba(16,32,48,.12);
  align-items:center;justify-content:center;
}
.gs-comborail.scroll .gs-nav{display:flex}
.gs-nav svg{width:15px;height:15px}
.gs-nav.prev{left:-17px}
.gs-nav.next{right:-17px}
.gs-nav.off{opacity:.3;pointer-events:none;box-shadow:none}
.gs-nav:hover{border-color:var(--brand);color:var(--brand)}
.gs-nav:focus-visible{outline:3px solid rgba(21,112,239,.28);outline-offset:2px}

.gs-combo{
  position:relative;scroll-snap-align:start;
  min-height:196px;padding:0;border:2px solid transparent;border-radius:14px;
  cursor:pointer;text-align:left;
  background-size:cover;background-position:center;background-color:#123;
  /* 배경이 테두리 밑까지 깔려 반투명 테두리에 사진이 비쳤다.
     padding-box 로 잘라 테두리 안쪽에서 끝나게 한다 (2026-08-21 CTO) */
  background-clip:padding-box;
  transition:border-color .16s,box-shadow .16s,transform .16s;
}
.gs-combo::before{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(180deg,rgba(6,20,34,.16) 0%,rgba(6,20,34,.52) 52%,rgba(6,20,34,.88) 100%);
}
.gs-combocopy{position:relative;z-index:2;display:block;padding:16px 17px 15px;margin-top:auto}
.gs-combo{display:flex;flex-direction:column;justify-content:flex-end}
.gs-badge{
  display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:-.01em;
  color:#ffd98a;margin-bottom:5px;
}
/* 앞의 넷은 골프장 조합, 뒤의 둘은 숙소. 배지 색으로 가른다 (2026-08-21) */
.gs-combo[data-group="stay"] .gs-badge{color:#9fd9ff}
.gs-combocopy b{
  display:block;font-size:18px;font-weight:800;letter-spacing:-.035em;color:#fff;line-height:1.25;
}
.gs-desc{display:block;margin-top:4px;font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.78)}
.gs-route{
  display:flex;align-items:center;gap:7px;margin-top:10px;
  font-size:12.5px;font-weight:700;color:#fff;
}
.gs-route i{
  display:inline-block;width:16px;height:1.5px;background:rgba(255,255,255,.6);position:relative;
}
.gs-route i::after{
  content:"";position:absolute;right:0;top:-2.5px;
  width:5px;height:5px;border-top:1.5px solid rgba(255,255,255,.6);
  border-right:1.5px solid rgba(255,255,255,.6);transform:rotate(45deg);
}
.gs-combo:hover{
  border-color:#9cc4f5;                 /* 반투명이면 사진이 비쳐 지저분했다 */
  box-shadow:0 6px 18px rgba(15,38,56,.14);
}
.gs-combo:focus-visible{outline:3px solid rgba(21,112,239,.32);outline-offset:2px}

/* 고른 것 — 테두리와, 카드 사진이 아래로 이어지는 포인터.
   지침 「색만으로 전달하지 않는다」 · 참고 추천코스_선택화살표_참고.png */
.gs-combo.is-selected{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(21,112,239,.13),0 12px 28px rgba(15,38,56,.16);
}
/* 삼각형이 카드 밖으로 나가므로 잘리면 안 된다 */
.gs-combo{overflow:visible}
.gs-combo::after{
  content:"";position:absolute;z-index:4;left:50%;top:100%;
  width:64px;transform:translateX(-50%);
  background-image:inherit;background-size:cover;background-position:center bottom;
  /* 카드 하단은 ::before 의 어두운 막이 덮고 있다. 이 막을 삼각형에도 똑같이 씌운다.
     안 그러면 사진만 그대로 나와 「화살표만 빼꼼 환하게」 보인다 (2026-08-21 CTO)
     inset 그림자는 clip-path 로 잘린 안쪽에만 그려져서 삼각형 모양을 지킨다 */
  box-shadow:inset 0 0 0 999px rgba(6,20,34,.90);
  clip-path:polygon(0 0,100% 0,50% 100%);
  /* 높이가 0 에서 자란다. 나타났다 사라지는 게 아니라 쭉 늘어난다 */
  height:0;pointer-events:none;
  transition:height .24s cubic-bezier(.34,.02,.2,1);
}
.gs-combo.is-selected::after{height:21px}

/* ── 결과 머리글 ── */
.gs-sum{margin:5px 0 0;font-size:13px;color:var(--ink-3);letter-spacing:-.02em}
.gs-sum a{color:var(--brand);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.gs-reset{
  display:none;min-height:44px;padding:0 15px;white-space:nowrap;
  border:1px solid var(--line);border-radius:9px;background:#fff;
  color:var(--ink-2);font-size:13px;font-weight:700;cursor:pointer;
  transition:border-color .15s,color .15s;
}
.sec.is-filtered .gs-reset{display:inline-flex;align-items:center}
.gs-reset:hover{border-color:var(--brand);color:var(--brand)}
.gs-reset:focus-visible{outline:3px solid rgba(21,112,239,.28);outline-offset:2px}

/* ── 좁은 화면 — 지침 「모바일은 현재 높이와 구성 유지」 ── */
@media(max-width:900px){
  .gs-tabs{grid-template-columns:repeat(3,1fr)}
  .gs-copy{width:78%;padding:22px 22px 24px}
  .gs-copy h2{font-size:30px}
}
@media(max-width:640px){
  .gs-tabs{
    display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }
  .gs-tabs::-webkit-scrollbar{display:none}
  .gs-tab{flex:0 0 auto}
  .gs-visual{min-height:340px}
  .gs-copy{width:100%;padding:20px 18px 22px}
  .gs-copy h2{font-size:26px}
  .gs-pitch{font-size:14px}
  .gs-count{top:16px;right:18px}
  .gs-comborow{grid-auto-columns:86%}
  .gs-combo{min-height:180px}
  .gs-combo.is-selected{transform:none}
  .gs-combo.is-selected::after{bottom:-14px}
  .gs-nav.prev{left:-4px}
  .gs-nav.next{right:-4px}
  .gs-reset{width:100%;margin-top:10px;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .gs-combo,.gs-tab,.gs-cta,.gs-nav,.gs-reset{transition:none}
  .gs-comborow{scroll-behavior:auto}
}

/* ── 레일 「호텔 안내」 옆으로 펴기 (2026-08-21 CTO)
   골프장은 다섯이라 아래에 펴 두었지만 호텔은 열둘이라 레일이 화면을 넘긴다.
   레일 폭은 150px 이고 .rail·.t3row 에 overflow 가 없어 밖으로 나갈 수 있다 ── */
/* 레일은 sticky 라 그 자체가 쌓임 맥락이다. z-index 를 주지 않으면 안쪽 플라이아웃이
   아무리 높아도 본문 배너(.hstack z:3) 밑으로 깔린다 — 실화면에서 확인 (2026-08-21) */
.rail{z-index:20}
.rail-fly{position:relative}
.rail-fly>a .arw{
  margin-left:auto;width:5px;height:5px;
  border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;
  transform:rotate(45deg);opacity:.5;
}
.rail-panel{
  position:absolute;z-index:60;left:100%;top:-10px;
  width:308px;padding:12px 12px 10px;
  background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 14px 34px rgba(15,38,56,.17);
  display:grid;grid-template-columns:1fr 1fr;gap:1px 4px;
  opacity:0;visibility:hidden;transform:translateX(-5px);
  transition:opacity .14s,transform .14s,visibility .14s;
  /* 열둘이라 세로로 길다. 화면 아래를 넘기면 그 안에서 스크롤한다 */
  max-height:calc(100vh - 140px);overflow-y:auto;
}
/* 레일 경계선과 패널 사이 틈에서 마우스가 빠지지 않게 다리를 놓는다 */
.rail-panel::before{content:"";position:absolute;left:-9px;top:0;width:9px;height:100%}
.rail-fly:hover .rail-panel,
.rail-fly:focus-within .rail-panel{opacity:1;visibility:visible;transform:none}
.rail-panel-h{
  grid-column:1 / -1;padding:0 6px 7px;margin-bottom:5px;
  border-bottom:1px solid var(--line);
  font-size:11.5px;font-weight:700;letter-spacing:-.02em;color:var(--ink-3);
}
.rail-panel a{
  display:block;padding:7px 8px;border-radius:7px;
  font-size:12.5px;font-weight:500;letter-spacing:-.03em;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rail-panel a:hover{background:var(--brand-soft);color:var(--brand)}
/* 골프장은 다섯이라 한 줄로 세운다 */
.rail-panel.one{width:196px;grid-template-columns:1fr}
/* 새로 연 곳 표시. .rail-sub 에 있던 것을 패널 안으로 옮겼다 */
.rail-panel a{position:relative}
.rail-panel .dot{
  position:absolute;right:9px;top:50%;transform:translateY(-50%);
  width:5px;height:5px;border-radius:50%;background:var(--sale);
}
.rail-panel a.all{
  grid-column:1 / -1;margin-top:5px;padding-top:9px;
  border-top:1px solid var(--line);border-radius:0;
  font-weight:700;color:var(--brand);
}
.rail-panel a.all:hover{background:transparent;text-decoration:underline;text-underline-offset:3px}

/* 좁은 화면에는 레일 자체가 없다. 그래도 혹시 뜨면 겹치지 않게 접어 둔다 */
@media(max-width:900px){
  .rail-panel{display:none}
}
@media (prefers-reduced-motion:reduce){
  .rail-panel{transition:none}
}

/* ── 필터 결과 쪽 번호 (2026-08-21 CTO)
   전체 목록은 예전대로 「더 보기」다. 이 줄은 추천 코스로 걸렀을 때만 뜬다 ── */
.gs-pager{
  display:flex;align-items:center;justify-content:center;gap:6px;
  margin:22px 0 6px;
}
.gs-pager[hidden]{display:none}
.gs-pager .pg{
  min-width:38px;height:38px;padding:0 10px;
  border:1px solid var(--line);border-radius:9px;background:#fff;
  font-size:13.5px;font-weight:600;color:var(--ink-2);cursor:pointer;
  font-variant-numeric:tabular-nums;
  transition:border-color .14s,color .14s,background .14s;
}
.gs-pager .pg:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}
.gs-pager .pg:focus-visible{outline:3px solid rgba(21,112,239,.28);outline-offset:2px}
.gs-pager .pg.on{
  background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700;
}
.gs-pager .pg:disabled{opacity:.32;cursor:default}
/* 앞뒤 화살표는 글자 대신 꺾쇠로 그린다 */
.gs-pager .pg.nav{position:relative;min-width:38px;padding:0}
.gs-pager .pg.nav::before{
  content:"";position:absolute;left:50%;top:50%;
  width:6px;height:6px;margin:-3px 0 0 -2px;
  border-left:1.8px solid currentColor;border-bottom:1.8px solid currentColor;
  transform:rotate(45deg);
}
.gs-pager .pg.nav.nx::before{margin-left:-4px;transform:rotate(-135deg)}

@media(max-width:640px){
  .gs-pager{gap:4px;flex-wrap:wrap}
  .gs-pager .pg{min-width:34px;height:34px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .gs-pager .pg{transition:none}
}

/* ── 걸린 코스 이름을 제목에 (2026-08-21 CTO)
   카드 배지가 금색(#ffd98a)인데 흰 배경에서는 안 읽힌다.
   같은 계열의 진한 앰버로 받아 카드와 제목이 같은 말을 하게 한다.
   숙소 둘은 카드에서 하늘색 배지였으니 여기서도 파랑으로 ── */
.gs-title{transition:color .16s}
.gs-title.on{color:#b7791f}
.gs-title.on[data-group="stay"]{color:var(--brand)}

/* ── 결과 헤더를 세로로. 도구는 설명 아래 한 줄 (2026-08-21 지시서 5번) ── */
.sec.col{display:block}
.sec.col .gs-headline{min-width:0}
.sec.col h3{font-size:25px;letter-spacing:-.045em}
.sec.col .gzcond{margin-top:9px;font-size:14px;font-weight:600;color:#475d71}
.sec.col .gs-sum{margin-top:5px;font-size:14px;color:var(--ink-3)}
.gs-tools{
  display:flex;align-items:center;justify-content:flex-end;gap:9px;
  margin-top:17px;padding-top:12px;border-top:1px solid #e6edf3;
}
.gs-tools .srtslot{display:flex;align-items:center;gap:9px}
.sec.col .gs-reset{display:none}
.sec.col.is-filtered .gs-reset{display:inline-flex;align-items:center}
@media(max-width:640px){
  .sec.col h3{font-size:22px}
  .gs-tools{flex-wrap:wrap;justify-content:stretch}
  .gs-tools>*{flex:1 1 auto}
  .sec.col.is-filtered .gs-reset{width:100%;justify-content:center}
}

/* ══════════════════════════════════════════════════════════
   상품카드 — 할인 배지 · 홀 정보 · 클릭 확장 (2026-08-21)
   사진 위 오버레이 구조는 그대로 두고 셋만 얹는다.
   CTO 「거대한 리본은 쓰지 않음 / 검은 홀 수 배지는 제거 /
        홀 정보는 카드 정보 영역에 / 클릭했을 때만 사진 확장」
   ══════════════════════════════════════════════════════════ */

/* ── 할인 배지 — 사진 우측 상단. 리본이 아니라 사각형이다 ── */
.vdeal{
  position:absolute;z-index:5;top:11px;right:11px;
  padding:6px 9px;border-radius:8px;color:#fff;text-align:center;line-height:1.15;
  box-shadow:0 4px 12px rgba(7,26,39,.26);
}
.vdeal small{display:block;font-size:8.5px;font-weight:800;letter-spacing:.07em;opacity:.94}
.vdeal b{display:block;font-size:14px;font-weight:800;letter-spacing:-.02em}
.vdeal.normal{background:#f58220}
.vdeal.special{background:linear-gradient(135deg,#f4552f,#e0322c)}
.vdeal.best{background:linear-gradient(135deg,#ef3b34,#c8202a)}

/* ── 라운드 수와 총 홀 수를 한 줄에. 검은 알약을 쓰지 않는다 ── */
.vhole{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:5px;font-size:11.5px;color:rgba(255,255,255,.72);letter-spacing:-.02em;
}
.vhole b{font-size:12.5px;font-weight:800;color:#9fd2ff;letter-spacing:-.02em}

/* ── 카드 전체가 상품으로 가는 링크다 (2026-08-21 CTO)
   눌렀을 때 사진만 늘어나던 동작은 걷었다 ── */
.vcard{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}
.vcard:focus-visible{outline:3px solid rgba(21,112,239,.35);outline-offset:3px}
.vcard .g{transition:opacity .24s ease}
.vcard .vgo{cursor:pointer}

@media (prefers-reduced-motion:reduce){
  .vcard,.vcard img,.vcard .g{transition:none!important}
}

/* ── 호텔 고르는 줄 — 칩을 키우고 왼쪽 선을 맞춘다 (2026-08-21 CTO)
   좌우 화살표가 줄 안쪽에 있어 첫 칩이 왼쪽 선에서 밀려 있었다.
   화살표를 바깥으로 빼고 칩 자체도 키운다 ── */
.hpickwrap{padding-left:0}
.hpick{padding-left:0;scroll-padding-left:0}
.hpick .hchip,
.hpick button{
  min-height:42px;padding:0 16px;font-size:13.5px;letter-spacing:-.03em;
}
.hpick .hchip b,
.hpick button b{font-size:13.5px}
.hpick .hchip small,
.hpick button small{font-size:11.5px;margin-left:5px}
.hpickwrap .hnav{width:32px;height:32px}
.hpickwrap .hnav.prev{left:-16px}
.hpickwrap .hnav.next{right:-16px}

@media(max-width:900px){
  .hpickwrap .hnav{display:none}
  .hpick{padding-left:0}
}

/* ── 「총 36홀」이 흰 판 위에서 하늘색이라 안 읽혔다 (2026-08-21 CTO)
   #9fd2ff 는 사진 위(어두운 바탕)를 기준으로 잡은 색이다.
   카드 본문에 흰 판이 깔리는 세 경우 — 마우스 올림 · 터치 기기 · 좁은 화면 —
   에서 색을 뒤집는다. 사진 위 상태는 그대로 둔다 ── */
.vcard:hover .vhole{color:#5b6b7f}
.vcard:hover .vhole b{color:#0f56ab}
@media (hover:none){
  .vhole{color:#5b6b7f}
  .vhole b{color:#0f56ab}
}
@media (max-width:720px){
  .vhole{color:#5b6b7f}
  .vhole b{color:#0f56ab}
}

/* ── 날짜 칸 라벨을 각 날짜 위에 세운다 (2026-08-21 CTO 「출발일 도착일로 떠야지」)
   라벨과 값이 같은 격자를 쓴다. 가운데 20px 은 화살표 자리이고
   라벨 쪽에서는 빈칸이라 두 줄이 정확히 맞물린다 ── */
.hf.f-date > label > .dl{display:none}
.hf.f-date > label > .dl.a{display:block}
.hf.f-date.twin > label,
.hf.f-date.twin > .v{
  display:grid;grid-template-columns:1fr 20px 1fr;align-items:center;
}
.hf.f-date.twin > label > .dl{display:block;min-width:0}
.hf.f-date.twin > label > .dl.s{width:20px}
.hf.f-date.twin > .v > span{
  min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
/* 격자 칸 안에서는 화살표를 가운데 세운다. 좌우 여백은 격자가 준다 */
.hf.f-date.twin > .v > .dgo{margin:0;text-align:center}
.hsearch .hf.f-date.twin > .v > .dgo{margin:0}

/* ══ 맞춤상담 — 흰 카드로 (2026-08-21 CTO) ══
   연한 파란 박스가 목록 아래에서 또 하나의 덩어리로 보였다. 카드로 눕힌다.
   `body` 를 앞에 붙인 건 body[data-tone] 오버라이드와 특정도를 맞추기 위해서다 */
body .askbar.ask2{
  background:#fff;border:1px solid #E4EAF2;border-radius:16px;
  padding:22px 26px;gap:26px;box-shadow:0 2px 10px rgba(19,39,65,.04);
}
body .askbar.ask2 .tx b{font-size:19px;font-weight:800;letter-spacing:-.04em;color:#132741}
body .askbar.ask2 .tx span{
  margin-top:7px;font-size:14px;line-height:1.62;color:#4d6076;word-break:keep-all;
}
body .askbar.ask2 .bt{display:flex;gap:10px;flex:0 0 auto}
body .askbar.ask2 .bt a{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:0 20px;border:0;border-radius:10px;
  font-size:14px;font-weight:700;letter-spacing:-.02em;white-space:nowrap;
  transition:background .14s ease;
}
body .askbar.ask2 .bt .pri{background:var(--brand);color:#fff}
body .askbar.ask2 .bt .pri:hover{background:#0a5cbb}
body .askbar.ask2 .bt .pri svg{width:17px;height:17px}
/* 카카오 규정 색. 글자는 검정이라야 노란 바탕에서 읽힌다 */
body .askbar.ask2 .bt .kko{background:#FEE500;color:#191919}
body .askbar.ask2 .bt .kko:hover{background:#f5dd00}
body .askbar.ask2 .bt .kko img{width:19px;height:auto;display:block;flex:0 0 auto}

@media (max-width:720px){
  body .askbar.ask2{
    flex-direction:column;align-items:stretch;gap:16px;padding:19px 17px 20px;
  }
  body .askbar.ask2 .tx b{font-size:17px}
  body .askbar.ask2 .tx span{font-size:14px}
  /* 좁은 화면에서는 한 열 전체 폭. 두 개를 나란히 두면 글자가 접힌다 */
  body .askbar.ask2 .bt{display:grid;grid-template-columns:1fr;gap:9px}
  body .askbar.ask2 .bt a{width:100%;padding:0}
}

/* 검색으로 찾은 결과는 코스 황금색이 아니라 브랜드 파랑이다 (2026-08-21) */
.gs-title.on[data-group="custom"]{color:var(--brand)}

/* ══ 2026-08-21 회의 반영 ══ */

/* ⑥ 정렬 드롭다운을 감춘다 — 낮은가격순·최신순·제목순 (회의 14번).
   마크업은 그대로 둔다. script.asp 가 이 요소들을 직접 잡고 있어 지우면 그쪽이 깨진다 */
.gs-tools .srtslot{display:none}
.sec.col .gs-tools{justify-content:flex-start}
.sec.col:not(.is-filtered) .gs-tools{display:none}

/* ③ 호텔명을 부각한다 — 「호텔 이름은 당연히 나와야 되고」 신대표 */
.vcard .vname{font-size:17.5px;font-weight:800;letter-spacing:-.04em}
@media (max-width:720px){ .vcard .vname{font-size:15.5px} }

/* ③ 골프 정보를 호텔명과 같은 위계로 (2026-08-22 CTO)
   가격 줄 오른쪽에 작게 붙였더니 호텔명보다 아래로 읽혔다.
   「호텔과 골프 횟수 요 정도는 좀 부각이 돼서」 — 신대표 */
.vcard .vsub{
  font-size:14px;font-weight:700;line-height:1.45;letter-spacing:-.03em;
  color:rgba(255,255,255,.94);-webkit-line-clamp:2;
}
.vcard:hover .vsub{color:var(--ink-2);font-weight:600}
@media (hover:none){ .vcard .vsub{color:var(--ink-2);font-weight:600} }
@media (max-width:720px){ .vcard .vsub{font-size:13px;color:var(--ink-2);font-weight:600} }

/* 홀 수 줄은 가격 줄로 옮겼다 */
.vhole{display:none}

/* ══ 모바일 — 흰 판 위에 사진용 스타일이 남아 있었다 (2026-08-22) ══
   좁은 화면에서 카드가 가로형이 되면 본문이 흰 바탕이다.
   그런데 글자색·그림자·칩 배경이 사진 위 기준 그대로라
   흰 글자에 짙은 그림자만 남아 회색 박스처럼 보였다.
   오늘 넣은 `.vcard .vname` 이 기존 모바일 규칙을 특정도로 눌러 생긴 일이다 */
@media (max-width:720px){
  .vcard .vname{
    color:var(--ink);text-shadow:none;font-size:15.5px;font-weight:800;
    word-break:keep-all;
  }
  .vcard .vsub{
    color:var(--ink-2);text-shadow:none;font-size:12.5px;font-weight:600;
    word-break:keep-all;-webkit-line-clamp:2;
  }
  .vcard .vprice .now,
  .vcard .vprice .was,
  .vcard .vprice .won,
  .vcard .vprice .per{text-shadow:none}
  /* 포함사항 칩 — 어두운 칩이 흰 바탕에 그대로 앉아 있었다 */
  .vcard .vinc{gap:4px;margin-bottom:7px}
  .vcard .vinc span{
    background:#eef4f9;border-color:#dbe6ef;color:#3c5468;
    text-shadow:none;font-size:10.5px;
  }
  .vcard .vinc span.y{background:#e4f5ec;border-color:rgba(19,122,75,.20);color:#0f6b41}
  .vcard .vinc span.n{background:#f1f3f6;border-color:rgba(16,24,40,.10);color:#5b6572}
}

/* 한글은 어절 단위로 끊는다 — 「공항 픽업·렌 / 터카」로 잘렸다 */
.gs-tab .gs-tabtx b,
.gs-tab .gs-tabtx small,
.itabs a, .itabs button{word-break:keep-all}

/* ══ 모바일 — 할인 배지가 글자를 덮었다 (2026-08-22) ══
   데스크톱은 세로 카드라 오른쪽 위가 사진이다. 좁은 화면에서는 가로형이 되어
   그 자리가 본문이라 호텔명 끝 글자와 골프 줄을 가렸다.
   사진 쪽 왼쪽 아래로 옮긴다 — 왼쪽 위는 「3박 4일」 칩이 쓴다 */
@media (max-width:720px){
  .vcard .vdeal{
    top:auto;right:auto;left:7px;bottom:7px;
    padding:4px 7px;border-radius:6px;line-height:1.1;
    box-shadow:0 3px 9px rgba(7,26,39,.34);
  }
  .vcard .vdeal small{font-size:7.5px;letter-spacing:.04em}
  .vcard .vdeal b{font-size:12px}
  /* 「2라운드 36홀」이 두 줄로 갈리지 않게 */
  .vcard .vsub{overflow-wrap:normal}
}

/* ══ 모바일 — 겹치는 것을 걷어낸다 (2026-08-22) ══ */
@media (max-width:720px){
  /* 코스 롤링 화살표가 카드 글자를 덮었다. 손가락으로 미는 화면엔 필요 없다.
     호텔 고르는 줄은 이미 같은 이유로 감추고 있다 */
  .gs-comborail .gs-nav{display:none}
  .gs-comborail{padding-left:0;padding-right:0}

  /* 떠 있는 카카오 단추는 하단 고정바의 「카카오톡 상담」과 같은 곳으로 간다.
     한 화면에 둘일 이유가 없다.
     ── 하단 고정바가 있는 페이지에 한정한다 (2026-08-24 보정)
     이 규칙이 전역이라 .mfixed 가 없는 호텔·골프 상세까지 같이 걸렸다 */
  body:has(.mfixed) .gfloat .gf.kakao{display:none}
}

/* ══ 선택 포인터 — 카드 테두리를 삼각형까지 잇는다 (2026-08-22 CTO) ══
   카드는 고르면 2px 파란 테두리가 생기는데 아래 삼각형만 선이 없어 끊겨 보였다.
   clip-path 로 자른 도형에는 border 가 안 먹는다 — 클립이 테두리째 잘라낸다.
   drop-shadow 를 방향별로 겹치면 잘린 윤곽을 따라 선이 그려진다.
   위쪽은 카드에 맞닿아 카드 테두리와 겹치므로 좌우·아래만 준다 */
.gs-combo.is-selected::after{
  filter:
    drop-shadow( 2px 0 0 var(--brand))
    drop-shadow(-2px 0 0 var(--brand))
    drop-shadow(0 2px 0 var(--brand));
}

/* 골프 줄이 어절 중간에서 잘렸다 — 「2라운 / 드 36홀」 (2026-08-22).
   keep-all 을 모바일에만 넣었던 것을 전 화면으로 올린다 */
.vcard .vsub,
.vcard .vname{word-break:keep-all}

/* ══ 0 건 안내 (2026-08-22 CTO) ══
   종전에는 /hotelpack/view/modal.asp 가 스타일 없는 폼으로 통째 펼쳐졌다.
   안내 한 장으로 바꾸고 단추는 페이지 아래 맞춤상담으로 보낸다 */
#no-results-alert .alert-content{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:14px;max-width:520px;margin:34px auto 44px;padding:34px 26px 32px;
  border:1px solid #E4EAF2;border-radius:16px;background:#fff;
  box-shadow:0 2px 10px rgba(19,39,65,.04);
}
#no-results-alert .alert-icon{
  width:100%;max-width:300px;height:auto;border-radius:12px;display:block;
}
#no-results-alert .alert-tt{
  font-size:19px;font-weight:800;letter-spacing:-.04em;color:#132741;word-break:keep-all;
}
#no-results-alert .alert-tx{
  font-size:14px;line-height:1.62;color:#4d6076;word-break:keep-all;
}
#no-results-alert .alert-go{
  min-height:48px;padding:0 26px;border:0;border-radius:10px;
  background:var(--brand);color:#fff;font-size:14px;font-weight:700;
  letter-spacing:-.02em;cursor:pointer;transition:background .14s ease;
}
#no-results-alert .alert-go:hover{background:#0a5cbb}
@media (max-width:640px){
  #no-results-alert .alert-content{margin:24px 0 32px;padding:26px 18px 24px;gap:12px}
  #no-results-alert .alert-tt{font-size:17px}
}
