:root {
  --green: #143d2b;
  --green-2: #24563e;
  --leaf: #6ea657;
  --cream: #f6f3eb;
  --paper: #fbfaf6;
  --ink: #172019;
  --muted: #697069;
  --line: rgba(20, 61, 43, .16);
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.section-shell { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }
.section-block { padding-top: 120px; padding-bottom: 120px; }
.site-header { height: 82px; padding: 0 max(24px, calc((100vw - var(--max))/2)); display: flex; align-items: center; gap: 28px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: rgba(251,250,246,.92); backdrop-filter: blur(12px); z-index: 30; }
.brand { display: inline-flex; align-items: center; gap: 11px; font-weight: 700; color: var(--green); letter-spacing: -.02em; }
.brand img { width: 50px; height: 50px; object-fit: contain; }
.nav { margin-left: auto; display: flex; gap: 30px; font-size: 14px; color: #435047; }
.nav a:hover, .text-link:hover, .contact-links a:hover { color: var(--green); }
.header-contact { margin-left: 10px; border: 1px solid var(--green); border-radius: 999px; padding: 9px 16px; font-size: 13px; color: var(--green); }
.hero { min-height: calc(100vh - 82px); display: grid; grid-template-columns: 1fr .9fr; align-items: center; gap: 80px; padding-top: 70px; padding-bottom: 70px; }
.eyebrow { margin: 0 0 16px; color: var(--green-2); font-size: 12px; font-weight: 700; letter-spacing: .17em; }
.hero h1, .section-heading h2, .about h2, .contact h2 { margin: 0; font-family: Georgia, "Times New Roman", "Noto Serif KR", serif; font-weight: 600; letter-spacing: -.045em; }
.hero h1 { font-size: clamp(48px, 6.1vw, 84px); line-height: 1.11; }
.hero-desc { max-width: 580px; margin: 26px 0 34px; font-size: 18px; color: #4f5a53; word-break: keep-all; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 21px; border-radius: 4px; font-weight: 650; font-size: 14px; }
.button.primary { background: var(--green); color: white; }
.button.secondary { border: 1px solid var(--line); background: white; color: var(--green); }
.hero-media { position: relative; height: min(72vh, 760px); min-height: 520px; overflow: hidden; background: #d8dfd8; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 44%; }
.hero-stamp { position: absolute; right: 18px; bottom: 18px; padding: 7px 11px; background: rgba(250,249,244,.88); font-size: 10px; letter-spacing: .16em; color: var(--green); }
.section-heading { margin-bottom: 44px; }
.section-heading h2, .about h2, .contact h2 { font-size: clamp(36px, 4.4vw, 58px); line-height: 1.2; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.service-grid article { padding: 28px 22px 14px 0; border-right: 1px solid var(--line); min-height: 235px; }
.service-grid article + article { padding-left: 22px; }
.service-grid article:last-child { border-right: 0; }
.service-grid span { color: var(--leaf); font-size: 12px; }
.service-grid h3 { margin: 54px 0 10px; font-size: 19px; }
.service-grid p { margin: 0; color: var(--muted); font-size: 14px; word-break: keep-all; }
.portfolio { background: var(--green); color: white; }
.portfolio .eyebrow { color: #a7c8ad; }
.row-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.text-link { font-size: 14px; color: #d8e3da; }
.video-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.video-card { background: #0c281c; overflow: hidden; }
.video-info { padding: 18px 18px 17px; border-top: 1px solid rgba(255,255,255,.08); }
.video-category { margin: 0 0 5px; color: #9fc0a5; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.video-info h3 { margin: 0; min-height: 54px; color: white; font-size: 17px; line-height: 1.55; font-weight: 650; word-break: keep-all; }
.video-direct { display: inline-block; margin-top: 11px; color: #d8e3da; font-size: 12px; }
.video-direct:hover { color: white; }
.video-wrap { position: relative; aspect-ratio: 16/9; }
.video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gallery { overflow: hidden; }
.photo-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 230px; gap: 14px; }
.photo-grid figure { margin: 0; overflow: hidden; background: #e3e6e0; grid-column: span 4; grid-row: span 2; }
.photo-grid figure.tall { grid-column: span 5; grid-row: span 3; }
.photo-grid figure.wide { grid-column: span 7; grid-row: span 3; }
.photo-grid img { width: 100%; height: 100%; object-fit: cover; }
.photo-grid figure:nth-child(2) img { object-position: 50% 42%; }
.photo-grid figure:nth-child(3) img { object-position: 50% 54%; }
.about { background: var(--cream); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: start; }
.about-copy { border-top: 1px solid var(--line); padding-top: 22px; }
.about-copy p { margin: 0 0 20px; font-size: 17px; color: #4d574f; word-break: keep-all; }
.contact-card { min-height: 520px; padding: 76px; background: #102f22; color: white; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.contact-card .eyebrow { color: #9fc0a5; }
.phone { margin-top: 34px; font-family: Georgia, serif; font-size: clamp(28px, 4vw, 48px); border-bottom: 1px solid rgba(255,255,255,.45); }
.contact-links { display: flex; gap: 24px; margin-top: 28px; color: #c9d8cd; font-size: 14px; }
.footer { min-height: 150px; display: grid; grid-template-columns: 1fr auto auto; gap: 30px; align-items: center; border-top: 1px solid var(--line); color: #677168; font-size: 12px; }
.footer-brand { display: flex; align-items: center; gap: 8px; color: var(--green); }
.footer-brand img { width: 38px; height: 38px; }
@media (max-width: 900px) {
  .site-header { height: 70px; }
  .brand img { width: 42px; height: 42px; }
  .brand span { display: none; }
  .nav { gap: 18px; }
  .nav a:nth-child(3) { display: none; }
  .header-contact { display: none; }
  .hero { grid-template-columns: 1fr; gap: 44px; min-height: auto; padding-top: 74px; padding-bottom: 76px; }
  .hero-media { height: 68vh; min-height: 500px; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .service-grid article:nth-child(2) { border-right: 0; }
  .service-grid article:nth-child(3), .service-grid article:nth-child(4) { border-top: 1px solid var(--line); }
  .video-grid { grid-template-columns: 1fr; }
  .about-grid { grid-template-columns: 1fr; gap: 44px; }
}
@media (max-width: 620px) {
  .section-shell { width: min(calc(100% - 30px), var(--max)); }
  .section-block { padding-top: 84px; padding-bottom: 84px; }
  .site-header { padding-inline: 15px; }
  .nav { font-size: 12px; gap: 13px; }
  .hero h1 { font-size: 47px; }
  .hero-desc { font-size: 16px; }
  .hero-media { height: 62vh; min-height: 440px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-grid article { border-right: 0; border-top: 1px solid var(--line); padding: 22px 0 28px !important; min-height: 0; }
  .service-grid article:first-child { border-top: 0; }
  .service-grid h3 { margin-top: 32px; }
  .row-heading { display: block; }
  .row-heading .text-link { display: inline-block; margin-top: 18px; }
  .photo-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 250px; }
  .photo-grid figure, .photo-grid figure.tall, .photo-grid figure.wide { grid-column: span 1; grid-row: span 1; }
  .photo-grid figure:first-child { grid-column: span 2; }
  .contact-card { min-height: 440px; padding: 44px 28px; }
  .footer { grid-template-columns: 1fr; gap: 6px; padding-top: 34px; padding-bottom: 34px; }
}
\n\n/* Instagram Reels */
.instagram-section {
  padding-top: clamp(72px, 8vw, 120px);
  padding-bottom: clamp(72px, 8vw, 120px);
}

.instagram-intro {
  margin: -10px 0 30px;
  color: #667068;
  font-size: 0.98rem;
}

.instagram-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 1120px;
  margin: 0 auto;
  align-items: start;
}

.instagram-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.instagram-embed-wrap {
  width: 100%;
  background: #fff;
  border: 1px solid rgba(21, 61, 44, 0.13);
  overflow: visible;
  padding: 10px;
  box-sizing: border-box;
}

.instagram-embed-wrap .instagram-media {
  margin: 0 auto !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 540px !important;
}

.instagram-direct {
  display: inline-block;
  color: #153d2c;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.92rem;
}

.instagram-direct:hover {
  text-decoration: underline;
}

@media (max-width: 980px) {
  .instagram-grid {
    grid-template-columns: 1fr;
    max-width: 560px;
  }
}
