@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap");

:root {
  --color-background:#FAF8F4;
  --color-surface:#FFFFFF;
  --color-section:#EEE7DB;
  --color-border:#E5DED3;
  --color-text:#2D3136;
  --color-heading:#5A4A82;
  --color-muted:#7C8188;
  --color-icon:#6E7C56;
  --color-primary:#2D7468;
  --color-primary-hover:#22594F;
  --color-accent:#CFA14A;
  --color-decorative:#D9D2C7;
  --color-success:#2E7D32;
  --color-warning:#D59118;
  --color-danger:#B3261E;
  --gray-50:#F6F4F0;
  --gray-100:#EEE7DB;
  --gray-200:#E5DED3;
  --gray-300:#D9D2C7;
  --gray-400:#C2B8A9;
  --gray-500:#A59A89;
  --gray-600:#7C7365;
  --gray-700:#595248;
  --gray-800:#3C3730;
  --gray-900:#26221D;
  --font-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-serif:"Playfair Display","Times New Roman",serif;
  --font-size-xs:12px;
  --font-size-sm:14px;
  --font-size-base:16px;
  --font-size-lg:18px;
  --font-size-xl:20px;
  --font-size-2xl:24px;
  --font-size-3xl:30px;
  --font-size-4xl:36px;
  --font-size-5xl:44px;
  --line-height-tight:1.2;
  --line-height-snug:1.35;
  --line-height-normal:1.6;
  --line-height-relaxed:1.8;
  --space-0:0;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-7:28px;
  --space-8:32px;
  --space-10:40px;
  --space-12:48px;
  --space-16:64px;
  --space-20:80px;
  --space-24:96px;
  --radius-xs:4px;
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:16px;
  --radius-pill:999px;
  --radius-card:18px;
  --shadow-soft:0 10px 30px rgba(24,22,20,0.08);
  --shadow-medium:0 18px 45px rgba(24,22,20,0.12);
  --shadow-elevated:0 24px 70px rgba(16,13,10,0.18);
  --shadow-outline:0 0 0 1px rgba(207,161,74,0.4),0 0 0 4px rgba(207,161,74,0.18);
  --blur-glass:18px;
  --transition-fast:150ms ease-out;
  --transition-base:220ms ease-out;
  --transition-slow:360ms ease-out;
  --container-max-width:1200px;
}

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

html,body {
  margin:0;
  padding:0;
}

html {
  scroll-behavior:smooth;
  text-size-adjust:100%;
}

body {
  min-height:100vh;
  font-family:var(--font-sans);
  font-size:var(--font-size-base);
  line-height:var(--line-height-normal);
  color:var(--color-text);
  background-color:var(--color-background);
  -webkit-font-smoothing:antialiased;
}

img,picture,video,canvas,svg {
  display:block;
  max-width:100%;
}

img {
  height:auto;
}

input,button,textarea,select {
  font:inherit;
  color:inherit;
}

button {
  border:none;
  background:none;
  padding:0;
  cursor:pointer;
}

p,figure,blockquote,dl,dd {
  margin:0;
}

ul,ol {
  margin:0;
  padding-left:1.5rem;
}

h1,h2,h3,h4,h5,h6 {
  margin:0;
  font-family:var(--font-serif);
  font-weight:600;
  color:var(--color-heading);
  line-height:var(--line-height-tight);
}

h1 {
  font-size:var(--font-size-5xl);
}

h2 {
  font-size:var(--font-size-4xl);
}

h3 {
  font-size:var(--font-size-3xl);
}

h4 {
  font-size:var(--font-size-2xl);
}

h5 {
  font-size:var(--font-size-xl);
}

h6 {
  font-size:var(--font-size-lg);
}

@media (max-width:768px) {
  h1 {
    font-size:32px;
  }
  h2 {
    font-size:28px;
  }
  h3 {
    font-size:24px;
  }
  h4 {
    font-size:20px;
  }
}

p {
  margin-top:0;
  margin-bottom:var(--space-4);
  color:var(--color-text);
}

a {
  color:var(--color-primary);
  text-decoration:none;
  transition:color var(--transition-base),opacity var(--transition-fast);
}

a:hover {
  color:var(--color-primary-hover);
}

a:active {
  opacity:0.9;
}

main {
  display:block;
}

.container {
  width:100%;
  max-width:var(--container-max-width);
  margin:0 auto;
  padding-left:var(--space-5);
  padding-right:var(--space-5);
}

.section {
  padding-top:var(--space-16);
  padding-bottom:var(--space-16);
}

.section--muted {
  background-color:var(--color-section);
}

.section--soft {
  background:linear-gradient(135deg,rgba(250,248,244,1),rgba(233,225,212,0.8));
}

.flex {
  display:flex;
}

.flex-center {
  display:flex;
  align-items:center;
  justify-content:center;
}

.flex-between {
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.flex-column {
  display:flex;
  flex-direction:column;
}

.flex-wrap {
  flex-wrap:wrap;
}

.gap-xs {
  gap:var(--space-2);
}

.gap-sm {
  gap:var(--space-3);
}

.gap-md {
  gap:var(--space-4);
}

.gap-lg {
  gap:var(--space-6);
}

.grid {
  display:grid;
}

.grid-2 {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--space-6);
}

.grid-3 {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--space-6);
}

@media (max-width:960px) {
  .grid-2,.grid-3 {
    grid-template-columns:minmax(0,1fr);
  }
}

.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;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  padding:10px 22px;
  border-radius:var(--radius-pill);
  font-size:var(--font-size-sm);
  font-weight:500;
  letter-spacing:0.04em;
  text-transform:uppercase;
  border:1px solid transparent;
  background:var(--color-primary);
  color:#FFFFFF !important;
  box-shadow:0 14px 28px rgba(21,86,74,0.3);
  transition:background-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-fast),border-color var(--transition-base),color var(--transition-base);
}

.btn:hover {
  background:var(--color-primary-hover);
  box-shadow:var(--shadow-medium);
  transform:translateY(-1px);
}

.btn:active {
  transform:translateY(0);
  box-shadow:var(--shadow-soft);
}

.btn-secondary {
  background:rgba(255,255,255,0.85);
  color:var(--color-text) !important;
  border-color:rgba(207,161,74,0.6);
  box-shadow:0 10px 26px rgba(0,0,0,0.08);
}

.btn-secondary:hover {
  background:#FFFFFF;
}

.btn-ghost {
  background:transparent;
  color:var(--color-text) !important;
  border-color:var(--color-border);
  box-shadow:none;
}

.btn-ghost:hover {
  background:rgba(233,225,212,0.7);
}

.btn:disabled,.btn[aria-disabled="true"] {
  opacity:0.6;
  cursor:not-allowed;
  box-shadow:none;
  transform:none;
}

input[type="text"],input[type="email"],input[type="tel"],input[type="search"],input[type="url"],input[type="number"],input[type="password"],textarea,select {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--color-border);
  background-color:rgba(255,255,255,0.9);
  color:var(--color-text);
  outline:none;
  transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-fast);
}

textarea {
  min-height:120px;
  resize:vertical;
}

input::placeholder,textarea::placeholder {
  color:var(--color-muted);
}

input:focus-visible,textarea:focus-visible,select:focus-visible {
  border-color:var(--color-accent);
  box-shadow:var(--shadow-outline);
  background-color:#FFFFFF;
}

input[disabled],textarea[disabled],select[disabled] {
  background-color:var(--gray-100);
  cursor:not-allowed;
  opacity:0.7;
}

.card {
  position:relative;
  border-radius:var(--radius-card);
  background:rgba(255,255,255,0.88);
  border:1px solid rgba(229,222,211,0.8);
  box-shadow:var(--shadow-soft);
  padding:var(--space-6);
  backdrop-filter:blur(var(--blur-glass));
  -webkit-backdrop-filter:blur(var(--blur-glass));
  transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base),background-color var(--transition-base);
}

.card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-medium);
  border-color:rgba(207,161,74,0.6);
  background:rgba(255,255,255,0.96);
}

.card-header {
  margin-bottom:var(--space-4);
}

.card-title {
  font-family:var(--font-serif);
  font-size:var(--font-size-2xl);
  margin-bottom:var(--space-2);
}

.card-meta {
  font-size:var(--font-size-sm);
  color:var(--color-muted);
}

.badge {
  display:inline-flex;
  align-items:center;
  padding:3px 10px;
  border-radius:var(--radius-pill);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  background-color:rgba(207,161,74,0.08);
  color:var(--color-accent);
  border:1px solid rgba(207,161,74,0.4);
}

.tag-muted {
  background-color:var(--gray-100);
  color:var(--gray-700);
}

.chip-icon {
  width:20px;
  height:20px;
  border-radius:50%;
  border:2px solid var(--color-accent);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  color:var(--color-accent);
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,0.85),rgba(207,161,74,0.3));
}

.hero {
  position:relative;
  padding-top:var(--space-20);
  padding-bottom:var(--space-20);
}

.hero-overlay {
  position:absolute;
  inset:0;
  background:radial-gradient(circle at top,rgba(21,15,6,0.18),transparent 55%),linear-gradient(to bottom,rgba(14,10,6,0.4),rgba(250,248,244,0.1));
  pointer-events:none;
}

.hero-inner {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:var(--space-12);
}

@media (max-width:960px) {
  .hero {
    padding-top:var(--space-16);
    padding-bottom:var(--space-16);
  }
  .hero-inner {
    grid-template-columns:minmax(0,1fr);
  }
}

.hero-eyebrow {
  font-size:var(--font-size-xs);
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:var(--space-3);
}

.hero-title {
  font-size:46px;
  line-height:1.1;
}

@media (max-width:768px) {
  .hero-title {
    font-size:34px;
  }
}

.hero-subtitle {
  margin-top:var(--space-4);
  font-size:var(--font-size-lg);
  color:var(--color-muted);
}

.hero-actions {
  margin-top:var(--space-6);
}

.hero-meta {
  margin-top:var(--space-5);
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4);
  font-size:var(--font-size-sm);
  color:var(--color-muted);
}

.hero-image-frame {
  position:relative;
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--shadow-elevated);
  background:radial-gradient(circle at top left,#FFF,rgba(233,225,212,0.4));
}

.hero-image-frame::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(145deg,rgba(0,0,0,0.35),transparent 55%);
  mix-blend-mode:multiply;
  pointer-events:none;
}

.hero-image-tag {
  position:absolute;
  left:18px;
  bottom:18px;
  padding:10px 14px;
  border-radius:14px;
  background:rgba(11,9,9,0.75);
  color:#FDF7EA;
  font-size:12px;
  display:flex;
  align-items:center;
  gap:var(--space-3);
  backdrop-filter:blur(12px);
}

.hero-image-tag strong {
  font-family:var(--font-serif);
}

.text-muted {
  color:var(--color-muted);
}

.text-accent {
  color:var(--color-accent);
}

.text-upper {
  text-transform:uppercase;
}

.text-center {
  text-align:center;
}

.mt-0 {margin-top:0;}
.mt-2 {margin-top:var(--space-2);}
.mt-3 {margin-top:var(--space-3);}
.mt-4 {margin-top:var(--space-4);}
.mt-6 {margin-top:var(--space-6);}
.mt-8 {margin-top:var(--space-8);}
.mb-0 {margin-bottom:0;}
.mb-2 {margin-bottom:var(--space-2);}
.mb-3 {margin-bottom:var(--space-3);}
.mb-4 {margin-bottom:var(--space-4);}
.mb-6 {margin-bottom:var(--space-6);}
.mb-8 {margin-bottom:var(--space-8);}

.py-section {
  padding-top:var(--space-16);
  padding-bottom:var(--space-16);
}

.chip-row {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
}

.icon-circle {
  width:40px;
  height:40px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 20%,#FFF,rgba(110,124,86,0.25));
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--color-icon);
}

.list-check {
  list-style:none;
  padding-left:0;
}

.list-check li {
  position:relative;
  padding-left:22px;
  margin-bottom:10px;
}

.list-check li::before {
  content:"";
  position:absolute;
  left:0;
  top:0.55em;
  width:9px;
  height:9px;
  border-radius:50%;
  border:2px solid var(--color-accent);
}

:focus-visible {
  outline:none;
  box-shadow:var(--shadow-outline);
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto !important;
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}
