/* Baltic Clean — SEO pages, photo galleries, Google review block (scripts/seo_boost.py). */
:root {
  --bcx-teal: #0f766e;
  --bcx-teal-600: #0d9488;
  --bcx-teal-50: #f0fdfa;
  --bcx-teal-100: #ccfbf1;
  --bcx-ink: #0f172a;
  --bcx-text: #334155;
  --bcx-muted: #64748b;
  --bcx-line: #e2e8f0;
  --bcx-bg: #f8fafc;
  --bcx-card: #ffffff;
  --bcx-gold: #f59e0b;
  --bcx-radius: 1.25rem;
  --bcx-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 118, 110, .07);
}

.bcx-wrap { width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .bcx-wrap { padding: 0 1.5rem; } }
.bcx-narrow { max-width: 52rem; }

/* ---------- hero ---------- */
.bcx-hero {
  padding: 7.5rem 0 3.5rem;
  background:
    radial-gradient(60rem 30rem at 85% -10%, rgba(45, 212, 191, .28), transparent 60%),
    linear-gradient(160deg, #0f766e 0%, #115e59 55%, #134e4a 100%);
  color: #fff;
}
.bcx-crumbs { display: flex; flex-wrap: wrap; gap: .35rem; font-size: .85rem; color: rgba(255, 255, 255, .75); margin-bottom: 1.25rem; padding: 0; list-style: none; }
.bcx-crumbs li + li::before { content: "›"; margin-right: .35rem; opacity: .6; }
.bcx-crumbs a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.bcx-kicker { display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .2); padding: .45rem .9rem; border-radius: 999px; margin-bottom: 1rem; }
.bcx-hero h1 { font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.1; font-weight: 800; letter-spacing: -.02em; margin: 0 0 1rem; max-width: 48rem; }
.bcx-lead { font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.6; color: rgba(255, 255, 255, .9); max-width: 46rem; margin: 0 0 1.75rem; }
.bcx-facts { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.75rem; padding: 0; list-style: none; }
.bcx-facts li { font-size: .9rem; font-weight: 600; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); border-radius: .75rem; padding: .5rem .85rem; }
.bcx-facts li::before { content: "✓ "; color: #5eead4; }
.bcx-actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* ---------- buttons ---------- */
.bcx-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3rem; padding: .8rem 1.4rem; border-radius: 999px; font-weight: 700; font-size: 1rem; line-height: 1.2; transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease; text-decoration: none; }
.bcx-btn:hover { transform: translateY(-1px); }
.bcx-btn:focus-visible { outline: 3px solid #5eead4; outline-offset: 2px; }
.bcx-btn-light { background: #fff; color: var(--bcx-teal); }
.bcx-btn-light:hover { background: var(--bcx-teal-50); }
.bcx-btn-ghost { border: 2px solid rgba(255, 255, 255, .7); color: #fff; }
.bcx-btn-ghost:hover { background: rgba(255, 255, 255, .1); }
.bcx-btn-wa { background: #25d366; color: #073b1f; }
.bcx-btn-teal { background: var(--bcx-teal-600); color: #fff; }
.bcx-btn-teal:hover { background: var(--bcx-teal); }
.bcx-btn-outline { border: 2px solid var(--bcx-teal-600); color: var(--bcx-teal); background: #fff; }

/* ---------- content ---------- */
.bcx-main { background: var(--bcx-bg); color: var(--bcx-text); }
.bcx-section { padding: 3.25rem 0; }
.bcx-section + .bcx-section { padding-top: 0; }
.bcx-h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.2; font-weight: 800; color: var(--bcx-ink); letter-spacing: -.01em; margin: 0 0 1.25rem; }
.bcx-p { font-size: 1.05rem; line-height: 1.75; margin: 0 0 1rem; max-width: 52rem; }
.bcx-p a, .bcx-faq a, .bcx-list a, .bcx-steps a { color: var(--bcx-teal); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(13, 148, 136, .35); text-underline-offset: 3px; }
.bcx-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; max-width: 52rem; }
.bcx-list li { position: relative; padding: .9rem 1rem .9rem 2.9rem; background: var(--bcx-card); border: 1px solid var(--bcx-line); border-radius: 1rem; line-height: 1.6; }
.bcx-list li::before { content: ""; position: absolute; left: 1rem; top: 1.05rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--bcx-teal-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%230f766e'%3E%3Cpath d='M8.1 13.4 4.7 10l-1.2 1.2 4.6 4.6 9-9-1.2-1.2z'/%3E%3C/svg%3E") center/.85rem no-repeat; }
.bcx-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.bcx-card { background: var(--bcx-card); border: 1px solid var(--bcx-line); border-radius: var(--bcx-radius); padding: 1.4rem; box-shadow: var(--bcx-shadow); }
.bcx-card h3 { font-size: 1.15rem; font-weight: 700; color: var(--bcx-ink); margin: 0 0 .5rem; }
.bcx-card p { margin: 0; line-height: 1.65; }
.bcx-steps { list-style: none; counter-reset: bcx; padding: 0; margin: 0; display: grid; gap: .9rem; max-width: 52rem; }
.bcx-steps li { counter-increment: bcx; position: relative; padding: 1rem 1rem 1rem 4rem; background: var(--bcx-card); border: 1px solid var(--bcx-line); border-radius: 1rem; line-height: 1.6; }
.bcx-steps li::before { content: counter(bcx); position: absolute; left: 1rem; top: .9rem; width: 2.1rem; height: 2.1rem; border-radius: .7rem; background: var(--bcx-teal-600); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }

/* ---------- services hub ---------- */
.bcx-svc { display: flex; flex-direction: column; gap: .4rem; text-decoration: none; background: var(--bcx-card); border: 1px solid var(--bcx-line); border-radius: var(--bcx-radius); padding: 1.25rem 1.3rem; box-shadow: var(--bcx-shadow); transition: border-color .15s, transform .15s; color: inherit; }
.bcx-svc:hover { border-color: #5eead4; transform: translateY(-2px); }
.bcx-svc strong { color: var(--bcx-ink); font-size: 1.08rem; }
.bcx-svc span { font-size: .95rem; line-height: 1.55; color: var(--bcx-muted); }
.bcx-svc em { font-style: normal; font-weight: 700; color: var(--bcx-teal); font-size: .9rem; margin-top: auto; }

/* ---------- gallery ---------- */
.bcx-gallery { padding: 3rem 0; background: #fff; border-top: 1px solid var(--bcx-line); }
.bcx-gallery-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .bcx-gallery-grid { grid-template-columns: repeat(3, 1fr); } }
.bcx-fig { margin: 0; background: var(--bcx-bg); border-radius: var(--bcx-radius); overflow: hidden; border: 1px solid var(--bcx-line); }
.bcx-fig img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.bcx-fig figcaption { font-size: .9rem; color: var(--bcx-text); padding: .75rem 1rem; font-weight: 600; }

/* ---------- FAQ ---------- */
.bcx-faq { display: grid; gap: .75rem; max-width: 52rem; }
.bcx-faq details { background: var(--bcx-card); border: 1px solid var(--bcx-line); border-radius: 1rem; padding: 0 1.2rem; }
.bcx-faq details[open] { border-color: #99f6e4; box-shadow: var(--bcx-shadow); }
.bcx-faq summary { cursor: pointer; list-style: none; padding: 1.05rem 2rem 1.05rem 0; font-weight: 700; color: var(--bcx-ink); position: relative; line-height: 1.45; }
.bcx-faq summary::-webkit-details-marker { display: none; }
.bcx-faq summary::after { content: "+"; position: absolute; right: 0; top: .85rem; font-size: 1.5rem; line-height: 1; color: var(--bcx-teal-600); transition: transform .2s; }
.bcx-faq details[open] summary::after { transform: rotate(45deg); }
.bcx-faq .bcx-faq-a { padding: 0 0 1.1rem; line-height: 1.7; margin: 0; }

/* ---------- contact ---------- */
.bcx-contact-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .bcx-contact-grid { grid-template-columns: 1fr 1.2fr; } }
.bcx-nap { display: grid; gap: .9rem; margin: 0; }
.bcx-nap dt { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bcx-muted); font-weight: 700; }
.bcx-nap dd { margin: .15rem 0 0; font-size: 1.1rem; font-weight: 600; color: var(--bcx-ink); }
.bcx-nap a { color: var(--bcx-teal); }
.bcx-map { border: 0; width: 100%; height: 100%; min-height: 22rem; border-radius: var(--bcx-radius); background: var(--bcx-teal-50); }
.bcx-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.bcx-chips a { font-size: .9rem; padding: .45rem .85rem; border-radius: 999px; background: #fff; border: 1px solid var(--bcx-line); color: var(--bcx-teal); font-weight: 600; text-decoration: none; }
.bcx-chips a:hover { border-color: #5eead4; }

/* ---------- Google review + CTA ---------- */
.bcx-review { display: grid; gap: 1rem; align-items: center; grid-template-columns: 1fr; background: #fff; border: 1px solid var(--bcx-line); border-radius: var(--bcx-radius); padding: 1.5rem; box-shadow: var(--bcx-shadow); }
@media (min-width: 768px) { .bcx-review { grid-template-columns: auto 1fr auto; } }
.bcx-stars { color: var(--bcx-gold); font-size: 1.5rem; letter-spacing: .1em; line-height: 1; }
.bcx-review h2, .bcx-review h3 { margin: 0 0 .25rem; font-size: 1.25rem; color: var(--bcx-ink); }
.bcx-review p { margin: 0; line-height: 1.6; }
.bcx-review-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.bcx-cta { background: linear-gradient(135deg, #0d9488, #0f766e); color: #fff; border-radius: 1.75rem; padding: 2.25rem 1.5rem; text-align: center; }
.bcx-cta h2 { color: #fff; margin: 0 0 .5rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.bcx-cta p { margin: 0 auto 1.4rem; max-width: 36rem; color: rgba(255, 255, 255, .9); line-height: 1.6; }
.bcx-cta .bcx-actions { justify-content: center; }
.bcx-related { display: flex; flex-wrap: wrap; gap: .6rem; }
.bcx-related a { padding: .6rem 1rem; border-radius: .9rem; background: #fff; border: 1px solid var(--bcx-line); color: var(--bcx-teal); font-weight: 600; text-decoration: none; }
.bcx-updated { font-size: .85rem; color: var(--bcx-muted); margin-top: 1.5rem; }

/* ---------- footer review strip (all pages) ---------- */
.bc-footer-review { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .9rem 1.25rem; margin: 1.75rem 0 0; padding: 1.1rem 1.25rem; border-radius: 1rem; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.bc-footer-review-text { display: flex; align-items: center; gap: .75rem; color: inherit; font-weight: 600; }
.bc-footer-review-text .bcx-stars { font-size: 1.15rem; }
.bc-footer-review-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.bc-footer-review-btn { display: inline-flex; align-items: center; gap: .45rem; padding: .6rem 1.05rem; border-radius: 999px; font-weight: 700; font-size: .92rem; background: #fff; color: #0f766e !important; text-decoration: none; }
.bc-footer-review-btn.is-ghost { background: transparent; color: inherit !important; border: 1px solid rgba(255, 255, 255, .35); }

@media (prefers-reduced-motion: reduce) {
  .bcx-btn, .bcx-svc, .bcx-faq summary::after { transition: none; }
  .bcx-btn:hover, .bcx-svc:hover { transform: none; }
}

/* ---------- before / after carousel (home pages) ---------- */
.bcba { padding: 3.5rem 0; background: linear-gradient(180deg, #f0fdfa 0%, #fff 100%); border-top: 1px solid var(--bcx-line); }
.bcba-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.bcba-head .bcx-h2 { margin-bottom: .4rem; }
.bcba-kicker { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bcx-teal); background: var(--bcx-teal-100); border-radius: 999px; padding: .35rem .8rem; margin-bottom: .75rem; }
.bcba-sub { margin: 0; color: var(--bcx-muted); max-width: 40rem; line-height: 1.6; }
.bcba-nav { display: none; gap: .5rem; flex-shrink: 0; }
@media (min-width: 640px) { .bcba-nav { display: flex; } }
.bcba-btn { width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid var(--bcx-line); background: #fff; color: var(--bcx-teal); font-size: 1.8rem; line-height: 1; cursor: pointer; box-shadow: var(--bcx-shadow); display: flex; align-items: center; justify-content: center; padding-bottom: .2rem; }
.bcba-btn:hover:not(:disabled) { border-color: #5eead4; }
.bcba-btn:disabled { opacity: .35; cursor: default; }
.bcba-btn:focus-visible, .bcba-track:focus-visible, .bcba-dot:focus-visible { outline: 3px solid #5eead4; outline-offset: 2px; }
.bcba-track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: .25rem .1rem 1rem; overscroll-behavior-x: contain; }
.bcba-track::-webkit-scrollbar { display: none; }
@media (min-width: 1024px) { .bcba-track { grid-auto-columns: calc(50% - .5rem); } }
.bcba-slide { margin: 0; scroll-snap-align: start; background: #fff; border: 1px solid var(--bcx-line); border-radius: var(--bcx-radius); padding: .6rem; box-shadow: var(--bcx-shadow); }
.bcba-pair { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.bcba-ph { position: relative; border-radius: .9rem; overflow: hidden; background: var(--bcx-bg); aspect-ratio: 4 / 5; }
.bcba-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bcba-tag { position: absolute; left: .5rem; top: .5rem; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: .3rem .6rem; border-radius: 999px; color: #fff; background: rgba(15, 23, 42, .72); backdrop-filter: blur(4px); }
.bcba-tag.is-after { background: var(--bcx-teal-600); }
.bcba-slide figcaption { padding: .75rem .4rem .25rem; font-weight: 600; color: var(--bcx-ink); line-height: 1.45; }
.bcba-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .5rem; }
.bcba-dots { display: flex; flex-wrap: wrap; gap: .4rem; }
.bcba-dot { width: .65rem; height: .65rem; border-radius: 999px; border: 0; padding: 0; background: #cbd5e1; cursor: pointer; transition: width .2s, background-color .2s; }
.bcba-dot[aria-current="true"] { width: 1.6rem; background: var(--bcx-teal-600); }
@media (prefers-reduced-motion: reduce) { .bcba-track { scroll-behavior: auto; } .bcba-dot { transition: none; } }
