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

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  background: #0d140e;
  color: #f5efe6;
  font-family: 'Inter', sans-serif;
}

/* HERO */

.hero {
  min-height: 100vh;
  position: relative;
  overflow: hidden;

  background:
    radial-gradient(circle at center,
    rgba(65, 82, 58, 0.92),
    rgba(29, 41, 30, 0.96) 55%,
    #0d140e 100%);

  box-shadow: inset 0 0 180px rgba(0,0,0,0.45);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      120deg,
      rgba(255,255,255,0.03),
      transparent 20%,
      rgba(255,255,255,0.015) 40%,
      transparent 60%
    );

  mix-blend-mode: soft-light;
  opacity: 0.7;
  pointer-events: none;
}

/* NAVIGATION */

nav {
  position: relative;
  z-index: 10;

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

  padding: 32px 6%;
}

.brand {
  display: flex;
  align-items: center;
  gap: 15px;
}

.pine-icon {
  color: #d5b279;
  font-size: 1.8rem;
}

.brand h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.45rem;
  letter-spacing: 8px;
  color: #f5efe6;
  font-weight: 700;
}

.nav-links {
  display: flex;
  gap: 42px;
  list-style: none;
}

.nav-links a {
  color: #f5efe6;
  text-decoration: none;

  font-family: 'Cormorant Garamond', serif;

  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 1rem;

  transition: 0.3s ease;
}

.nav-links a.active,
.nav-links a:hover {
  color: #b3001b;
  border-bottom: 1px solid #d5b279;
  padding-bottom: 10px;
}

/* HERO CONTENT */

.hero-content {
  position: relative;
  z-index: 5;

  text-align: center;

  padding: 120px 20px 80px;
}

.tagline {
  color: #d5b279;
  letter-spacing: 10px;
  font-size: 0.85rem;
  margin-bottom: 28px;
}

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

  gap: 18px;

  margin-bottom: 35px;

  color: #d5b279;
}

.divider span {
  width: 110px;
  height: 1px;
  background-color: #b89b72;
}

/* HOME TITLE */

.velvet-text {
  font-family: 'Cormorant Garamond', serif;

  font-size: clamp(5rem, 12vw, 11rem);

  line-height: 0.85;
  font-weight: 700;

  background:
    linear-gradient(
      180deg,
      #ff4a5f 0%,
      #b3001b 25%,
      #69000d 60%,
      #2a0004 100%
    );

  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

  text-shadow:
    0 2px 0 rgba(255,255,255,0.08),
    0 10px 25px rgba(0,0,0,0.55),
    0 0 12px rgba(120,0,10,0.25);

  filter: drop-shadow(0 18px 30px rgba(0,0,0,0.5));

  letter-spacing: -4px;

  margin-bottom: 35px;
}

/* INNER PAGE TITLES */

.page-title {
  font-family: 'Cormorant Garamond', serif;

  font-size: clamp(3.5rem, 7vw, 6rem);

  font-weight: 700;

  background:
    linear-gradient(
      180deg,
      #ff4a5f 0%,
      #b3001b 25%,
      #69000d 60%,
      #2a0004 100%
    );

  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

  text-shadow:
    0 8px 18px rgba(0,0,0,0.45);

  margin-bottom: 25px;
}

.subtitle {
  font-family: 'Cormorant Garamond', serif;

  font-size: 1.5rem;

  line-height: 1.7;

  letter-spacing: 1px;

  color: #f3e8dc;

  max-width: 780px;

  margin: 0 auto 45px;

  text-align: center;
}

/* BUTTON */

.btn {
  display: inline-flex;
  gap: 40px;
  align-items: center;

  padding: 20px 50px;

  border: 1px solid rgba(213,178,121,0.5);

  border-radius: 12px;

  color: #d5b279;
  text-decoration: none;

  letter-spacing: 5px;
  font-weight: 600;

  background: rgba(15, 20, 15, 0.35);

  backdrop-filter: blur(4px);

  transition: all 0.3s ease;
}

.btn:hover {
  background: rgba(213,178,121,0.08);

  transform: translateY(-2px);

  border-color: #d5b279;
}

/* INNER PAGE HERO */

.about-page-header,
.services-page-header,
.portfolio-page-header,
.contact-page-header {
  min-height: 70vh;
}

/* ABOUT PAGE */

.about-page {
  background: #0d140e;

  padding: 120px 8%;

  margin-top: -80px;

  position: relative;
  z-index: 10;
}

.about-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;

  gap: 60px;

  align-items: center;
}

.section-label,
.card-label {
  color: #d5b279;

  letter-spacing: 5px;

  margin-bottom: 20px;

  font-size: 0.8rem;
}

.about-text h2 {
  font-family: 'Cormorant Garamond', serif;

  font-size: clamp(2.8rem, 5vw, 5rem);

  line-height: 1.1;

  margin-bottom: 30px;

  color: #f5efe6;
}

.about-text p {
  color: #d8d2c8;

  line-height: 1.9;

  margin-bottom: 24px;

  font-size: 1.08rem;
}

.about-card {
  border: 1px solid rgba(213,178,121,0.2);

  background: rgba(245,239,230,0.04);

  padding: 50px;

  border-radius: 24px;

  backdrop-filter: blur(10px);
}

.about-card h3 {
  font-family: 'Cormorant Garamond', serif;

  font-size: 2.5rem;

  color: #f5efe6;

  margin-bottom: 35px;

  line-height: 1.2;
}

.skill-list {
  display: flex;
  flex-wrap: wrap;

  gap: 14px;
}

.skill-list span {
  border: 1px solid rgba(213,178,121,0.3);

  padding: 12px 18px;

  border-radius: 50px;

  color: #d5b279;

  background: rgba(213,178,121,0.05);
}

/* SERVICES PAGE */

.services-page {
  background: #0d140e;

  padding: 120px 8%;

  margin-top: -80px;

  position: relative;
  z-index: 10;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 28px;
}

.service-card {
  min-height: 360px;

  border: 1px solid rgba(213,178,121,0.22);

  background:
    linear-gradient(
      145deg,
      rgba(245,239,230,0.06),
      rgba(245,239,230,0.02)
    );

  padding: 45px 35px;

  border-radius: 24px;

  transition: 0.3s ease;
}

.service-card:hover {
  transform: translateY(-8px);

  border-color: rgba(213,178,121,0.65);
}

.service-card span {
  color: #b3001b;

  font-weight: 700;

  letter-spacing: 4px;
}

.service-card h2 {
  font-family: 'Cormorant Garamond', serif;

  font-size: 2.4rem;

  color: #d5b279;

  margin: 35px 0 18px;

  line-height: 1.1;
}

.service-card p {
  color: #d8d2c8;

  line-height: 1.8;

  font-size: 1.05rem;
}

/* PORTFOLIO PAGE */

.portfolio-page {
  background: #0d140e;

  padding: 120px 8%;

  margin-top: -80px;

  position: relative;
  z-index: 10;
}

.portfolio-grid {
  display: grid;

  gap: 40px;
}

.portfolio-item {
  display: grid;
  grid-template-columns: 1.1fr 1fr;

  border: 1px solid rgba(213,178,121,0.18);

  border-radius: 28px;

  overflow: hidden;

  background:
    linear-gradient(
      145deg,
      rgba(245,239,230,0.05),
      rgba(245,239,230,0.02)
    );

  transition: 0.3s ease;
}

.portfolio-item:hover {
  transform: translateY(-6px);

  border-color: rgba(213,178,121,0.5);
}

.portfolio-image {
  min-height: 420px;

  background:
    radial-gradient(circle at center,
    rgba(65,82,58,0.7),
    rgba(20,30,20,1));

  position: relative;
}

.portfolio-content {
  padding: 60px;

  display: flex;
  flex-direction: column;
  justify-content: center;
}

.portfolio-content span {
  color: #b3001b;

  letter-spacing: 5px;

  font-weight: 700;

  margin-bottom: 22px;
}

.portfolio-content h2 {
  font-family: 'Cormorant Garamond', serif;

  font-size: 3.2rem;

  color: #f5efe6;

  margin-bottom: 18px;
}

.portfolio-content p {
  color: #d8d2c8;

  line-height: 1.8;

  font-size: 1.08rem;

  max-width: 500px;
}

/* CONTACT PAGE */

.contact-page {
  background: #0d140e;

  padding: 120px 8%;

  margin-top: -80px;

  position: relative;
  z-index: 10;
}

.contact-container {
  display: grid;
  grid-template-columns: 1fr 1fr;

  gap: 60px;

  align-items: start;
}

.contact-info h2 {
  font-family: 'Cormorant Garamond', serif;

  font-size: clamp(3rem, 5vw, 5rem);

  line-height: 1.1;

  margin-bottom: 28px;

  color: #f5efe6;
}

.contact-info p {
  color: #d8d2c8;

  line-height: 1.8;

  font-size: 1.05rem;
}

.contact-details {
  margin-top: 35px;
}

.contact-details p {
  margin-bottom: 12px;

  color: #d5b279;
}

.contact-form {
  display: flex;
  flex-direction: column;

  gap: 22px;

  border: 1px solid rgba(213,178,121,0.2);

  background: rgba(245,239,230,0.04);

  padding: 45px;

  border-radius: 28px;

  backdrop-filter: blur(10px);
}

.contact-form input,
.contact-form textarea {
  background: rgba(255,255,255,0.03);

  border: 1px solid rgba(213,178,121,0.15);

  padding: 18px 20px;

  border-radius: 14px;

  color: #f5efe6;

  font-family: 'Inter', sans-serif;

  font-size: 1rem;

  outline: none;
}

.contact-form textarea {
  min-height: 180px;

  resize: vertical;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: rgba(245,239,230,0.45);
}

.contact-form input:focus,
.contact-form textarea:focus {
  border-color: rgba(213,178,121,0.5);
}

.contact-form .btn {
  width: fit-content;

  cursor: pointer;
}

/* RESPONSIVE */

@media (max-width: 900px) {

  nav {
    flex-direction: column;
    gap: 25px;
  }

  .nav-links {
    flex-wrap: wrap;
    justify-content: center;

    gap: 22px;
  }

  .brand h2 {
    font-size: 1.1rem;
    letter-spacing: 5px;
  }

  .hero-content {
    padding-top: 90px;
  }

  .tagline {
    letter-spacing: 4px;
  }

  .velvet-text {
    font-size: clamp(4rem, 18vw, 7rem);
  }

  .about-grid,
  .contact-container,
  .portfolio-item,
  .services-grid {
    grid-template-columns: 1fr;
  }

  .about-page,
  .services-page,
  .portfolio-page,
  .contact-page {
    padding: 80px 6%;
    margin-top: 0;
  }

  .portfolio-content,
  .contact-form {
    padding: 40px 30px;
  }

}

/* FOOTER */

.site-footer {
  background: #081009;

  padding: 80px 8% 50px;

  position: relative;

  overflow: hidden;
}

.footer-line {
  width: 100%;
  height: 1px;

  background:
    linear-gradient(
      to right,
      transparent,
      rgba(213,178,121,0.5),
      transparent
    );

  margin-bottom: 55px;
}

.footer-content {
  text-align: center;

  max-width: 700px;

  margin: auto;
}

.footer-content h3 {
  font-family: 'Cormorant Garamond', serif;

  font-size: 2.5rem;

  color: #f5efe6;

  margin-bottom: 18px;

  letter-spacing: 2px;
}

.footer-content p {
  color: #d8d2c8;

  line-height: 1.8;

  margin-bottom: 35px;

  font-size: 1rem;
}

.footer-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;

  gap: 30px;

  margin-bottom: 35px;
}

.footer-links a {
  color: #d5b279;

  text-decoration: none;

  letter-spacing: 2px;

  text-transform: uppercase;

  font-size: 0.9rem;

  transition: 0.3s ease;
}

.footer-links a:hover {
  color: #ff4a5f;
}

.footer-copy {
  color: rgba(245,239,230,0.45);

  font-size: 0.85rem;

  letter-spacing: 1px;
}

/* ACCESSIBILITY */

.skip-link {
  position: absolute;
  top: -50px;
  left: 20px;
  background: #f5efe6;
  color: #0d140e;
  padding: 12px 18px;
  z-index: 999;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
}

.skip-link:focus {
  top: 20px;
}

a:focus,
button:focus,
input:focus,
textarea:focus {
  outline: 3px solid #d5b279;
  outline-offset: 4px;
}

.menu-toggle {
  display: none;
  background: transparent;
  border: 1px solid rgba(213,178,121,0.5);
  color: #f5efe6;
  font-size: 1.6rem;
  padding: 10px 16px;
  border-radius: 10px;
  cursor: pointer;
}

/* MOBILE NAV */

@media (max-width: 900px) {
  .menu-toggle {
    display: block;
  }

  .nav-links {
    display: none;
    width: 100%;
    text-align: center;
    margin-top: 20px;
  }

  .nav-links.show-menu {
    display: flex;
  }
}

/* PRICING */

.price {
  font-family: 'Cormorant Garamond', serif;

  font-size: 3rem;

  color: #f5efe6;

  margin-bottom: 25px;
}

.service-features {
  list-style: none;

  margin-top: 30px;
  margin-bottom: 35px;
}

.service-features li {
  color: #d8d2c8;

  margin-bottom: 14px;

  position: relative;

  padding-left: 22px;
}

.service-features li::before {
  content: "✦";

  position: absolute;
  left: 0;

  color: #d5b279;
}

.featured-card {
  border: 1px solid rgba(213,178,121,0.55);

  transform: scale(1.03);

  background:
    linear-gradient(
      145deg,
      rgba(245,239,230,0.08),
      rgba(245,239,230,0.03)
    );

  box-shadow:
    0 20px 40px rgba(0,0,0,0.35);
}