/* GBLABSOL — cohesive warm editorial theme */
#exit-strategy .profit-goal-card {
  background: #315644 !important;
  border: 2px solid #a98242 !important;
  box-shadow: 0 8px 24px rgba(49,86,68,.16);
}
#exit-strategy .profit-goal-card .text-blue-300 { color: #f0d9a9 !important; }
#exit-strategy .profit-goal-card .text-slate-400 { color: #fffefa !important; }
#exit-strategy .profit-goal-message { color: #315644; font-size: 1.15em; line-height: 1.6; }
:root {
  --paper: #fbf9f4;
  --cream: #f4f1e8;
  --surface: #fffefa;
  --ink: #1b3022;
  --ink-soft: #45594b;
  --ink-muted: #5c6d5f;
  --pine: #315644;
  --pine-deep: #244432;
  --gold: #a98242;
  --gold-deep: #795b2d;
  --line: #e4ddd1;
  --line-gold: #dfcfad;
}

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { min-height: 100vh; background: var(--paper) !important; color: var(--ink); font-family: 'Pretendard Variable', Pretendard, 'Noto Sans KR', sans-serif; font-size: 19px; line-height: 1.8; word-break: keep-all; }
button, a { -webkit-tap-highlight-color: transparent; }
button { min-height: 48px; }
:focus-visible { outline: 3px solid #b38637; outline-offset: 3px; }
.site-content { position: relative; z-index: 1; min-height: 100vh; }
.site-backdrop {
  position: fixed; z-index: 0; inset: 0; display: block !important; pointer-events: none;
  background-image: linear-gradient(rgba(251,249,244,.9),rgba(251,249,244,.9)),url('../images/hero-layers/hero-background.jpg');
  background-size: cover,cover; background-position: center,center 54%; background-repeat: no-repeat;
}

/* Senior-friendly type scale: clear at a glance, with comfortable leading. */
.text-xs, [class~="text-[15px]"] { font-size: 16px !important; line-height: 1.6 !important; }
.text-sm { font-size: 18px !important; line-height: 1.7 !important; }
.text-base { font-size: 20px !important; line-height: 1.75 !important; }
.text-lg { font-size: 23px !important; line-height: 1.55 !important; }
.text-xl { font-size: 26px !important; line-height: 1.45 !important; }
.text-2xl { font-size: 32px !important; line-height: 1.35 !important; }
.text-3xl { font-size: clamp(2rem,3vw,2.8rem) !important; line-height: 1.28 !important; }
.text-4xl { font-size: clamp(2.35rem,4vw,3.5rem) !important; line-height: 1.2 !important; }
.text-5xl { font-size: clamp(2.75rem,5vw,4.2rem) !important; line-height: 1.14 !important; }
.text-6xl { font-size: clamp(3rem,6vw,5rem) !important; line-height: 1.1 !important; }
.text-7xl { font-size: clamp(3.3rem,7vw,5.8rem) !important; line-height: 1.06 !important; }
h1, h2, h3, h4 { text-wrap: pretty; font-kerning: normal; letter-spacing: -.025em; }

/* Trust strip and navigation */
.site-content > .bg-blue-950 { color: #4c5b4f !important; background: #eee8d9 !important; border-color: #e5dcc8 !important; }
.site-content > .bg-blue-950 .text-slate-300 { color: #4c5b4f !important; }
.site-content > .bg-blue-950 a { color: var(--pine) !important; }
.site-content > nav { position: sticky; top: 0; background: rgba(255,254,250,.97) !important; border-color: var(--line) !important; box-shadow: 0 8px 28px rgba(49,61,49,.07); }
.site-content > nav > div { min-height: 84px; }
.site-content > nav .text-white { color: var(--ink) !important; }
.site-content > nav .text-slate-400, .site-content > nav .text-slate-300 { color: #59685f !important; }
.site-content > nav .text-blue-400, .site-content > nav .hover\:text-blue-400:hover { color: var(--pine) !important; }
.site-content > nav .bg-slate-800, .site-content > nav .bg-slate-900 { background: #f4f1e8 !important; }
.site-content > nav [class*="border-slate"] { border-color: var(--line) !important; }
.site-content > nav a, .site-content > nav button { min-height: 52px; }
.site-content > nav #desktopMenu { transform: translateY(5px); }
.site-content > nav #desktopMenu .nav-link { display: inline-flex; align-items: center; min-height: 60px; }
.site-content > nav a[class*="bg-gradient-to-"], .site-content > nav button[data-coming-soon] { color: #fffefa !important; background: var(--pine) !important; box-shadow: none !important; }

/* Hero uses the landscape as its clear foreground image over the faint page-wide backdrop. */
.hero-section {
  position: relative; isolation: isolate; display: flex; align-items: center;
  min-height: min(760px,calc(100svh - 108px)); max-width: none !important;
  margin: 0 !important; padding: 0 !important; overflow: hidden;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  background: var(--paper) !important; text-align: left !important;
}
.hero-scene {
  position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; overflow: hidden; border-radius: 0;
  transform: translate3d(0,var(--hero-scroll-shift,0px),0);
  box-shadow: none; pointer-events: none;
}
.hero-section::after { content: ''; position: absolute; z-index: 1; inset: 0; background: rgba(251,249,244,.58); pointer-events: none; }
.hero-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; opacity: .58; filter: saturate(.72) brightness(1.08); animation: heroPhotoDrift 46s ease-in-out infinite alternate; }
.hero-content { position: relative; z-index: 2; width: min(1280px,100%); max-width: 1280px !important; margin: 0 auto !important; padding: clamp(4rem,7vw,6.5rem) 28px; text-align: center; }
.hero-content > .inline-flex { color: var(--pine) !important; background: #f2ecde !important; border: 1px solid var(--line-gold) !important; box-shadow: none !important; backdrop-filter: none !important; font-size: 17px !important; }
.hero-content h1 { max-width: 1000px; margin-left: auto; margin-right: auto; color: var(--ink) !important; font-size: clamp(2.7rem,5vw,4.65rem) !important; line-height: 1.2 !important; letter-spacing: -.045em; text-shadow: none !important; }
.hero-content h1 span { color: #946f32 !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
.hero-content > p { max-width: 900px; margin-left: auto !important; margin-right: auto !important; color: #43564a !important; font-size: clamp(1.15rem,1.6vw,1.35rem) !important; text-shadow: none !important; }
.hero-content > p strong { color: var(--ink) !important; text-decoration-color: var(--gold) !important; }
.hero-content > p.text-base { font-size: 19px !important; }
.hero-content > div.flex { justify-content: center; flex-wrap: wrap; max-width: 900px; margin-left: auto; margin-right: auto; }
.hero-content > div.flex span[class*="bg-slate-900"] { color: var(--pine) !important; background: rgba(255,254,250,.95) !important; border-color: var(--line) !important; backdrop-filter: none !important; }
.hero-content button[data-coming-soon="free"] { color: #fffefa !important; background: var(--pine) !important; box-shadow: 0 12px 28px rgba(42,75,52,.18) !important; }
.hero-content button[data-coming-soon="precise"] { color: var(--pine) !important; background: var(--surface) !important; border: 1.5px solid #cdbb94 !important; box-shadow: none !important; }
.hero-content .max-w-3xl, .hero-content .max-w-4xl { margin-left: auto !important; margin-right: auto !important; }
.hero-content > div.grid { width: min(900px,100%); max-width: 900px; margin: 2.5rem auto 0 !important; }
.hero-proof { display: flex; align-items: center; gap: 1rem; min-height: 94px; padding: 1.1rem 1.25rem; border: 1px solid #d7d0c2; border-radius: 1rem; background: rgba(255,254,250,.98); box-shadow: 0 12px 28px rgba(40,55,44,.09); }
.hero-proof-icon { display: grid; place-items: center; width: 3.1rem; height: 3.1rem; flex: 0 0 auto; border-radius: .85rem; color: #fff; background: var(--pine); border: 1px solid var(--pine); font-size: 1.08rem; font-weight: 900; }
.hero-proof strong, .hero-proof small { display: block; }
.hero-proof strong { color: var(--ink); font-size: 1rem; }
.hero-proof small { margin-top: .2rem; color: var(--ink-muted); font-size: .9rem; }
.hero-proof strong { color: var(--pine-deep); font-size: clamp(1.18rem,1.45vw,1.32rem); font-weight: 900; line-height: 1.35; letter-spacing: -.025em; }
.hero-proof small { margin-top: .35rem; color: #465b4c; font-size: clamp(1.02rem,1.2vw,1.1rem); font-weight: 650; line-height: 1.45; }
.hero-proof:nth-child(2) { border: 1.5px solid #c5ad7e; background: #f3eddf; box-shadow: 0 14px 32px rgba(92,72,39,.13); }
.hero-proof:nth-child(2) strong { color: #244432; }

/* Section rhythm, readable cards and action colors */
main > section { color: var(--ink); background: rgba(255,254,250,.78) !important; border-color: #e8e1d4 !important; backdrop-filter: none !important; }
main > section:not([aria-label="서비스 안내"]) { padding-top: 6.25rem !important; padding-bottom: 6.25rem !important; }
main > section:nth-of-type(even) { background: rgba(244,241,232,.74) !important; }
main > section h2, main > section h3, main > section .faq-item summary { color: var(--ink) !important; }
main > section h2 { font-size: clamp(2.15rem,4vw,3.35rem) !important; line-height: 1.28 !important; }
main > section p { line-height: 1.82; }
main > section .text-white, main > section .text-slate-100, main > section .text-slate-200,
main > section .text-slate-300, main > section .text-slate-400 { color: var(--ink-soft) !important; }
main > section .text-slate-500 { color: var(--ink-muted) !important; }
main > section .text-blue-300, main > section .text-blue-400, main > section .text-blue-500,
main > section .text-emerald-300, main > section .text-emerald-400,
main > section .text-amber-300, main > section .text-amber-400 { color: var(--gold-deep) !important; }
main > section .text-rose-300, main > section .text-rose-400 { color: #985e53 !important; }
/* Make the compared public purchase programs read as named options, not faint chips. */
#about .program-check-panel { background: #edf1e9 !important; border-color: #b8c8b5 !important; }
#about .program-check-title { color: var(--pine-deep) !important; font-weight: 800; }
#about .program-pill-list { gap: .55rem; margin-top: .65rem; }
#about .program-pill {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 40px; padding: .35rem .75rem; border: 1px solid var(--pine-deep);
  border-radius: .65rem; color: #fffefa !important; background: var(--pine) !important;
  font-size: 17px; font-weight: 800; line-height: 1.35; letter-spacing: 0;
  box-shadow: 0 3px 8px rgba(36,68,50,.12);
}
main > section [class*="bg-slate-950"], main > section [class*="bg-slate-900"], main > section [class*="bg-slate-800"] {
  color: var(--ink) !important; background: var(--surface) !important; border-color: var(--line) !important;
  box-shadow: 0 14px 40px rgba(61,67,51,.06); backdrop-filter: none !important;
}
main > section [class*="bg-blue-950"], main > section [class*="bg-amber-950"], main > section [class*="bg-rose-950"] { background: #f2ecde !important; }
main > section [class*="border-blue-"], main > section [class*="border-emerald-"], main > section [class*="border-amber-"] { border-color: var(--line-gold) !important; }
main > section [class*="from-slate-900"], main > section [class*="to-blue-950"], main > section [class*="to-indigo-950"] {
  color: var(--ink) !important; background-image: linear-gradient(120deg,#f5f1e7,#ebe4d4) !important; border-color: var(--line-gold) !important;
}
main > section a[class*="bg-gradient-to-"], main > section a[class*="bg-blue-600"],
main > section button[class*="bg-gradient-to-"], main > section button[class*="bg-blue-600"] {
  color: #fffefa !important; background: var(--pine) !important; border-color: var(--pine) !important;
  box-shadow: 0 10px 24px rgba(42,75,52,.16) !important;
}
main > section a[class*="bg-gradient-to-"]:hover, main > section a[class*="bg-blue-600"]:hover,
main > section button[class*="bg-gradient-to-"]:hover, main > section button[class*="bg-blue-600"]:hover { background: var(--pine-deep) !important; }
main > section [class*="rounded-2xl"], main > section [class*="rounded-3xl"] { border-radius: 1.4rem; }
main > section .text-center > span:first-child { letter-spacing: .045em; }

/* Pricing comparison: one warm palette, with restrained emphasis on the staffed review. */
#pricing .pricing-card {
  position: relative; overflow: visible; color: var(--ink) !important;
  background: var(--surface) !important; border-color: var(--line) !important;
  box-shadow: 0 16px 42px rgba(49,61,49,.08) !important;
}
#pricing .pricing-card--precise {
  background: linear-gradient(155deg,#f5f3e9 0%,#fffefa 58%) !important;
  border: 2px solid #9aab91 !important;
  box-shadow: 0 20px 48px rgba(49,86,68,.12) !important;
}
#pricing .pricing-card h3 { color: var(--ink) !important; }
#pricing .pricing-card > p { color: var(--ink-soft) !important; }
#pricing .pricing-step {
  color: var(--pine) !important; background: #edf1e9 !important;
  border: 1px solid #d9e1d4 !important; letter-spacing: 0;
}
#pricing .pricing-price { color: var(--pine) !important; }
#pricing .pricing-card--precise .pricing-price { color: var(--gold-deep) !important; }
#pricing .pricing-card ul { border-color: var(--line) !important; color: var(--ink-soft) !important; }
#pricing .pricing-card ul li span { color: var(--pine) !important; }
#pricing .pricing-card--precise ul li span { color: var(--gold-deep) !important; }
#pricing .pricing-recommend {
  top: -1rem; right: 1.5rem; padding: .45rem .9rem; border-radius: 999px;
  color: #fffefa !important; background: var(--pine) !important;
  box-shadow: 0 6px 16px rgba(49,86,68,.18) !important;
}
#pricing .pricing-action {
  color: #fffefa !important; background: var(--pine) !important;
  border: 1px solid var(--pine) !important; box-shadow: none !important;
}
#pricing .pricing-action:hover { background: var(--pine-deep) !important; }
#pricing .pricing-note { color: var(--ink-muted) !important; }
#pricing .pricing-note--balanced { max-width: 56rem; line-height: 1.75; }
#pricing .pricing-note--balanced span { display: block; }
#pricing .pricing-note--balanced span + span { margin-top: .2rem; }
#pricing .pricing-note--free { max-width: 58rem; margin-bottom: 1.5rem; }
#pricing .grade-card { min-height: 176px; }
#pricing .grade-card--a {
  background: linear-gradient(145deg,#315b45,#254633) !important;
  border-color: #315b45 !important; box-shadow: 0 16px 36px rgba(37,70,51,.2) !important;
}
#pricing .grade-card--a .grade-mark { color: #f0d9a9 !important; }
#pricing .grade-card--a .grade-subtitle { color: #fffefa !important; }
#pricing .grade-card--a .grade-description { color: #e6eee7 !important; }
#pricing .grade-card--b {
  background: #f2ead8 !important; border-color: #d9c69e !important;
  box-shadow: 0 12px 28px rgba(92,72,39,.07) !important;
}
#pricing .grade-card--b .grade-mark { color: #795b2d !important; }
#pricing .grade-card--b .grade-subtitle { color: #354b3d !important; }
#pricing .grade-card--b .grade-description { color: #5c6257 !important; }
#pricing .grade-card--c {
  background: #e5e9e4 !important; border-color: #cbd3ca !important;
  box-shadow: 0 8px 20px rgba(48,63,50,.045) !important;
}
#pricing .grade-card--c .grade-mark { color: #5a6b5e !important; }
#pricing .grade-card--c .grade-subtitle { color: #3f5245 !important; }
#pricing .grade-card--c .grade-description { color: #5d6b61 !important; }
#pricing .grade-intro { max-width: 58rem; }
#pricing .grade-intro h3 { color: var(--ink) !important; }
#pricing .grade-intro p { max-width: 52rem; margin-right: auto; margin-left: auto; color: var(--ink-soft) !important; }
#pricing .grade-card { min-height: 220px; }
#pricing .grade-card .grade-mark { display: inline-block; line-height: 1.15; }
.simple-step { display: flex; flex-direction: column; align-items: flex-start; min-height: 170px; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.25rem; color: var(--ink); background: var(--surface); }
.simple-step-number { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-bottom: 1rem; border-radius: 50%; color: #fffefa; background: var(--pine); font-size: 1.2rem; font-weight: 900; }
.partner-intro { line-height: 1.75 !important; }
.partner-intro > span, .partner-intro > strong { display: block; }
.partner-intro > strong { margin-top: .12rem; }
.sample-btn { white-space: normal; text-align: left; line-height: 1.5; overflow-wrap: anywhere; }
.faq-item { padding: 1.25rem 1.4rem; border: 1px solid var(--line); border-radius: 1.25rem; background: var(--surface); transition: border-color .25s, box-shadow .25s; }
.faq-item:hover, .faq-item[open] { border-color: #cdbb94; box-shadow: 0 12px 30px rgba(61,67,51,.06); }
.faq-item summary { position: relative; padding-right: 2.5rem; color: var(--ink); font-size: 1.2rem; font-weight: 800; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; position: absolute; right: 0; top: -.2rem; color: var(--gold-deep); font-size: 1.6rem; transition: transform .2s ease; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item p { margin: .85rem 0 0; padding-top: .85rem; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 1.05rem; line-height: 1.8; }
.law-detail summary { padding: .55rem 0; color: var(--pine); font-size: 18px; font-weight: 800; cursor: pointer; }

/* Chapter imagery: each photo belongs to its own section, never as page wallpaper. */
.story-image-band { position: relative; display: flex; align-items: flex-end; min-height: 430px; overflow: hidden; padding: clamp(1.5rem,5vw,3.5rem); border: 1px solid rgba(255,255,255,.5); border-radius: 2rem; background-size: cover; background-position: center 58%; box-shadow: 0 24px 60px rgba(41,54,43,.14); }
.story-image-band--farmland { background-image: linear-gradient(90deg,rgba(22,40,29,.8),rgba(22,40,29,.42) 58%,rgba(22,40,29,.08)),url('../images/hero-layers/Korean_farmland_landscape_20261005175251.jpg') !important; }
.story-image-band::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(0deg,rgba(18,31,23,.35),transparent 72%); pointer-events: none; }
.story-image-copy { position: relative; z-index: 1; max-width: 680px; text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.story-image-copy > span { color: #f3ddb0 !important; font-size: 1.1rem; font-weight: 800; letter-spacing: .03em; }
main > section .story-image-copy h3 { margin-top: .65rem; color: #fff !important; font-size: clamp(2.1rem,4.6vw,3.5rem); font-weight: 900; line-height: 1.25; }
main > section .story-image-copy p { margin-top: .9rem; color: #fff !important; font-size: clamp(1.05rem,2vw,1.3rem); line-height: 1.7; }
.visual-break {
  position: relative; isolation: isolate; display: flex; align-items: center;
  min-height: clamp(320px,34vw,430px); overflow: hidden;
  border: 1px solid rgba(255,255,255,.6); border-radius: 1.8rem;
  background: #52634f; box-shadow: 0 24px 58px rgba(41,54,43,.15);
}
.visual-break > img { position: absolute; z-index: -2; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.visual-break::before { content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.visual-break--land::before { background: linear-gradient(90deg,rgba(28,48,36,.78) 0%,rgba(35,56,41,.55) 44%,rgba(35,56,41,.08) 100%); }
.visual-break-copy { width: min(650px,72%); padding: clamp(2rem,5vw,4rem); text-shadow: 0 2px 18px rgba(15,28,20,.3); }
.visual-break-copy > span { color: #f0d9a9; font-size: 1.05rem; font-weight: 800; letter-spacing: .02em; }
main > section .visual-break-copy h3 { margin-top: .7rem; color: #fffefa !important; font-size: clamp(2rem,4vw,3.25rem); font-weight: 900; line-height: 1.25; }
main > section .visual-break-copy p { margin-top: .8rem; color: rgba(255,254,250,.94) !important; font-size: clamp(1.05rem,1.8vw,1.25rem); line-height: 1.7; }
.consulting-feature, .aerial-feature { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); align-items: stretch; overflow: hidden; border: 1px solid var(--line); border-radius: 2rem; background: var(--surface); box-shadow: 0 20px 55px rgba(71,58,35,.09); }
.consulting-feature-photo, .aerial-feature > img { min-height: 360px; overflow: hidden; }
.consulting-feature-photo img, .aerial-feature > img { display: block; width: 100%; height: 100%; min-height: 360px; object-fit: cover; object-position: center; transition: transform 1.2s cubic-bezier(.2,.7,.25,1); }
.consulting-feature-photo img { object-position: 72% center; }
.consulting-feature:hover img, .aerial-feature:hover > img { transform: scale(1.035); }
.consulting-feature-copy, .aerial-feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,5vw,4.5rem); }
.consulting-feature-copy > span, .aerial-feature-copy > span { color: var(--gold-deep); font-size: 1.05rem; font-weight: 800; letter-spacing: .02em; }
.consulting-feature-copy h3, .aerial-feature-copy h3 { margin-top: 1rem; color: var(--ink); font-size: clamp(2rem,3.5vw,3rem); font-weight: 800; line-height: 1.3; }
.consulting-feature-copy p, .aerial-feature-copy p { margin-top: 1rem; color: var(--ink-soft); font-size: 1.2rem; line-height: 1.8; }

/* A quiet diagnostic area with its own solid surface and readable form. */
#scan-section { position: relative; overflow: hidden; background: rgba(234,231,220,.88) !important; background-image: radial-gradient(ellipse at 86% 12%,rgba(197,155,78,.13),transparent 38%) !important; }
#scan-section h2 span { color: var(--gold-deep) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
#scan-section .text-white, #scan-section .text-slate-200, #scan-section .text-slate-300, #scan-section .text-slate-400, #scan-section .text-blue-300 { color: #34483b !important; }
#scan-section .text-center > span { color: var(--gold-deep) !important; background: rgba(255,254,250,.94) !important; border-color: var(--line-gold) !important; }
#scan-section > div > div[class*="rounded-3xl"] { background: var(--surface) !important; border-color: var(--line-gold) !important; box-shadow: 0 24px 65px rgba(58,67,48,.12); }
#scan-section label { color: var(--pine) !important; }
#scan-section input { min-height: 64px; color: var(--ink) !important; background: var(--surface) !important; border-color: #cfc8b8 !important; font-size: 20px !important; }
#scan-section input::placeholder { color: #78877b !important; }
#scan-section .sample-btn { color: var(--pine) !important; background: #f3f0e7 !important; border-color: #dcd3c1 !important; }
#scan-section .sample-address { color: var(--pine) !important; background: #f3f0e7 !important; border-color: #dcd3c1 !important; }
#scan-section .sample-btn span { color: var(--gold-deep) !important; background: #ebe3d2 !important; }
#scan-section #mainScanBtn { color: #fffefa !important; background: var(--pine) !important; border-color: var(--pine) !important; box-shadow: 0 12px 26px rgba(42,75,52,.2) !important; }
#scan-section #mainScanBtn:hover { background: var(--pine-deep) !important; }
.coming-soon-card { color: var(--ink); background: var(--surface); border: 1px solid var(--line-gold); box-shadow: 0 28px 90px rgba(18,32,23,.25); }
.coming-soon-card [data-close] { top: .75rem; right: .75rem; color: var(--ink-muted); background: var(--cream); }
.coming-soon-mark { display: grid; place-items: center; width: 4.25rem; height: 4.25rem; margin: 0 auto 1rem; border: 1px solid var(--line-gold); border-radius: 1.4rem; color: var(--gold-deep); background: #f3eddf; font-size: 2rem; }
.coming-soon-badge { display: inline-flex; margin-bottom: .6rem; padding: .3rem .8rem; border-radius: 999px; color: var(--pine); background: #edf1e9; font-size: 1rem; font-weight: 800; }
.coming-soon-title { margin: .25rem 1.5rem .65rem; color: var(--ink); font-size: clamp(1.55rem,5vw,2rem); font-weight: 900; line-height: 1.35; letter-spacing: -.03em; }
.coming-soon-message { color: var(--ink-soft); font-size: 1.08rem; line-height: 1.75; }
.coming-soon-confirm { width: 100%; margin-top: 1.5rem; padding: .85rem 1rem; border: 1px solid var(--pine); border-radius: .9rem; color: #fffefa; background: var(--pine); font-size: 1.08rem; font-weight: 850; }
.coming-soon-confirm:hover { background: var(--pine-deep); }
.site-content > div[class*="fixed bottom-0"] button[data-coming-soon] { color: #fffefa !important; background: var(--pine) !important; }
.site-content > nav .brand-mark { color: #fffefa !important; background: var(--pine) !important; box-shadow: none !important; }

/* Scroll motion stays subtle and respects reduced-motion settings. */
.scroll-progress { position: fixed; z-index: 100; top: 0; left: 0; width: 0; height: 4px; pointer-events: none; background: linear-gradient(90deg,#c7a467,#315644); }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s cubic-bezier(.2,.7,.25,1), transform .9s cubic-bezier(.2,.7,.25,1); transition-delay: var(--reveal-delay,0ms); }
.reveal.is-visible { opacity: 1; transform: none; }
@keyframes heroPhotoDrift { from { transform: scale(1.015); } to { transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .hero-photo { animation: none; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Footer is the single intentional dark chapter; its text remains light. */
.site-content > footer { color: #f7f5ee; background: #263f31 !important; border-color: #49614f !important; }
.site-content > footer .text-white { color: #fffefa !important; }
.site-content > footer .text-slate-400 { color: #e1e7dc !important; }
.site-content > footer .text-slate-500 { color: #c3cec0 !important; }
.site-content > footer .border-slate-800 { border-color: rgba(255,255,255,.2) !important; }
.site-content > footer .text-blue-400 { color: #e7cb8e !important; }
.site-content > footer button { color: #fffefa !important; border-color: rgba(231,203,142,.7) !important; }
.site-content > footer a[href="#scan-section"], .site-content > footer button[data-coming-soon] { color: #fffefa !important; background: var(--pine) !important; box-shadow: 0 12px 28px rgba(25,52,37,.25) !important; }
.site-content > footer a[href="#scan-section"]:hover, .site-content > footer button[data-coming-soon]:hover { background: var(--pine-deep) !important; }
.site-content > div[class*="fixed bottom-0"] { background: rgba(255,254,250,.98) !important; border-color: var(--line) !important; box-shadow: 0 -8px 28px rgba(45,55,43,.1); }
.site-content > div[class*="fixed bottom-0"] button[class*="bg-amber-500"] { color: #fffefa !important; background: var(--gold-deep) !important; }
.site-content > div[class*="fixed bottom-0"] a[class*="bg-blue-600"] { color: #fffefa !important; background: var(--pine) !important; }

@media (max-width: 900px) {
  .hero-section { min-height: 0; display: flex; flex-direction: column; align-items: stretch; padding-top: 0 !important; }
  .hero-content { order: 1; padding: 3.5rem 1.5rem 3rem; }
  .hero-scene { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; border-radius: 0; }
}
@media (max-width: 720px) {
  .consulting-feature, .aerial-feature { grid-template-columns: 1fr; border-radius: 1.5rem; }
  .consulting-feature-photo, .aerial-feature > img, .consulting-feature-photo img, .aerial-feature > img { min-height: 260px; max-height: 320px; }
  .consulting-feature-copy, .aerial-feature-copy { padding: 1.6rem; }
  .consulting-feature-copy h3, .aerial-feature-copy h3 { font-size: clamp(1.8rem,8vw,2.3rem); }
  .consulting-feature-copy p, .aerial-feature-copy p { font-size: 1.08rem; }
  .story-image-band { min-height: 390px; border-radius: 1.5rem; background-position: 62% center; }
  .visual-break { min-height: 390px; align-items: flex-end; border-radius: 1.5rem; }
  .visual-break--land::before { background: linear-gradient(0deg,rgba(25,45,34,.88) 0%,rgba(35,56,41,.62) 52%,rgba(35,56,41,.12) 100%); }
  .visual-break-copy { width: 100%; padding: 1.6rem; }
  .hero-content { padding: 3rem 1.25rem 2.5rem; }
  .hero-content h1 { font-size: clamp(2.35rem,10vw,3.2rem) !important; }
  .hero-content > div.flex { align-items: center; }
  .hero-content > div.grid { grid-template-columns: 1fr; }
  main > section:not([aria-label="서비스 안내"]) { padding-top: 5rem !important; padding-bottom: 5rem !important; }
  main > section h2 { font-size: clamp(2rem,8vw,2.65rem) !important; }
  .site-content > nav > div { min-height: 76px; }
  .site-content > nav .text-xs { font-size: 14px !important; }
}

@media print {
  @page { size: A4; margin: 14mm; }
  body { background: #fff !important; color: #0f172a !important; padding: 0 !important; }
  body > *:not(.site-content), .site-content > *:not(main), main > *:not(#reportModal), #reportModal > *:not(#reportCard) { display: none !important; }
  #reportModal { position: static !important; display: block !important; overflow: visible !important; padding: 0 !important; background: #fff !important; }
  #reportCard { width: 100% !important; max-width: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
  #reportCard, #reportCard * { background: transparent !important; color: #0f172a !important; border-color: #cbd5e1 !important; box-shadow: none !important; text-shadow: none !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #reportCard .print-hit { background: #d1fae5 !important; border-color: #10b981 !important; }
  #reportCard .print-accent { color: #1d4ed8 !important; }
  #reportCard .print-box { border: 1px solid #cbd5e1 !important; break-inside: avoid; }
  .no-print { display: none !important; }
  .print-only { display: block !important; }
}
