@charset 'utf-8';
/*
Theme Name: Bassein-Child
Theme URI:  http://bassein.themerex.net/
Description: Bassein child theme customized for Firmino Pools, a modern pool coping and tile specialist website.
Author: ThemeREX / Customized by ChatGPT
Author URI:  https://themerex.net/
Template: bassein
Version: 1.1.0
License: GNU General Public License
License URI: license.txt
Tags: flexible-header, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, featured-image-header, featured-images, full-width-template, microformats, post-formats, theme-options, threaded-comments, translation-ready
Text Domain: bassein
*/

/*
 * Firmino Pools modern finish system
 * Purpose: cleaner luxury trade look, smoother interactions, responsive motion, better forms.
 */

:root {
  --fp-ink: #0f1718;
  --fp-ink-soft: #2f3f40;
  --fp-stone: #f4f0e8;
  --fp-stone-2: #e5ded0;
  --fp-sand: #c9a875;
  --fp-bronze: #987346;
  --fp-water: #6f9ea3;
  --fp-white: #ffffff;
  --fp-shadow: 0 24px 70px rgba(15, 23, 24, 0.14);
  --fp-shadow-soft: 0 14px 40px rgba(15, 23, 24, 0.10);
  --fp-radius: 22px;
  --fp-radius-sm: 14px;
  --fp-speed: 260ms;
  --fp-ease: cubic-bezier(.2,.75,.25,1);
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--fp-ink-soft);
  background: var(--fp-stone);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(circle at 12% 12%, rgba(111,158,163,.16), transparent 32vw),
    radial-gradient(circle at 88% 8%, rgba(201,168,117,.16), transparent 28vw),
    linear-gradient(180deg, rgba(255,255,255,.76), rgba(244,240,232,.92));
}

a,
button,
input[type="submit"],
.sc_button,
.scheme_default .sc_button,
.scheme_dark .sc_button {
  transition: transform var(--fp-speed) var(--fp-ease), box-shadow var(--fp-speed) var(--fp-ease), background-color var(--fp-speed) var(--fp-ease), color var(--fp-speed) var(--fp-ease), border-color var(--fp-speed) var(--fp-ease), opacity var(--fp-speed) var(--fp-ease);
}

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

/* Header polish */
.top_panel,
.top_panel_wrap,
header.top_panel {
  backdrop-filter: saturate(150%) blur(12px);
  -webkit-backdrop-filter: saturate(150%) blur(12px);
}

.fp-smart-header {
  transition: background-color 240ms ease, box-shadow 240ms ease, transform 240ms ease;
}

.fp-smart-header.is-scrolled {
  background: rgba(255,255,255,.88) !important;
  box-shadow: 0 12px 34px rgba(15,23,24,.08);
}

.menu_main_nav > li > a,
.scheme_default .menu_main_nav > li > a,
.scheme_dark .menu_main_nav > li > a {
  letter-spacing: .02em;
  position: relative;
}

.menu_main_nav > li > a::after {
  content: "";
  position: absolute;
  left: 1.1em;
  right: 1.1em;
  bottom: .75em;
  height: 2px;
  transform: scaleX(0);
  transform-origin: right;
  background: currentColor;
  opacity: .7;
  transition: transform var(--fp-speed) var(--fp-ease);
}

.menu_main_nav > li > a:hover::after,
.menu_main_nav > li.current-menu-item > a::after,
.menu_main_nav > li.current-menu-parent > a::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Hero and title sections */
.top_panel_title,
.fp-hero {
  position: relative;
  overflow: hidden;
  background-color: var(--fp-ink);
}

.top_panel_title::before,
.fp-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  transform: translateY(var(--fp-hero-shift, 0));
  background:
    linear-gradient(110deg, rgba(15,23,24,.82), rgba(15,23,24,.34) 52%, rgba(15,23,24,.12)),
    radial-gradient(circle at 82% 26%, rgba(201,168,117,.22), transparent 32%);
  z-index: 0;
}

.top_panel_title > *,
.fp-hero > * {
  position: relative;
  z-index: 1;
}

.top_panel_title .page_title,
.fp-hero h1,
h1, h2, h3, h4 {
  color: var(--fp-ink);
  letter-spacing: -.035em;
}

.top_panel_title .page_title,
.fp-hero h1 {
  color: var(--fp-white);
  max-width: 920px;
}

.sc_item_title,
.elementor-heading-title,
.wp-block-heading {
  letter-spacing: -.035em;
}

.sc_item_subtitle,
.scheme_default .sc_item_subtitle {
  color: var(--fp-bronze);
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 700;
}

/* Buttons */
.sc_button,
.wp-block-button__link,
input[type="submit"],
button[type="submit"],
.elementor-button {
  border-radius: 999px !important;
  box-shadow: 0 14px 34px rgba(15,23,24,.12);
  overflow: hidden;
  position: relative;
}

.sc_button::before,
.wp-block-button__link::before,
.elementor-button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.28) 45%, transparent 70%);
  transform: translateX(-120%);
  transition: transform 520ms var(--fp-ease);
}

.sc_button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover,
.elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 48px rgba(15,23,24,.18);
}

.sc_button:hover::before,
.wp-block-button__link:hover::before,
.elementor-button:hover::before {
  transform: translateX(120%);
}

/* Cards and content blocks */
.sc_services_item,
.sc_icons_item,
.sc_blogger_item,
.post_item,
.wp-block-column,
.vc_column-inner,
.elementor-widget-container,
.fp-card {
  border-radius: var(--fp-radius);
}

.sc_services_item,
.sc_icons_item,
.sc_blogger_item,
.fp-card {
  background: rgba(255,255,255,.74);
  box-shadow: var(--fp-shadow-soft);
  border: 1px solid rgba(15,23,24,.08);
  overflow: hidden;
}

.sc_services_item:hover,
.sc_icons_item:hover,
.sc_blogger_item:hover,
.fp-card:hover {
  box-shadow: var(--fp-shadow);
}

.fp-motion-card {
  transform: perspective(900px) rotateX(var(--fp-rotate-x, 0deg)) rotateY(var(--fp-rotate-y, 0deg)) translateY(0);
  transition: transform 220ms var(--fp-ease), box-shadow 220ms var(--fp-ease);
  will-change: transform;
}

.fp-motion-card:hover {
  transform: perspective(900px) rotateX(var(--fp-rotate-x, 0deg)) rotateY(var(--fp-rotate-y, 0deg)) translateY(-4px);
}

.fp-motion-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(circle at var(--fp-glow-x, 50%) var(--fp-glow-y, 50%), rgba(201,168,117,.22), transparent 34%);
  transition: opacity 220ms ease;
}

.fp-motion-card:hover::after {
  opacity: 1;
}

/* Image treatment */
img,
.post_featured,
.wp-block-image img,
.gallery-item img,
.elementor-image img {
  border-radius: var(--fp-radius-sm);
}

.post_featured img,
.wp-block-image img,
.gallery-item img,
.elementor-image img,
.sc_services_item_thumb img {
  transition: transform 520ms var(--fp-ease), filter 520ms var(--fp-ease);
}

.post_featured:hover img,
.wp-block-image:hover img,
.gallery-item:hover img,
.elementor-image:hover img,
.sc_services_item:hover .sc_services_item_thumb img {
  transform: scale(1.035);
  filter: saturate(1.04) contrast(1.02);
}

/* Luxury section helpers for page builders */
.fp-section-dark {
  color: rgba(255,255,255,.82);
  background:
    radial-gradient(circle at 15% 15%, rgba(111,158,163,.18), transparent 28%),
    linear-gradient(135deg, #0f1718, #172628);
  border-radius: calc(var(--fp-radius) + 10px);
  overflow: hidden;
}

.fp-section-dark h1,
.fp-section-dark h2,
.fp-section-dark h3,
.fp-section-dark h4,
.fp-section-dark .sc_item_title {
  color: var(--fp-white);
}

.fp-kicker {
  color: var(--fp-bronze);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 800;
  font-size: .78rem;
}

.fp-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.fp-stat {
  padding: clamp(18px, 3vw, 28px);
  border-radius: var(--fp-radius);
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(15,23,24,.08);
  box-shadow: var(--fp-shadow-soft);
}

.fp-stat strong {
  display: block;
  color: var(--fp-ink);
  font-size: clamp(1.45rem, 3vw, 2.5rem);
  line-height: 1;
}

/* Forms */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="date"],
select,
textarea,
.wpcf7 input,
.wpcf7 textarea,
.elementor-field {
  border-radius: 14px !important;
  border: 1px solid rgba(15,23,24,.13) !important;
  background: rgba(255,255,255,.88) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
  transition: border-color var(--fp-speed) ease, box-shadow var(--fp-speed) ease, transform var(--fp-speed) ease;
}

input:focus,
select:focus,
textarea:focus,
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.elementor-field:focus {
  outline: none !important;
  border-color: rgba(152,115,70,.72) !important;
  box-shadow: 0 0 0 4px rgba(201,168,117,.18) !important;
}

.fp-field-active {
  transform: translateY(-1px);
}

/* Scroll reveal */
.fp-js-ready .fp-motion-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 620ms var(--fp-ease), transform 620ms var(--fp-ease);
  transition-delay: var(--fp-delay, 0ms);
}

.fp-js-ready .fp-motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Portfolio/gallery polish */
.gallery,
.wp-block-gallery {
  gap: 18px !important;
}

.gallery-item,
.wp-block-gallery .wp-block-image {
  overflow: hidden;
  border-radius: var(--fp-radius-sm);
  box-shadow: var(--fp-shadow-soft);
}

/* Responsive tuning */
@media (max-width: 1024px) {
  .fp-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu_main_nav > li > a::after {
    display: none;
  }
}

@media (max-width: 767px) {
  :root {
    --fp-radius: 18px;
    --fp-radius-sm: 12px;
  }

  .fp-stat-grid {
    grid-template-columns: 1fr;
  }

  .sc_button,
  .wp-block-button__link,
  input[type="submit"],
  button[type="submit"],
  .elementor-button {
    width: 100%;
    text-align: center;
  }

  .top_panel_title .page_title,
  .fp-hero h1 {
    font-size: clamp(2rem, 11vw, 3.35rem);
  }
}

/* Accessibility: honor reduced motion */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }

  .fp-js-ready .fp-motion-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
