/* Ken Culver Photography — Editorial Hero starter theme
   Designed to sit on top of Bootstrap 3.4.1. Keep project-specific styles here. */

:root {
  --kc-bg: #18191b;
  --kc-bg-deep: #101112;
  --kc-panel: #202123;
  --kc-ivory: #f5f1e8;
  --kc-muted: #c9c3b8;
  --kc-gold: #c7a45b;
  --kc-border: rgba(245, 241, 232, 0.28);
  --kc-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --kc-sans: "Montserrat", Arial, sans-serif;
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--kc-bg);
  color: var(--kc-ivory);
  font-family: var(--kc-sans);
  font-size: 14px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--kc-gold); transition: color .2s ease, border-color .2s ease, opacity .2s ease; }
a:hover, a:focus { color: var(--kc-ivory); text-decoration: none; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--kc-gold); outline-offset: 4px; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 10000; padding: 10px 14px; background: var(--kc-ivory); color: var(--kc-bg); }
.skip-link:focus { left: 10px; top: 10px; }

/* Header */
.site-header {
  position: relative;
  z-index: 20;
  min-height: 76px;
  background: rgba(16, 17, 18, .97);
  border-bottom: 1px solid var(--kc-border);
}
.header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 13px; color: var(--kc-ivory); }
.brand:hover, .brand:focus { color: var(--kc-ivory); }
.brand-mark { width: 57px; height: 39px; fill: none; stroke: var(--kc-gold); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.brand-wordmark { display: flex; flex-direction: column; line-height: 1; }
.brand-name { font-family: var(--kc-serif); font-size: 29px; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.brand-subtitle { margin-top: 7px; color: var(--kc-gold); font-size: 10px; letter-spacing: .52em; text-transform: uppercase; }
.site-navigation { padding: 0; border: 0; box-shadow: none; }
.site-navigation .navbar-nav > li > a { padding: 27px 17px 24px; color: var(--kc-ivory); font-size: 10px; font-weight: 500; letter-spacing: .17em; text-transform: uppercase; }
.site-navigation .navbar-nav > li > a:hover,
.site-navigation .navbar-nav > li > a:focus { color: var(--kc-gold); background: transparent; }
.nav-toggle { display: none; background: transparent; border: 1px solid var(--kc-border); border-radius: 2px; padding: 9px 10px; }
.nav-toggle .icon-bar { display: block; width: 22px; height: 2px; margin: 4px 0; background: var(--kc-ivory); }

/* Hero: background image is deliberately a CSS background so copy can sit over the dark side. */
.hero { position: relative; min-height: 480px; overflow: hidden; background: var(--kc-bg-deep); }
.hero-image { position: absolute; inset: 0; background-image: url("../images/hero-quinceanera.jpg"); background-size: cover; background-position: center 42%; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,14,15,.92) 0%, rgba(13,14,15,.72) 27%, rgba(13,14,15,.15) 55%, rgba(13,14,15,.04) 100%); }
.hero-content { position: relative; z-index: 1; padding-top: 54px; padding-bottom: 56px; }
.eyebrow { margin: 0 0 12px; color: var(--kc-gold); font-size: 11px; font-weight: 500; letter-spacing: .42em; text-transform: uppercase; }
.eyebrow span { padding: 0 5px; }
.hero h1 { max-width: 530px; margin: 0; color: #fff; font-family: var(--kc-serif); font-size: clamp(54px, 6.3vw, 86px); font-weight: 400; line-height: .86; letter-spacing: -.025em; }
.gold-rule { display: block; width: 72px; height: 2px; margin: 25px 0 17px; background: var(--kc-gold); }
.hero-byline { margin: 0 0 2px; font-family: var(--kc-serif); font-size: 20px; }
.hero-description { margin: 0; color: #e0dbd2; font-family: var(--kc-serif); font-size: 18px; line-height: 1.35; }

/* Three main portfolio categories */
.portfolio-section { padding: 25px 0 30px; background: var(--kc-bg); }
.section-heading { display: flex; align-items: center; justify-content: center; gap: 28px; margin: 0 0 20px; }
.section-heading h2 { margin: 0; color: var(--kc-gold); font-size: 11px; font-weight: 500; letter-spacing: .42em; text-align: center; text-transform: uppercase; }
.heading-rule { width: min(10vw, 100px); height: 1px; background: var(--kc-gold); opacity: .8; }
.portfolio-grid > [class*="col-"] { margin-bottom: 14px; }
.portfolio-card { position: relative; display: block; overflow: hidden; border: 1px solid var(--kc-border); background: var(--kc-panel); color: var(--kc-ivory); }
.portfolio-card img { display: block; width: 100%; aspect-ratio: 1.65 / 1; object-fit: cover; transition: transform .45s ease, opacity .3s ease; }
.portfolio-card:hover img, .portfolio-card:focus img { transform: scale(1.035); opacity: .82; }
.card-caption { position: relative; display: block; min-height: 75px; padding: 8px 43px 10px 19px; background: linear-gradient(110deg, rgba(15,16,17,.98), rgba(26,27,28,.96)); }
.card-title { display: block; font-family: var(--kc-serif); font-size: 27px; line-height: 1.1; }
.card-subtitle { display: block; margin-top: 5px; color: var(--kc-muted); font-size: 9px; letter-spacing: .15em; line-height: 1.5; text-transform: uppercase; }
.card-arrow { position: absolute; top: 50%; right: 15px; color: var(--kc-gold); font-family: Arial, sans-serif; font-size: 27px; transform: translateY(-50%); }

/* Short, human introduction: enough to add context without turning the site into a sales page. */
.about-strip { padding: 30px 0 36px; border-top: 1px solid rgba(245,241,232,.1); background: #151617; text-align: center; }
.about-strip h2 { margin: 0 0 9px; font-family: var(--kc-serif); font-size: 32px; font-weight: 400; }
.about-strip p { max-width: 720px; margin: 0 auto 10px; color: var(--kc-muted); font-size: 13px; }
.text-link { display: inline-block; margin-top: 4px; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.text-link span { margin-left: 7px; font-size: 16px; }

/* Footer */
.site-footer { position: relative; overflow: hidden; padding: 28px 0 22px; background: #101112; text-align: center; }
.site-footer:before { position: absolute; inset: 0; content: ""; opacity: .13; background: url("../images/footer-mountains.jpg") center 54% / cover no-repeat; pointer-events: none; }
.site-footer .container { position: relative; }
.footer-quote { margin: 0; font-family: var(--kc-serif); font-size: 25px; font-style: italic; }
.site-footer .gold-rule { margin: 13px auto 10px; width: 52px; }
.footer-brand { margin: 0; font-size: 9px; letter-spacing: .36em; text-transform: uppercase; }
.footer-links { margin: 12px 0 0; font-size: 10px; letter-spacing: .08em; }
.copyright { margin: 14px 0 0; color: #8d8981; font-size: 10px; }

@media (min-width: 1200px) {
  .hero { min-height: 490px; }
  .hero-content { padding-top: 59px; }
  .portfolio-section { padding-top: 28px; }
}

@media (max-width: 767px) {
  .site-header, .header-inner { min-height: 69px; }
  .header-inner { position: relative; flex-wrap: wrap; padding-top: 11px; padding-bottom: 11px; }
  .brand-mark { width: 43px; height: 31px; }
  .brand { gap: 8px; }
  .brand-name { font-size: 22px; letter-spacing: .09em; }
  .brand-subtitle { margin-top: 6px; font-size: 8px; letter-spacing: .43em; }
  .nav-toggle { display: block; }
  .site-navigation { flex-basis: 100%; width: 100%; margin: 10px 0 0; padding: 0; border-top: 1px solid var(--kc-border); }
  .site-navigation .navbar-nav { margin: 8px 0 0; }
  .site-navigation .navbar-nav > li > a { padding: 12px 0; }
  .hero { min-height: 460px; }
  .hero-image { background-position: 62% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(13,14,15,.84), rgba(13,14,15,.42) 65%, rgba(13,14,15,.15)); }
  .hero-content { padding-top: 48px; padding-bottom: 42px; }
  .eyebrow { font-size: 9px; letter-spacing: .27em; }
  .hero h1 { max-width: 340px; font-size: clamp(51px, 13vw, 72px); }
  .hero-description { max-width: 300px; font-size: 17px; }
  .portfolio-section { padding-top: 24px; }
  .section-heading { gap: 12px; margin-bottom: 17px; }
  .section-heading h2 { font-size: 9px; letter-spacing: .22em; }
  .heading-rule { width: 24px; }
  .portfolio-grid { margin-left: 0; margin-right: 0; }
  .portfolio-grid > [class*="col-"] { padding-left: 0; padding-right: 0; margin-bottom: 13px; }
  .portfolio-card img { aspect-ratio: 1.8 / 1; }
  .card-title { font-size: 25px; }
  .card-caption { min-height: 70px; }
  .about-strip h2 { font-size: 28px; }
  .about-strip p { font-size: 12px; }
  .footer-quote { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
