@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --ink: #1c130c;
  --ink-soft: #2c1f14;
  --leather: #6e4426;
  --leather-deep: #4a2c17;
  --amber: #d0973f;
  --amber-soft: #e8bd76;
  --cream: #f7efe1;
  --cream-deep: #ece0cc;
  --paper: #fbf6ec;
  --stitch: #c9a37a;
  --text: #2a1c11;
  --text-soft: #6b5847;
  --line: rgba(110, 68, 38, 0.18);
  --line-light: rgba(247, 239, 225, 0.16);
  --danger: #b3261e;
  --shadow-sm: 0 6px 18px rgba(28, 19, 12, 0.08);
  --shadow-md: 0 18px 46px rgba(28, 19, 12, 0.14);
  --shadow-lg: 0 30px 70px rgba(28, 19, 12, 0.24);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--text);
  background-color: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

main { display: block; }

h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: -0.012em;
  color: var(--ink);
  margin: 0 0 0.65em;
}

h1 { font-size: clamp(2.4rem, 5.4vw, 4.3rem); font-weight: 700; }
h2 { font-size: clamp(1.9rem, 3.8vw, 3rem); }
h3 { font-size: clamp(1.35rem, 2.3vw, 1.9rem); }
h4 { font-size: clamp(1.1rem, 1.7vw, 1.4rem); }
h5 { font-size: 1rem; letter-spacing: 0.02em; }

p { margin: 0 0 1rem; color: var(--text-soft); }

p:last-child { margin-bottom: 0; }

a {
  color: var(--leather);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover,
a:focus-visible { color: var(--amber); }

img { max-width: 100%; height: auto; display: block; }

ul, ol { color: var(--text-soft); }

strong { color: var(--ink); font-weight: 600; }

.stitch-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--font-body);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--leather);
  margin-bottom: 1.1rem;
}

.stitch-eyebrow::before {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
  opacity: 0.7;
}

.stitch-section--dark .stitch-eyebrow,
.stitch-section--image .stitch-eyebrow { color: var(--amber-soft); }

.stitch-section {
  position: relative;
  padding: clamp(3.6rem, 8vw, 7rem) 0;
}

.stitch-section--tight { padding: clamp(2.4rem, 5vw, 4rem) 0; }

.stitch-section--paper { background-color: var(--paper); }
.stitch-section--cream { background-color: var(--cream); }

.stitch-section--dark {
  background-color: var(--ink);
  color: var(--cream);
}

.stitch-section--dark h1,
.stitch-section--dark h2,
.stitch-section--dark h3,
.stitch-section--dark h4,
.stitch-section--dark h5 { color: var(--cream); }

.stitch-section--dark p { color: rgba(247, 239, 225, 0.8); }
.stitch-section--dark ul,
.stitch-section--dark ol { color: rgba(247, 239, 225, 0.82); }
.stitch-section--dark strong { color: var(--cream); }

.stitch-section--image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--cream);
}

.stitch-section--image h1,
.stitch-section--image h2,
.stitch-section--image h3,
.stitch-section--image h4 { color: var(--cream); }

.stitch-section--image p { color: rgba(247, 239, 225, 0.86); }

.stitch-rule {
  border: 0;
  border-top: 2px dashed var(--stitch);
  opacity: 0.5;
  margin: 2.4rem 0;
}

.stitch-rule--light { border-top-color: rgba(247, 239, 225, 0.35); }

.btn-stitch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.95rem 1.75rem;
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.94rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  background-color: var(--ink);
  color: var(--cream);
  border: 1px solid var(--ink);
  cursor: pointer;
  transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.btn-stitch:hover,
.btn-stitch:focus-visible {
  background-color: var(--leather);
  border-color: var(--leather);
  color: #fff;
  transform: translateY(-2px);
}

.btn-stitch--ghost {
  background-color: transparent;
  color: var(--cream);
  border-color: rgba(247, 239, 225, 0.45);
}

.btn-stitch--ghost:hover,
.btn-stitch--ghost:focus-visible {
  background-color: var(--cream);
  border-color: var(--cream);
  color: var(--ink);
}

.btn-stitch--amber {
  background-color: var(--amber);
  border-color: var(--amber);
  color: var(--ink);
}

.btn-stitch--amber:hover,
.btn-stitch--amber:focus-visible {
  background-color: var(--amber-soft);
  border-color: var(--amber-soft);
  color: var(--ink);
}

.craft-card {
  height: 100%;
  background-color: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: clamp(1.5rem, 2.4vw, 2.1rem);
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.craft-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
  border-color: var(--stitch);
}

.craft-card--solid {
  background-color: var(--cream);
  border-color: transparent;
}

.craft-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background-color: var(--ink);
  color: var(--amber-soft);
  font-size: 1.15rem;
  margin-bottom: 1.1rem;
}

.craft-card h3 { margin-bottom: 0.5rem; }
.craft-card p { margin-bottom: 0; }

.craft-card__list {
  list-style: none;
  padding: 0;
  margin: 1rem 0 0;
  display: grid;
  gap: 0.5rem;
}

.craft-card__list li {
  display: flex;
  gap: 0.6rem;
  font-size: 0.94rem;
}

.craft-card__list li::before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--leather);
  font-size: 0.8rem;
  margin-top: 0.35rem;
}

.metric {
  padding: 1.2rem 1rem;
}

.metric__value {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 700;
  color: var(--amber);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.metric__label {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-soft);
}

.stitch-section--dark .metric__label { color: rgba(247, 239, 225, 0.65); }

.craft-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.1rem;
}

.craft-gallery__item {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: var(--cream-deep);
  margin: 0;
  box-shadow: var(--shadow-sm);
}

.craft-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.craft-gallery__item figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.6rem 1.2rem 1rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--cream);
  background: linear-gradient(to top, rgba(28, 19, 12, 0.88), rgba(28, 19, 12, 0));
}

.craft-gallery__item--wide { grid-column: 1 / -1; aspect-ratio: 16 / 8; }

@media (max-width: 640px) {
  .craft-gallery { grid-template-columns: 1fr; }
  .craft-gallery__item--wide { aspect-ratio: 4 / 3; }
}

.craft-form {
  background-color: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: clamp(1.5rem, 3vw, 2.6rem);
  box-shadow: var(--shadow-md);
}

.craft-field { margin-bottom: 1.1rem; }

.craft-field label {
  display: block;
  font-size: 0.83rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 0.45rem;
}

.craft-field input,
.craft-field textarea,
.craft-field select {
  width: 100%;
  padding: 0.9rem 1.05rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background-color: var(--paper);
  color: var(--text);
  font-family: inherit;
  font-size: 0.96rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.craft-field textarea { min-height: 130px; resize: vertical; }

.craft-field input:focus,
.craft-field textarea:focus,
.craft-field select:focus {
  outline: none;
  border-color: var(--leather);
  box-shadow: 0 0 0 3px rgba(110, 68, 38, 0.14);
}

.craft-field.has-error input,
.craft-field.has-error textarea,
.craft-field.has-error select {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.14);
}

.craft-field__hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.8rem;
  color: var(--text-soft);
}

.craft-form__legal {
  font-size: 0.8rem;
  color: var(--text-soft);
  margin-top: 1rem;
}

.hero {
  position: relative;
  min-height: clamp(520px, 86vh, 820px);
  display: flex;
  align-items: center;
  padding: clamp(4rem, 9vw, 7rem) 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--cream);
}

.hero h1,
.hero h2 { color: var(--cream); }

.hero p { color: rgba(247, 239, 225, 0.86); font-size: 1.05rem; }

.hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 1rem;
  border-radius: 999px;
  background-color: rgba(247, 239, 225, 0.12);
  border: 1px solid rgba(247, 239, 225, 0.28);
  color: var(--amber-soft);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 1.4rem;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 1.8rem;
}

.hero-split {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

@media (max-width: 900px) {
  .hero-split { grid-template-columns: 1fr; }
}

.showcase-slider .carousel-item { height: clamp(380px, 62vh, 640px); }
.showcase-slider .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.showcase-slider .carousel-caption {
  bottom: 15%;
  left: 8%;
  right: auto;
  max-width: 520px;
  text-align: left;
  padding: 1.6rem;
  background-color: rgba(28, 19, 12, 0.68);
  border-radius: var(--radius-md);
}
.showcase-slider .carousel-caption h3 { color: var(--cream); }
.showcase-slider .carousel-caption p { color: rgba(247, 239, 225, 0.85); margin-bottom: 0; }
.showcase-slider .carousel-control-prev,
.showcase-slider .carousel-control-next { width: 5.5%; }

@media (max-width: 720px) {
  .showcase-slider .carousel-caption { left: 6%; right: 6%; padding: 1.1rem; }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background-color: rgba(251, 246, 236, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.site-header.is-scrolled {
  box-shadow: 0 10px 28px rgba(28, 19, 12, 0.09);
  border-bottom-color: var(--line);
}

.site-utility {
  background-color: var(--ink);
  color: rgba(247, 239, 225, 0.8);
  font-size: 0.82rem;
  padding: 0.55rem 0;
}

.site-utility a { color: rgba(247, 239, 225, 0.9); }
.site-utility a:hover { color: var(--amber-soft); }

.site-brand img { width: 80px; height: 40px; object-fit: contain; }

.site-nav .navbar-nav { gap: 0.25rem; }

.site-nav__link {
  display: inline-block;
  padding: 0.55rem 0.95rem !important;
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.94rem;
  font-weight: 500;
  color: var(--ink) !important;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.site-nav__link:hover,
.site-nav__link:focus-visible,
.site-nav__link.active { background-color: rgba(110, 68, 38, 0.08); color: var(--leather) !important; }

.navbar-toggler {
  border: 0;
  padding: 0.4rem 0.6rem;
  color: var(--ink);
  font-size: 1.3rem;
}

.navbar-toggler:focus { box-shadow: none; outline: none; }

.header-contact {
  display: flex;
  gap: 1.4rem;
  align-items: center;
  font-size: 0.85rem;
  color: var(--text-soft);
}

.header-contact i { color: var(--leather); margin-right: 0.4rem; }

@media (max-width: 991px) {
  .header-contact { display: none; }
}

.site-footer {
  background-color: var(--ink);
  color: rgba(247, 239, 225, 0.72);
  padding: clamp(3rem, 6vw, 5rem) 0 2rem;
}

.site-footer::before {
  content: "";
  display: block;
  height: 2px;
  margin: 0 0 3rem;
  background-image: repeating-linear-gradient(90deg, var(--amber) 0 10px, transparent 10px 20px);
  opacity: 0.45;
}

.site-footer h3,
.site-footer h4,
.site-footer h5 {
  color: var(--cream);
  margin-bottom: 1rem;
}

.site-footer p { color: rgba(247, 239, 225, 0.7); }

.site-footer a { color: rgba(247, 239, 225, 0.78); }
.site-footer a:hover,
.site-footer a:focus-visible { color: var(--amber-soft); }

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 2.2rem;
}

@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

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

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.55rem;
}

.footer-links a { font-size: 0.92rem; }

.footer-contact { display: grid; gap: 0.7rem; font-size: 0.92rem; }
.footer-contact i { color: var(--amber-soft); margin-right: 0.55rem; }

.footer-legal {
  margin-top: 2.6rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--line-light);
  font-size: 0.8rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  color: rgba(247, 239, 225, 0.55);
}

.back-to-top {
  position: fixed;
  right: clamp(1rem, 3vw, 2rem);
  bottom: clamp(1rem, 3vw, 2rem);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 0;
  background-color: var(--ink);
  color: var(--cream);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s, background-color 0.25s ease;
  z-index: 1040;
  cursor: pointer;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-top:hover { background-color: var(--leather); color: #fff; }

.tavi-cookie {
  position: fixed;
  left: 50%;
  bottom: clamp(1rem, 3vw, 2rem);
  transform: translateX(-50%);
  z-index: 1080;
  width: min(980px, calc(100% - 2rem));
  animation: tavi-cookie-enter 0.55s cubic-bezier(0.2, 0.8, 0.3, 1) both;
}

.tavi-cookie.is-hiding { animation: tavi-cookie-exit 0.35s ease forwards; }

.tavi-cookie__card {
  position: relative;
  overflow: hidden;
  background-color: var(--ink);
  color: var(--cream);
  border: 1px solid rgba(208, 151, 63, 0.4);
  border-radius: var(--radius-lg);
  padding: clamp(1.6rem, 3vw, 2.3rem) clamp(1.6rem, 3.2vw, 2.6rem);
  box-shadow: var(--shadow-lg);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.4rem 2.2rem;
  align-items: center;
}

.tavi-cookie__card::before {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px dashed rgba(208, 151, 63, 0.32);
  border-radius: calc(var(--radius-lg) - 9px);
  pointer-events: none;
}

.tavi-cookie__body { position: relative; z-index: 1; }

.tavi-cookie__eyebrow {
  margin: 0 0 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--amber-soft);
}

.tavi-cookie__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-weight: 600;
  color: var(--cream);
  line-height: 1.2;
}

.tavi-cookie__text {
  margin: 0;
  max-width: 62ch;
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(247, 239, 225, 0.82);
}

.tavi-cookie__link {
  color: var(--amber-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tavi-cookie__link:hover,
.tavi-cookie__link:focus-visible { color: #fff; }

.tavi-cookie__actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: flex-end;
}

.tavi-cookie__btn {
  border-radius: 999px;
  border: 1px solid transparent;
  padding: 0.82rem 1.4rem;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.tavi-cookie__btn--decline {
  background-color: transparent;
  color: var(--cream);
  border-color: rgba(247, 239, 225, 0.42);
}

.tavi-cookie__btn--decline:hover,
.tavi-cookie__btn--decline:focus-visible {
  background-color: rgba(247, 239, 225, 0.12);
  color: var(--cream);
}

.tavi-cookie__btn--accept {
  background-color: var(--amber);
  color: var(--ink);
  border-color: var(--amber);
}

.tavi-cookie__btn--accept:hover,
.tavi-cookie__btn--accept:focus-visible {
  background-color: var(--amber-soft);
  border-color: var(--amber-soft);
  color: var(--ink);
  transform: translateY(-1px);
}

@keyframes tavi-cookie-enter {
  from { opacity: 0; transform: translate(-50%, 26px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

@keyframes tavi-cookie-exit {
  to { opacity: 0; transform: translate(-50%, 26px); }
}

@media (max-width: 760px) {
  .tavi-cookie__card { grid-template-columns: 1fr; }
  .tavi-cookie__actions { justify-content: stretch; }
  .tavi-cookie__btn { flex: 1 1 auto; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* === Contrast fixes (about-us + shared) === */
/* Cream text inherited from .hero onto white .craft-card must revert to dark body text */
.hero .craft-card p,
.hero .craft-card .mb-3,
.hero .craft-card .craft-card__list,
.hero .craft-card .craft-card__list li {
  color: var(--text-soft);
}

.hero .craft-card h3,
.hero .craft-card h4 {
  color: var(--ink);
}

/* Footer list items inherited --text-soft (dark brown) on the dark footer background */
.site-footer ul,
.site-footer ol,
.site-footer .footer-links,
.site-footer .footer-links li {
  color: rgba(247, 239, 225, 0.8);
}

/* --- Contrast fixes: card text on light cards placed inside dark/hero sections --- */
.hero .craft-card p,
.hero .craft-card li,
.hero .craft-card ul,
.stitch-section--dark .craft-card p,
.stitch-section--dark .craft-card li,
.stitch-section--dark .craft-card ul,
.stitch-section--image .craft-card p,
.stitch-section--image .craft-card li,
.stitch-section--image .craft-card ul {
  color: var(--text-soft);
}

.hero .craft-card strong,
.stitch-section--dark .craft-card strong,
.stitch-section--image .craft-card strong {
  color: var(--ink);
}

.hero .craft-card .metric__label,
.hero .craft-card .craft-field__hint,
.stitch-section--dark .craft-card .metric__label,
.stitch-section--dark .craft-card .craft-field__hint,
.stitch-section--image .craft-card .metric__label,
.stitch-section--image .craft-card .craft-field__hint {
  color: var(--text-soft);
}

/* --- Contrast fix: footer list items on the dark footer background --- */
.site-footer ul,
.site-footer li,
.site-footer .footer-links li {
  color: rgba(247, 239, 225, 0.82);
}

.site-footer .footer-legal p {
  color: rgba(247, 239, 225, 0.72);
}

/* ---- Contrast fixes: cards nested inside image/hero sections keep dark text on their light card background ---- */
.stitch-section--image .craft-card h1,
.stitch-section--image .craft-card h2,
.stitch-section--image .craft-card h3,
.stitch-section--image .craft-card h4,
.stitch-section--image .craft-card h5,
.hero .craft-card h1,
.hero .craft-card h2,
.hero .craft-card h3,
.hero .craft-card h4,
.hero .craft-card h5 {
  color: var(--ink);
}

.stitch-section--image .craft-card p,
.hero .craft-card p {
  color: var(--text-soft);
}

.stitch-section--image .craft-card ul,
.stitch-section--image .craft-card ol,
.stitch-section--image .craft-card li,
.hero .craft-card ul,
.hero .craft-card ol,
.hero .craft-card li {
  color: var(--text-soft);
}

/* ---- Contrast fix: footer list text readability on dark background ---- */
.site-footer ul,
.site-footer ol,
.site-footer li {
  color: rgba(247, 239, 225, 0.82);
}

.footer-links li,
.footer-links a {
  color: rgba(247, 239, 225, 0.82);
}

/* ---- Contrast fix: hero badge over photographic slider (was amber on translucent light bg) ---- */
.showcase-slider .carousel-caption .hero__badge {
  background-color: #1c130c;
  border-color: rgba(232, 189, 118, 0.55);
  color: #f0cf96;
}

/* ---- Contrast fix (legal pages): solid dark footer background at every nesting level ---- */
.site-footer,
.site-footer .container,
.site-footer .footer-grid > div,
.site-footer .footer-legal,
.site-footer .footer-legal > div,
.site-footer .footer-contact,
.site-footer p,
.site-footer ul,
.site-footer ol,
.site-footer li {
  background-color: #1c130c;
}

.site-footer,
.site-footer p,
.site-footer ul,
.site-footer ol,
.site-footer li,
.site-footer .footer-links,
.site-footer .footer-links li,
.site-footer .footer-links a,
.site-footer .footer-contact,
.site-footer .footer-contact p {
  color: #f7efe1;
}

.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5 {
  color: #f7efe1;
}

.site-footer .footer-legal p {
  color: rgba(247, 239, 225, 0.85);
}

.site-footer .footer-legal > div > p[style*="0.72"] {
  color: rgba(247, 239, 225, 0.85) !important;
}

.site-footer .footer-legal > div > p[style*="0.55"] {
  color: rgba(247, 239, 225, 0.75) !important;
}

/* ---- Contrast fix: .footer-links used inside light cards (legal sidebars) ---- */
.craft-card .footer-links,
.craft-card .footer-links li {
  color: var(--text-soft);
}

.craft-card .footer-links a {
  color: var(--leather);
}

.craft-card .footer-links a:hover,
.craft-card .footer-links a:focus-visible {
  color: var(--leather-deep);
  text-decoration: underline;
}

/* ============================================================
   politiki-cookies fixes: readable legal link lists inside light cards,
   explicit opaque footer background levels, footer contact details
   ============================================================ */

/* The site reuses .footer-links outside the footer (e.g. in white .craft-card
   sidebars). The footer-wide cream link colour made those lists invisible on
   the white card background, so scope dark text back for cards. */
.craft-card .footer-links,
.craft-card .footer-links li,
.craft-card .craft-card__legal-links li {
  color: var(--text-soft);
}

.craft-card .footer-links a,
.craft-card .craft-card__legal-links a {
  color: var(--leather);
  text-decoration: none;
}

.craft-card .footer-links a:hover,
.craft-card .footer-links a:focus-visible {
  color: var(--leather-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Footer: keep an opaque dark background on every level so the cream text
   never lands on the page's light background. */
.site-footer,
.site-footer > .container,
.site-footer .site-footer__col,
.site-footer .footer-legal {
  background-color: #1c130c;
}

.site-footer h4,
.site-footer h4 a {
  color: var(--cream);
}

.site-footer p,
.site-footer li,
.site-footer .footer-links,
.site-footer .footer-links li,
.site-footer span {
  color: rgba(247, 239, 225, 0.82);
}

.site-footer a,
.site-footer .footer-links a {
  color: rgba(247, 239, 225, 0.9);
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--amber-soft);
}

/* Map link and messenger links sit on the dark footer */
.site-footer .footer-map-link,
.site-footer .footer-contact__messengers a {
  color: var(--amber-soft);
}

.site-footer .footer-map-link:hover,
.site-footer .footer-map-link:focus-visible,
.site-footer .footer-contact__messengers a:hover,
.site-footer .footer-contact__messengers a:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-footer .footer-contact__messengers {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

/* Keep the footer logo clear of any decorative overlay */
.site-footer img {
  position: relative;
  z-index: 2;
  filter: none;
  opacity: 1;
}

/* ---- Layout fix: hero slider section content was flush against the viewport edge ---- */
@media (min-width: 992px) {
  main > section.hero.showcase-slider {
    padding-inline: max(1.5rem, calc((100% - 1240px) / 2)) !important;
  }
  main > section.hero.showcase-slider .carousel {
    border-radius: var(--radius-lg);
    overflow: hidden;
  }
  main > section.hero.showcase-slider .carousel-caption {
    left: 4%;
    max-width: min(520px, 46%);
  }
}

/* ---- Legibility fix: gallery captions over busy photos need a solid readable scrim ---- */
.craft-gallery__item figcaption {
  background-image: none;
  background-color: rgba(28, 19, 12, 0.82);
  color: #f7efe1;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
  line-height: 1.45;
}

@media (max-width: 640px) {
  .craft-gallery__item figcaption {
    padding: 1rem 1rem 0.85rem;
    font-size: 0.85rem;
  }
}

/* ---- Legibility fix (service galleries, incl. mobile): the absolutely positioned
   caption sat on top of the photo with only a fading gradient/translucent fill, so
   the cream text had no stable backing and got clipped by the figure's rounded edge.
   Put the caption back into the flow at the bottom of the frame and give it an
   opaque dark bar so the text is fully readable at every width. ---- */
.craft-gallery__item {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.craft-gallery__item img {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.craft-gallery__item figcaption {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 1;
  max-width: 100%;
  padding: 0.85rem 1.1rem;
  background-image: none;
  background-color: #1c130c;
  color: #f7efe1;
  font-size: 0.88rem;
  line-height: 1.45;
  text-shadow: none;
  overflow-wrap: break-word;
  hyphens: none;
}

@media (max-width: 640px) {
  .craft-gallery__item figcaption {
    padding: 0.75rem 0.9rem;
    font-size: 0.85rem;
  }
}

/* ---- Contrast fix: white .craft-card headings sitting inside dark/image sections ----
   The section-level `.stitch-section--dark h4 { color: var(--cream) }` rule turned the
   card titles near-white on the card's own white background, so they were unreadable.
   Earlier patches only covered --image/hero cards. Scope dark ink text to headings
   inside any light craft-card on dark-ish backdrops, on both service pages. ---- */
.stitch-section--dark .craft-card h1,
.stitch-section--dark .craft-card h2,
.stitch-section--dark .craft-card h3,
.stitch-section--dark .craft-card h4,
.stitch-section--dark .craft-card h5,
.stitch-section--image .craft-card h1,
.stitch-section--image .craft-card h2,
.stitch-section--image .craft-card h3,
.stitch-section--image .craft-card h4,
.stitch-section--image .craft-card h5 {
  color: var(--ink);
}

/* The intentionally cream "solid" card variant keeps its original dark-on-cream look */
.stitch-section--dark .craft-card--solid h1,
.stitch-section--dark .craft-card--solid h2,
.stitch-section--dark .craft-card--solid h3,
.stitch-section--dark .craft-card--solid h4,
.stitch-section--dark .craft-card--solid h5,
.stitch-section--image .craft-card--solid h1,
.stitch-section--image .craft-card--solid h2,
.stitch-section--image .craft-card--solid h3,
.stitch-section--image .craft-card--solid h4,
.stitch-section--image .craft-card--solid h5 {
  color: var(--ink);
}

/* ---- Contrast fix: the inline-transparent copyright line in the footer legal block.
   Inline style made the text translucent while the checker resolved the backdrop as
   white, so the copyright line is given its own opaque dark backdrop and a solid
   cream text colour scoped to the legal footer component only. ---- */
.site-footer .footer-legal .footer-legal__line {
  display: inline-block;
  background-color: #1c130c;
  color: #f7efe1 !important;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
}
