/* =========================================================================
   GRANSAND — 판교 기업 단체주문 랜딩페이지
   흰색/아이보리 베이스 · 딥그린 포인트 · 사진 중심 · 가독성 우선
   ========================================================================= */

:root{
  --bg:#faf9f5;
  --bg-soft:#f2f1ea;
  --card:#ffffff;
  --ink:#16211a;
  --ink-2:#3b4740;
  --muted:#6b766e;
  --line:#e4e4da;
  --line-strong:#d3d4c8;

  --green:#17492f;
  --green-deep:#0f3524;
  --green-soft:#eaf1ec;
  --green-line:#c9dbd0;

  --radius-s:12px;
  --radius:18px;
  --radius-l:26px;

  --shadow:0 1px 2px rgba(22,33,26,.04), 0 8px 24px rgba(22,33,26,.05);
  --shadow-lift:0 2px 4px rgba(22,33,26,.05), 0 14px 36px rgba(22,33,26,.09);

  --maxw:1140px;
  --pad:22px;
}

*,*::before,*::after{box-sizing:border-box}

/* hidden 속성이 항상 우선하도록 (설정값이 비어 있으면 요소를 확실히 숨김) */
[hidden]{display:none !important}

html{
  scroll-behavior:smooth;
  /* 헤더에 가려지지 않도록 앵커 이동 시 여백 확보 */
  scroll-padding-top:84px;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,
              "Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.65;
  word-break:keep-all;          /* 한글은 단어 단위로 줄바꿈 */
  overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul{padding:0;list-style:none}

:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:6px}

/* 화면에는 보이지 않지만 스크린리더에는 읽히는 텍스트 */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--green);color:#fff;padding:12px 18px;border-radius:0 0 10px 0;font-weight:700;
}
.skip-link:focus{left:0}

/* ── 타이포 ─────────────────────────────────────────────────────────── */
.eyebrow{
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green);margin-bottom:16px;
}
.section-title{
  font-size:clamp(26px,4.2vw,42px);line-height:1.25;letter-spacing:-.03em;
  font-weight:800;margin-bottom:12px;
}
.section-sub{color:var(--muted);font-size:clamp(15px,1.6vw,18px);max-width:660px;margin-bottom:36px}

/* ── 버튼 ───────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 26px;border-radius:var(--radius-s);
  font-size:16px;font-weight:700;line-height:1.2;
  border:1px solid var(--line-strong);background:var(--card);color:var(--ink);
  min-height:52px;cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease;
}
.btn:hover{border-color:var(--green);color:var(--green)}
.btn--primary{background:var(--green);border-color:var(--green);color:#fff}
.btn--primary:hover{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.btn--sm{padding:10px 18px;min-height:42px;font-size:14px;border-radius:999px}

.actions{display:flex;flex-wrap:wrap;gap:12px}

/* ── 헤더 ───────────────────────────────────────────────────────────── */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,249,245,.9);
  backdrop-filter:saturate(1.4) blur(12px);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.brand{display:flex;align-items:baseline;gap:9px;font-weight:800}
.brand__en{font-size:20px;letter-spacing:.09em}
.brand__ko{font-size:13px;color:var(--muted);font-weight:600}
.nav{display:flex;gap:26px;font-size:15px;color:var(--ink-2);font-weight:500}
.nav a:hover{color:var(--green)}

/* ── HERO ───────────────────────────────────────────────────────────── */
.hero{padding:clamp(48px,7vw,86px) 0 clamp(40px,5vw,64px)}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,56px);align-items:center}
.hero h1{
  font-size:clamp(34px,5.6vw,62px);line-height:1.14;letter-spacing:-.04em;
  font-weight:800;margin-bottom:22px;
}
.hero__lead{font-size:clamp(16px,1.9vw,20px);color:var(--ink-2);max-width:520px;margin-bottom:32px}
.hero__note{margin-top:20px;font-size:14px;color:var(--muted)}
.hero__meta{margin-top:8px;font-size:14px;font-weight:700;color:var(--green)}

/* ── 사진 · 이미지 파일이 없을 때 자동 대체(placeholder) ───────────── */
.ph{
  position:relative;overflow:hidden;
  border-radius:var(--radius-l);border:1px solid var(--line);
  background:linear-gradient(140deg,#e9efe9 0%,#dfe7e0 45%,#e7e2d6 100%);
  box-shadow:var(--shadow);
}
.ph::after{  /* 안내 문구 — 사진이 정상 로드되면 사진에 가려집니다 */
  content:attr(data-label);
  position:absolute;inset:0;z-index:0;
  display:flex;align-items:center;justify-content:center;text-align:center;
  white-space:pre-line;line-height:1.7;
  padding:24px;font-size:14px;font-weight:600;color:#5d7566;letter-spacing:.02em;
}
.ph img{
  position:relative;z-index:1;
  width:100%;height:100%;object-fit:cover;
  /* 배경을 두지 않아야, 아직 로드되지 않은 이미지 뒤로 안내 문구가 보입니다 */
  background:transparent;
}
.ph--hero{aspect-ratio:4/3}
.ph--tall{aspect-ratio:3/4}     /* 납품 사진 대부분이 세로 컷이라 3:4 기준 */
.ph--square{aspect-ratio:1/1}

/* ── 섹션 공통 ──────────────────────────────────────────────────────── */
.section{padding:clamp(52px,6.5vw,88px) 0}
.section--soft{background:var(--bg-soft)}

.grid{display:grid;gap:18px}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);
}

/* ── 갤러리 (실제 납품 사진) ───────────────────────────────────────── */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery figcaption{margin-top:10px;font-size:14px;color:var(--muted);font-weight:600}

/* ── 상황별 추천 ────────────────────────────────────────────────────── */
.scenario{display:flex;flex-direction:column}
.scenario__size{align-self:flex-start;
  display:inline-block;padding:6px 12px;border-radius:999px;
  background:var(--green-soft);border:1px solid var(--green-line);
  color:var(--green);font-size:13px;font-weight:800;margin-bottom:14px;
}
.scenario h3{font-size:20px;font-weight:800;margin-bottom:8px;letter-spacing:-.02em}
.scenario p{color:var(--muted);font-size:15px;margin-bottom:18px}
/* 카드 높이가 달라도 하단 정보가 나란히 정렬되도록 */
.scenario dl{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-size:14px}
.scenario dt{color:var(--muted);font-weight:600;font-size:13px}
.scenario dd{margin:2px 0 12px;color:var(--ink-2);font-weight:600}
.scenario dd:last-child{margin-bottom:0}

/* ── 제품 ───────────────────────────────────────────────────────────── */
.products{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start}
.product{
  display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);
  padding:22px;box-shadow:var(--shadow);
}
.product--featured{grid-column:1/-1;grid-template-columns:340px 1fr;padding:26px}
.product__tag{
  display:inline-block;padding:5px 11px;border-radius:999px;
  background:var(--green);color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em;margin-bottom:12px;
}
.product__name{font-size:clamp(22px,2.6vw,30px);font-weight:800;letter-spacing:-.025em}
.product__price{font-size:clamp(20px,2.4vw,26px);font-weight:800;color:var(--green);margin:6px 0 14px}
.product__price small{font-size:14px;font-weight:600;color:var(--muted);margin-left:6px}
/* 가격 숫자 없이 안내 문구만 있는 경우 왼쪽 여백 제거 */
.product__price small:first-child{margin-left:0}
/* 일반 제품이 하나뿐일 때 한 칸만 차지해 허전해 보이지 않도록 */
.product--solo{grid-column:1/-1;grid-template-columns:260px 1fr}
.product__summary{color:var(--muted);font-size:15px;margin-bottom:16px}
.product__items{display:flex;flex-wrap:wrap;gap:8px}
.product__items li{
  padding:7px 13px;border-radius:999px;background:var(--bg-soft);
  border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--ink-2);
}
.product__cta{margin-top:22px}
.product-note{margin-top:22px;font-size:15px;color:var(--muted)}

/* ── 주문 프로세스 ──────────────────────────────────────────────────── */
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.step__num{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;
  background:var(--green);color:#fff;font-size:14px;font-weight:800;margin-bottom:16px;
}
.step h3{font-size:17px;font-weight:800;margin-bottom:6px;letter-spacing:-.02em}
.step p{font-size:14px;color:var(--muted)}

/* ── 주문 사례 ──────────────────────────────────────────────────────── */
.case{
  background:var(--green);color:#fff;border-radius:var(--radius-l);padding:28px;
  display:flex;flex-direction:column;min-height:200px;
}
.case__label{font-size:12px;font-weight:700;letter-spacing:.12em;opacity:.7}
.case h3{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-top:6px}
.case__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.case__meta span{
  padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14);
  font-size:14px;font-weight:700;
}
.case p{margin-top:auto;padding-top:16px;font-size:14px;color:rgba(255,255,255,.82)}

/* ── 주문 가능 지역 ─────────────────────────────────────────────────── */
.areas{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.areas li{
  padding:12px 20px;border-radius:999px;background:var(--card);
  border:1px solid var(--green-line);color:var(--green);font-weight:700;font-size:16px;
}

/* ── 매장 정보 ──────────────────────────────────────────────────────── */
.store{max-width:640px;margin-top:26px;padding:26px 28px}
.store__title{font-size:17px;font-weight:800;letter-spacing:-.02em;margin-bottom:16px}
.store__list{font-size:15px}
.store__row{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:9px 0}
.store__row + .store__row{border-top:1px solid var(--line)}
.store__row dt{color:var(--muted);font-size:14px;font-weight:600}
.store__row dd{color:var(--ink-2);font-weight:600}
.store__sub{color:var(--muted);font-weight:500}
.store__notice{color:#a2402c}
.store__links{display:flex;flex-wrap:wrap;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.store__links a{color:var(--green);font-weight:700;font-size:14px;text-decoration:underline;text-underline-offset:3px}

/* ── FAQ ────────────────────────────────────────────────────────────── */
.faq{max-width:820px}
.faq details{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:0 22px;margin-bottom:10px;
}
.faq summary{
  cursor:pointer;list-style:none;font-weight:700;font-size:17px;
  padding:18px 34px 18px 0;position:relative;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:4px;top:50%;
  width:9px;height:9px;margin-top:-7px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:rotate(45deg);transition:transform .18s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq details p{padding:0 0 20px;color:var(--muted);font-size:15px}

/* ── 최종 CTA ───────────────────────────────────────────────────────── */
.final{
  background:var(--green);color:#fff;border-radius:var(--radius-l);
  padding:clamp(34px,5vw,64px);text-align:center;
}
.final .eyebrow{color:rgba(255,255,255,.65)}
.final h2{font-size:clamp(26px,4.2vw,44px);line-height:1.24;letter-spacing:-.03em;font-weight:800;margin-bottom:14px}
.final p{color:rgba(255,255,255,.82);font-size:clamp(15px,1.8vw,18px);max-width:560px;margin:0 auto 30px}
.final .actions{justify-content:center}
.final__note{margin-top:18px;font-size:14px;color:rgba(255,255,255,.72)}
.final .btn{background:#fff;border-color:#fff;color:var(--green)}
.final .btn:hover{background:var(--bg);border-color:var(--bg);color:var(--green-deep)}
.final .btn--ghost{background:transparent;border-color:rgba(255,255,255,.42);color:#fff}
.final .btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}

/* ── 푸터 ───────────────────────────────────────────────────────────── */
.site-footer{border-top:1px solid var(--line);padding:44px 0 40px;color:var(--muted);font-size:14px}
.site-footer .brand{margin-bottom:12px}
.site-footer p{margin-bottom:4px}
#footer-tagline{color:var(--ink-2);font-weight:600}
#footer-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}
#footer-links a{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.site-footer .footer__meta{margin-top:14px;font-size:13px;color:#8b958d}

/* ── 모바일 하단 고정 버튼 ──────────────────────────────────────────── */
.mobile-bar{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));
}
.mobile-bar .inner{display:flex;gap:10px;max-width:var(--maxw);margin:0 auto}
.mobile-bar .btn{flex:1;padding:14px 10px;font-size:15px;min-height:50px}

/* ── 토스트 (견적 링크 미설정 시 안내) ─────────────────────────────── */
.toast{
  position:fixed;left:50%;bottom:96px;transform:translate(-50%,12px);
  z-index:90;max-width:calc(100% - 40px);text-align:center;
  background:var(--ink);color:#fff;padding:13px 20px;border-radius:999px;
  font-size:14px;font-weight:600;box-shadow:var(--shadow-lift);
  opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;
}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}

/* ── 반응형 ─────────────────────────────────────────────────────────── */
@media (max-width:960px){
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .product--featured{grid-template-columns:260px 1fr}
}

@media (max-width:820px){
  html{scroll-padding-top:76px}
  .nav,.header-cta{display:none}
  .site-header .wrap{height:60px}

  .hero__grid{grid-template-columns:1fr;gap:28px}
  .hero .actions .btn{flex:1;min-width:150px}

  .gallery{grid-template-columns:1fr 1fr;gap:12px}

  .grid--3,.grid--4,.products{grid-template-columns:1fr}
  .product,.product--featured{grid-template-columns:1fr;padding:18px}

  .mobile-bar{display:block}
  /* 하단 고정 버튼이 본문 마지막을 가리지 않도록 여백 확보 */
  body{padding-bottom:82px}
}

@media (max-width:520px){
  /* 좁은 화면에서는 버튼 글자가 두 줄로 접히지 않도록 세로로 쌓음 */
  .hero .actions{flex-direction:column}
  .hero .actions .btn{width:100%}
  .final .actions{flex-direction:column;align-items:stretch}
}

@media (max-width:420px){
  /* 한 칸이 되면 세로 사진이 너무 길어지므로 정사각형으로 자름 */
  .gallery{grid-template-columns:1fr}
  .gallery .ph--tall{aspect-ratio:1/1}
  .areas li{font-size:15px;padding:10px 16px}
}

/* ── 접근성 · 인쇄 ──────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

@media print{
  .site-header,.mobile-bar,.toast{display:none !important}
  body{padding-bottom:0;background:#fff}
}
