﻿/* ============================================================================
   RAUSCH — CUSTOM CSS (260.catalog)
   BLOCCO 1/3 — BASE, TIPOGRAFIA, LAYOUT, HEADER, HERO, SLIDER
   ============================================================================
   Questo blocco contiene:
   - Font-face e tipografia globale
   - Reset e fix generali
   - Layout e griglia
   - Header, menu, navigazione
   - Hero e slider
   ========================================================================== */


/* ============================================================================
   1. FONT-FACE & BASE TYPOGRAPHY
   ========================================================================== */

@font-face {
  font-family: 'titular-regular-webfont';
  src: url('/includes/templates/260.catalog/fonts/titular_regular_macroman/titular-regular-webfont.eot');
  src: url('/includes/templates/260.catalog/fonts/titular_regular_macroman/titular-regular-webfont.woff2') format('woff2'),
       url('/includes/templates/260.catalog/fonts/titular_regular_macroman/titular-regular-webfont.woff') format('woff'),
       url('/includes/templates/260.catalog/fonts/titular_regular_macroman/titular-regular-webfont.ttf') format('truetype'),
       url('/includes/templates/260.catalog/fonts/titular_regular_macroman/titular-regular-webfont.svg') format('svg');
  font-weight: normal;
  font-style: normal;
  letter-spacing: 0.02rem !important;
}

@font-face {
  font-family: 'titular-bold-webfont';
  src: url('/includes/templates/260.catalog/fonts/titular_bold_macroman/titular-bold-webfont.eot');
  src: url('/includes/templates/260.catalog/fonts/titular_bold_macroman/titular-bold-webfont.woff2') format('woff2'),
       url('/includes/templates/260.catalog/fonts/titular_bold_macroman/titular-bold-webfont.woff') format('woff'),
       url('/includes/templates/260.catalog/fonts/titular_bold_macroman/titular-bold-webfont.ttf') format('truetype'),
       url('/includes/templates/260.catalog/fonts/titular_bold_macroman/titular-bold-webfont.svg') format('svg');
  font-weight: normal;
  font-style: normal;
  letter-spacing: 0.02rem !important;
}

/* Tipografia globale */
html, body, #header {
  color: #292119 !important;
  font-family: 'titular-regular-webfont', Helvetica Neue, Helvetica, sans-serif;
  font-size: 1.26rem;
  font-weight: 100 !important;
  line-height: unset !important;
}


/* ============================================================================
   2. GLOBAL RESET & FIXES
   ========================================================================== */

hr {
  margin: 8px 0 4px 0;
}

b, strong {
  font-weight: 600;
}

a:visited,
a:active {
  color: rgba(185, 155, 100);
}

a:active {
  font-weight: bold;
}

.code {
  display: none !important;
}

.fa-fw {
  width: 4px;
}

ul.list-unstyled li {
    padding: 2px 0;
}

/* ============================================================================
   3. LAYOUT & GRID
   ========================================================================== */

.fourteen-forty {
  min-width: 300px !important;
  max-width: 1440px;
}

#page {
  background: rgba(255, 255, 255, 0.7);
}

#sidebar {
  background-color: rgba(255, 255, 255, 0.9);
  padding: 8px;
  border-radius: 10px;
}

@media (min-width: 992px) {
  .col-md-8,
  .col-md-9 {
    padding: 0 12px 0 16px;
  }

  .col-md-9 {
    background: rgba(255, 255, 255, 0.9);
    border-radius: 10px;
  }
}


/* ============================================================================
   4. HEADER & NAVIGATION
   ========================================================================== */

#header {
  width: 100%;
}

.navbar-nav .dropdown-menu .nav-link {
  background: white !important;
}

#site-menu .navbar .dropdown-menu .nav-link:hover {
  background-color: rgba(234, 145, 75, 0.3) !important;
}

.navbar-header form[name=search_form] .input-group {
  background-color: transparent;
}

@media (min-width: 400px) {
  .navbar-header .logotype img {
    max-width: 100% !important;
    max-height: 100px !important;
  }
}

.navbar-toggle .icon-bar {
  background-color: rgba(185, 155, 100);
}

.navbar .dropdown-menu li > a {
  padding: 2px 20px;
}

.dropdown .dropdown-menu {
    min-width: 240px;
}

/* ============================================================================
   5. HERO & SLIDER
   ========================================================================== */

/* Hero */
header.hero {
  position: relative !important;
}

.hero h1,
.hero .subheadline {
  margin-bottom: 10px;
}

/* Stile H2 del blocco HERO */
.hero-intro-title {
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.2;
}

/* Slider */
#box-slides.box {
  padding-top: 0 !important;
}

#box-slides .carousel-inner {
  min-height: 260px;
}

.carousel-caption {
  right: 0;
  left: 0;
  margin: 0;
  text-shadow: none;
  font-size: 1.4rem;
  line-height: 1.5rem;
  color: #292119;
  background-color: white;
  padding: 20px 20px 0 20px;
  border-radius: 0 40px;
  border-style: solid;
  border-width: 0.6px;
  border-color: #292119;
  position: static;
}

/* Fix overlay slider su Android 15 e device Oppo/Xiaomi */
.hero {
  margin-bottom: 0 !important;
  position: relative;
  z-index: 50;
}

#box-slides {
  display: block;
  position: relative;
  clear: both;
  margin-top: 0;
}

@media (max-width: 768px) {
  #box-slides .carousel-inner .item {
    min-height: clamp(220px, 40vw, 320px);
  }

  .hero {
    padding-top: clamp(16px, 5vw, 32px);
    padding-bottom: clamp(20px, 6vw, 36px);
  }
}

.micro-desc {
    font-size: 0.9em;
    color: var(--default-text-color);
    margin-top: 0;
    margin-bottom: .75rem;
    line-height: 0;
}

/* ============================================================================
   6. CATEGORY PAGE
   ========================================================================== */

.category-intro p {
  margin-bottom: 0.35rem !important;
}

.category-intro {
  margin-bottom: calc(var(--gutter-y) * 0.3);
}

.category-intro > :last-child {
  margin-bottom: 0 !important;
}

.category-micro-desc {
    font-size: 1.26rem;
    line-height: 1rem;
    font-weight: bold;
}

/* Blocco funzionalità FULL/REDUCED */
.category-features {
  margin-top: calc(var(--gutter-y) * 0.15) !important;
  margin-bottom: calc(var(--gutter-y) * 1.5);
}

/* Titolo della voce (FULL/REDUCED) — versione consolidata */
.service-feature-title {
  font-size: 1.32rem;
  line-height: 1.35rem;
  color: #292119;
  font-weight: 500; 
  margin: 0 0 2px 0 !important;
}

/* Descrizione della voce — avvicinata al titolo */
.service-feature p,
.service-feature-text {
  margin-top: 2px !important;
  line-height: 1.45rem;
  max-width: 720px; 
}

.service-feature:last-child {
  margin-bottom: 0;
}

/* Spazio sopra la sezione prodotti */
.card > .card-body > h2 {
  margin-top: calc(var(--gutter-y) * 1.2);
}

/* Raffinamento armonico del blocco funzionalità (FULL/REDUCED) */
.service-features-list {
  margin-top: 6px;                 /* avvicina la lista al titolo */
}

.service-feature {
  margin-bottom: 1.2em;
  margin: 0 0 6px 0 !important;     /* voce più compatta */
  padding: 2px 0;                   /* ritmo verticale più elegante */
}

.service-feature + .service-feature {
  margin-top: 4px !important;       /* separazione minima ma leggibile */
}

/* Titolo del blocco funzionalità — armonizzazione verticale */
.category-features-title {
  margin-bottom: 0.35rem !important;
}

/* Riduce anche il margine del contenitore quando ci sono solo 2 voci */
.category-features .service-feature:nth-child(2):last-child {
  margin-bottom: calc(var(--gutter-y) * 0.4) !important;
}

/* Riduce lo spazio sopra il blocco funzionalità SOLO quando ci sono 2 voci */
.category-features .service-feature:nth-child(3) {
  margin-top: 0 !important; /* la terza voce non esiste → scatta la regola */
}

/* Riduce lo spazio tra titolo e lista funzionalità */
.category-features-list {
  margin-top: 0.15rem !important;
}

/* ============================================================================
   7. PRODUCT PAGE
   ========================================================================== */

#box-product .stock-available .value {
  color: rgba(185, 155, 100);
}

#box-product .technical-data {
  columns: auto !important;
}

div#tab-technical-data th {
  font-weight: 100 !important;
  font-style: italic;
}

/* Immagine principale prodotto */
#box-product .main-image {
  border-style: solid;
  border-width: 1.5px;
  border-color: rgba(185, 155, 100);
  border-radius: 40px 0px;
  padding: 0;
  margin: 0;
  width: fit-content;
}

#box-product .main-image .sticker {
  color: #fff;
  font-size: 1.8rem;
  line-height: 1.6rem;
  font-weight: bold;
  top: 8px;
  left: -60px;
  padding: 5px 10px;
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(-45deg);
  width: 200px;
}

#box-product .main-image .sticker.sale {
  background: rgba(185, 155, 100);
}

.product-hero img.product-main-image {
  width: 100%;
  height: auto;
  display: block;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.product-hero,
.product-hero .main-image,
.product-hero img.product-main-image {
  margin: 0 !important;
  padding: 0 !important;
}

/* Forza l'immagine a non generare spazi extra */
.product-hero .main-image,
.product-hero img.product-main-image {
  display: block !important;
  line-height: 0 !important;
}

/* Rimuove eventuali spazi causati da Bootstrap */
.product-hero .img-responsive {
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

.product-hero .row,
.product-hero .col-xs-12,
.product-hero .col-xs-4 {
  margin: 0 !important;
  padding: 0 !important;
}

.service-price-block del,
.service-price-block .regular-price,
.service-price-block .recommended-price {
  display: none !important;
}

@media (min-width: 992px) {
  .product-hero img.product-main-image {
    margin: 0;
  }
}

@media (min-width: 992px) {
  .service-quantity-wrapper {
    max-width: 300px;
  }
}

.product-content {
  margin-top: 2rem;
}

.product-buy-button {
  width: 100%;
  display: block;
}

.product-features {
  margin-top: 3rem;
}

/* Forza descrizione e dettagli tecnici a tutta pagina */
.service-description-block,
.service-details-block,
.service-description-block .col-md-6,
.service-details-block .col-md-6 {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

/* Forza descrizione e dettagli tecnici a tutta larghezza */
.card .card-body .row > div {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

/* Elimina padding laterale */
.card .card-body .row > div[class*="col-"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Nasconde il campo numerico in ogni caso */
.service-quantity input,
.service-quantity .form-control,
.service-quantity .input-group input {
  display: none !important;
}

/* Riduce la larghezza del blocco su desktop */
@media (min-width: 992px) {
  .service-quantity-wrapper {
    max-width: 280px !important;
  }
}

.sticker.new {
    font-size: 35px !important;
}

/* ============================================================================
   8. BOXES (SIDEBAR, FILTRI, INFO, COOKIE NOTICE)
   ========================================================================== */

/* Sidebar */
#sidebar {
  background-color: rgba(255, 255, 255, 0.9);
  padding: 8px;
  border-radius: 10px;
}

/* Box informazioni */
#box-information {
  padding: 10px;
  background-color: white;
}

#box-information li a {
  color: inherit;
}

#box-information li a.active,
#box-information li a:hover {
  color: #2e9cd4;
}

/* Box filtri */
#box-filter .filter .dropdown-menu li {
  margin: 0 !important;
}

#box-filter .token[data-group=manufacturer] {
  background: rgba(234, 145, 75, 0.7) !important;
}

/* Cookie notice */
#box-cookie-notice {
  background-color: #ffd15f;
  background-image: url(/includes/templates/260.catalog/images/home-sections-image.png);
  background-repeat: no-repeat;
  background-size: contain;
  padding: 8px 16px 4px 8px;
  border-radius: 0 40px;
  font-size: 1.2rem;
  letter-spacing: 0.5px;
  line-height: 1.2rem;
  color: #292119;
  text-align: center;
  box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.7);
}

#box-cookie-notice button {
  margin: 0 0.5em;
  border-block-width: 2px;
  letter-spacing: 1px;
}

#box-cookie-notice .notice {
  margin-bottom: 8px;
}


/* ============================================================================
   9. LISTING (PRODOTTI, CATEGORIE, MANUFACTURERS)
   ========================================================================== */

/* Contenitori listing */
.listing .product,
.listing .category,
.listing .manufacturer,
.listing .product-column,
.listing .product-row {
  border-style: solid;
  border-width: 0.6px;
  border-color: rgba(185, 155, 100);
  border-radius: 0 40px;
  background-color: white;
}

@media (min-width: 769px) {
  .listing .category,
  .listing .manufacturer,
  .listing .product-column,
  .listing .product-row {
    min-height: 280px;
  }
  .listing .product {
    min-height: 380px;
  }
}

.listing.columns .product .info {
    padding: 6px;
}

.listing .product .manufacturer-name {
    line-height: 260%;
}

/* Nome prodotto */
.listing .product .name,
.listing .product-column .name,
.listing .product-row .name {
  font-size: 1.4rem;
  height: unset;
}

.short-description {
    line-height: 1.4rem;
    padding-top: 10px;
}

/* Sticker */
.listing .product-column .image-wrapper .sticker,
.listing .product-row .image-wrapper .sticker {
  font-size: 1.6rem;
  letter-spacing: 0.04rem !important;
  padding-top: 8px;
  top: 12px;
}

.listing .product-column .image-wrapper .sticker.new,
.listing .product-row .image-wrapper .sticker.new {
  background: rgba(185, 155, 100);
}

/* Immagini */
.thumbnail > img,
img.image,
img.img-responsive,
.thumbnail a > img {
  aspect-ratio: auto !important;
}

.thumbnail {
  border: none;
  padding: 0;
  background-color: transparent;
}

/* Listing prodotti in righe */
.listing.rows .product {
  min-height: 120px;
}

.listing .product-row .image {
  max-width: 200px;
}

.listing .product-row .info {
  top: 8px;
  left: 210px;
  padding: 0;
}

.listing .product-row .price-wrapper {
  font-size: 1.4rem;
}

/* Listing prodotti in colonne */
.listing.columns .product .image {
  padding-bottom: 12px;
}

/* Descrizione */
.listing.products.rows .description {
  margin: 0 !important;
}

/* Categoria listing */
.listing.categories {
  padding-right: 8px;
}

.listing .category .caption {
  background-repeat: no-repeat;
  background-size: contain;
}

.listing .category .caption .name {
  font-size: 1.2em;
  letter-spacing: 0.03rem;
  font-weight: bold;
  min-height: 60px;
}

/* ============================================================================
   RAUSCH — CUSTOM CSS (260.catalog)
   BLOCCO 3/3 — UTILITIES, COMPONENTS, MEDIA QUERIES, REFINEMENTS
   ============================================================================
   Questo blocco contiene:
   - Utilities generali
   - Componenti vari (buttons, forms, icons)
   - Media queries mobile/tablet/desktop
   - Fix specifici per device e browser
   ========================================================================== */


/* ============================================================================
   10. UTILITIES & GENERIC COMPONENTS
   ========================================================================== */

/* Pulsanti */
.btn.btn-default {
  background: rgba(185, 155, 100);
  color: white;
  border: 2px solid rgba(185, 155, 100);
  border-radius: 10px !important;
  padding: 2px 10px;
  margin-right: 4px;
}

.btn:not(:disabled):not(.active) {
  background: #292119;
}

.input-group-text {
    padding: 12px !important;
}

@media (min-width: 769px) {
  .service-quantity-submit .btn:not(:disabled):not(.active) {
    min-width: 280px !important;
    text-align: left;
  }
  .service-quantity-submit {
    padding-top: 12px;
  }
}

@media (max-width: 768px) {
  .service-quantity-submit {
    text-align: center;
  }
}

/* Input & form */
.form-control {
  border: none;
}

/* Allinea correttamente la label nell'input-group */
.input-group .input-group-addon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 12px !important;
  line-height: 1 !important;
  height: 40px !important;
  border-radius: 6px 0 0 6px !important;
}

.input-group .input-group-icon {
  padding: 8px 10px 4px 0;
  margin-right: 0;
}

.input-group-text {
  padding-top: 8px;
  text-align: center;
}

input[type=radio],
input[type=checkbox],
input[type=radio]:checked {
  border-color: rgba(185, 155, 100) !important;
}

input[type=radio]:checked,
input[type=checkbox]:checked {
  background-color: rgba(185, 155, 100) !important;
}

input[type=radio]:hover,
input[type=checkbox]:hover {
  box-shadow: 0 0 0 0.25rem rgba(185, 155, 100) !important;
}

input, button, select, textarea {
  padding: 10px !important;
}

.navbar-header .navbar-search input.form-control {
    background-color: var(--input-background-color);
}

/* Icone */
.fa {
  font-size: 1.2rem !important;
}

.fa-3x {
  font-size: 3rem !important;
  color: red !important;
}

.fa.fa-link,
.fa.fa-twitter-square.fa-lg,
.fa.fa-facebook-square.fa-lg,
.fa.fa-pinterest-square.fa-lg {
  font-size: 1.6rem !important;
  margin-right: 8px !important;
}

/* Corregge l’icona fa-refresh */
.input-group .fa-refresh {
  margin-left: 6px !important;
  margin-right: 0 !important;
  line-height: 40px !important;
}

/* ============================================================================
   RAUSCH — TYPOGRAPHY REFINEMENT
   Obiettivo:
   - Migliorare la leggibilità generale
   - Armonizzare la gerarchia H1/H2/H3
   - Rendere il testo più “editoriale” e coerente
   - Mantenere la personalità del font Titular
   ========================================================================== */

/* Paragrafi */
p {
  line-height: 1.55rem;          /* più leggibile */
  margin-bottom: 0.9rem;         /* ritmo verticale migliore */
}

/* H1 — Titolo principale pagina */
h1 {
  font-size: 2.2rem;
  line-height: 2.4rem;
  font-weight: 600;              /* più autorevole */
}

/* H2 — Titoli sezioni */
h2 {
  font-size: 1.8rem;
  line-height: 2rem;
  font-weight: 500;
  margin-bottom: 0.6rem;
}

/* H3 — Sottotitoli */
h3 {
  font-size: 1.45rem;
  line-height: 1.6rem;
  font-weight: 400;
  margin-bottom: 0.4rem;
}

/* ============================================================================
   11. COMPONENTI VARI
   ========================================================================== */

/* Thumbnail */
.thumbnail {
  border: none;
  padding: 0;
  background-color: transparent;
}

.img-thumbnail {
  padding: 0;
}

/* Tab contenuti */
.tab-content {
  padding: 10px;
  background-color: white;
}

/* Pills */
.nav-pills li a:hover {
  background: white;
}

.nav-pills li.active > a {
  background: rgba(234, 145, 75, 0.2);
  color: #574B57;
}

/* Breadcrumb */
ul.breadcrumb {
  padding: 0 0 0 8px;
}

/* Footer */
#footer .title {
  margin: 0 0 8px 0;
}

#footer .columns {
  padding: 8px 0 8px 22px;
  background-color: white;
  border-radius: 10px;
}

#footer a:hover {
  color: rgba(185, 155, 100);
  font-weight: 400;
}


/* ============================================================================
   12. MEDIA QUERIES — DESKTOP
   ========================================================================== */

@media (min-width: 769px) {

  body {
    background-image: url("/includes/templates/260.catalog/images/260catalog.jpg");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: cover;
  }

  #header {
    padding: 10px 20px !important;
  }

  #cookies-acceptance {
    margin: 0 20px;
    padding: 10px 20px;
  }

  #footer {
    padding: 0 1% 20px 1%;
  }

  /* FAQ & Home sections */
  .faq-image,
  .home-sections-image {
    background-repeat: no-repeat;
    background-size: contain;
    padding-left: 400px;
    min-height: 400px;
  }

  .faq-image {
    background-image: url(/includes/templates/260.catalog/images/faq400px.png);
  }

  .home-sections-image {
    background-image: url(/includes/templates/260.catalog/images/home-sections-image.png);
  }
}


/* ============================================================================
   13. MEDIA QUERIES — MOBILE & TABLET
   ========================================================================== */

@media (max-width: 768px) {

  #site-menu .navbar, .navbar-header {
    background-color: rgba(234, 145, 75, 0.3) !important;
  }

  .navbar-header .logotype {
    text-align: center !important;
  }

  #site-menu .quick-access {
    flex-direction: row;
    height: 100%;
    justify-content: center;
    width: 100%;
    flex-basis: 100%;
  }

  .input-group .form-control:last-child, .input-group .input-group-btn:last-child .btn, .input-group .input-group-text:last-child {
    background-color: white;
    color: #292119;
  }
   
  /* Offcanvas */ 
  .navbar-toggler .icon-bar {
    height: 3px;
    background-color: white;
  }

  .offcanvas {
    background-image: url(/includes/templates/260.catalog/images/offcanvas_vertical_image.png);
    background-repeat: no-repeat;
    background-size: 100%;
  }

  .offcanvas .offcanvas-body {
    padding: 0;
    font-size: 1.4rem;
  }

  .offcanvas-title {
    content: url("/includes/templates/260.catalog/images/offcanvas-logo.png");
  }

  .dropdown-menu a.nav-link:before {
    content: url(/includes/templates/260.catalog/images/sign20.png);
  }

  .navbar-nav .dropdown.open .dropdown-menu {
    margin-left: 0;
  }

  .offcanvas a.nav-link,
  .offcanvas .navbar-nav .nav-link:hover {
    color: white;
    padding: 10px;
  }

  span.input-group-text .offcanvas .fa, span.input-group-text {
    display:none;
  }

  .offcanvas .navbar-nav .dropdown-menu .nav-link {
    background: unset !important;
  }

  .listing.rows .product .image {
    max-width: 110px !important;
    margin: 0 !important;
    min-height: 100px !important;
  }

  input.form-control {
    color: white;
  }

  .input-group {
    flex-wrap: nowrap;
    justify-content: flex-start;
    flex-direction: column;
  }    
  
  /* Checkout */
  #box-checkout-cart .row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  input.form-control {
    border-radius: 1em !important;
  }

  /* Grid */
  .row {
    grid-gap: 0.5rem !important;
  }

  .col-xs-6 {
    grid-column: span 12 !important;
  }
}


/* ============================================================================
   14. MEDIA QUERIES — MICRO‑REFINEMENT
   ========================================================================== */

@media (max-width: 480px) {

  .service-feature-item::before {
    top: 4px;
    font-size: 1.1em;
  }


  /* Mobile: riduzione dimensione titoli funzionalità */
  .service-feature-title {
    font-size: 1.05rem;
    line-height: 1.25;
  }

  .service-feature-item p {
    line-height: 1.35;
  }

  .service-features-title {
    margin-top: 18px;
    margin-bottom: 10px;
  }
}

@media (max-width: 360px) {
  .service-feature-item {
    margin: 8px 0;
  }
}

/* ============================================================================
   15. IA‑READY DEL BLOCCO QUANTITÀ 
   ========================================================================== */

/* Wrapper generale */
.cart-quantity-wrapper {
  display: flex;
  align-items: center;
  gap: 1em;
}

.badge.quantity {
  display: inline-block !important;
  background: #ff4d4d;
  color: #fff;
  border-radius: 999px;
  padding: 0.25em 0.55em;
  font-size: .70em;
  font-weight: 600;
  line-height: 1;
  box-shadow: 0 0 0 2px #fff;
}
