/* ================================================================
   RESERVE TAXA COUNTER — Restyle pagina /contatti/
   Selettore: .page-contatti (class aggiunta via body_class filter)
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&display=swap');

/* ----------------------------------------------------------------
   TOKEN locali
   ---------------------------------------------------------------- */
.page-contatti {
  --rtc-ink:        #0c1410;
  --rtc-ink-2:      #3a4540;
  --rtc-ink-3:      #67726d;
  --rtc-brand:      #0f3d2e;
  --rtc-brand-2:    #1a5d3a;
  --rtc-brand-tint: #e8f0ec;
  --rtc-line:       rgba(15,23,20,.08);
  --rtc-line-2:     rgba(15,23,20,.14);
  --rtc-shadow-lg:  0 30px 60px -20px rgba(15,23,20,.18), 0 10px 20px -10px rgba(15,23,20,.08);
}

/* Tipografia globale Geist */
.page-contatti #main,
.page-contatti #main h1,
.page-contatti #main h2,
.page-contatti #main h3,
.page-contatti #main h4,
.page-contatti #main p,
.page-contatti #main span,
.page-contatti #main a,
.page-contatti #main label,
.page-contatti #main button,
.page-contatti #main input,
.page-contatti #main select,
.page-contatti #main textarea {
  font-family: "Geist", -apple-system, system-ui, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ================================================================
   LAYOUT PRINCIPALE
   ================================================================ */

.rbc-contact-page {
  display: flex;
  min-height: 580px;
}

.rbc-contact-left {
  flex: 0 0 42%;
  background: linear-gradient(155deg, #0a2a1f 0%, #0f3d2e 45%, #1a5d3a 100%);
  padding: 60px 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.rbc-contact-right {
  flex: 1;
  background: #f8faf6;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 40px;
}

@media (max-width: 860px) {
  .rbc-contact-page { flex-direction: column; }
  .rbc-contact-left  { padding: 40px 24px; }
  .rbc-contact-right { padding: 40px 20px; }
}

/* ================================================================
   PANNELLO SINISTRO
   ================================================================ */

.rbc-contact-left__logo {
  width: 52px; height: 52px;
  background: rgba(255,255,255,.13);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px;
  font-family: "Geist", sans-serif !important;
  font-weight: 600;
  font-size: 24px;
  color: #fff;
  letter-spacing: -.02em;
  flex-shrink: 0;
}

.rbc-contact-left__eyebrow {
  font-family: "Geist Mono", monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.55) !important;
  margin: 0 0 20px !important;
}

.rbc-contact-left__title {
  font-family: "Geist", sans-serif !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  letter-spacing: -.025em !important;
  line-height: 1.15 !important;
  color: #fff !important;
  margin: 0 0 14px !important;
}

.rbc-contact-left__subtitle {
  font-size: 14.5px !important;
  color: rgba(255,255,255,.68) !important;
  line-height: 1.65 !important;
  margin: 0 0 36px !important;
}

/* Voci di contatto */
.rbc-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
}

.rbc-contact-item__icon {
  width: 38px; height: 38px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.rbc-contact-item__icon svg { display: block; }

.rbc-contact-item__label {
  font-size: 11px !important;
  font-family: "Geist Mono", monospace !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  color: rgba(255,255,255,.45) !important;
  margin: 0 0 3px !important;
}

.rbc-contact-item__value {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,.88) !important;
  margin: 0 !important;
}

/* Footer pannello */
.rbc-contact-left__footer {
  border-top: 1px solid rgba(255,255,255,.12);
  padding-top: 24px;
  margin-top: 32px;
}

.rbc-contact-left__footer-label {
  font-family: "Geist Mono", monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  color: rgba(255,255,255,.5) !important;
  margin: 0 0 10px !important;
}

.rbc-contact-left__footer a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 18px !important;
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 10px !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: -.005em !important;
  text-decoration: none !important;
  transition: background .15s, border-color .15s, transform .15s !important;
}

.rbc-contact-left__footer a:hover {
  background: rgba(255,255,255,.16) !important;
  border-color: rgba(255,255,255,.30) !important;
  transform: translateY(-1px) !important;
}

/* ================================================================
   PANNELLO DESTRO — CARD FORM
   ================================================================ */

.rbc-contact-card {
  width: 100%;
  max-width: 520px;
  background: #fff;
  border: 1px solid var(--rtc-line);
  border-radius: 18px;
  padding: 32px 32px 28px;
  box-shadow: var(--rtc-shadow-lg);
}

@media (max-width: 560px) {
  .rbc-contact-card { padding: 26px 22px 24px; }
}

/* Header card */
.rbc-contact-card__header {
  margin-bottom: 24px;
}

.rbc-contact-card__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Geist Mono", monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--rtc-brand) !important;
  background: var(--rtc-brand-tint);
  border: 1px solid rgba(15,61,46,.16);
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 12px;
}

.rbc-contact-card__title {
  font-family: "Geist", sans-serif !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  letter-spacing: -.018em !important;
  color: var(--rtc-ink) !important;
  margin: 0 0 6px !important;
}

.rbc-contact-card__subtitle {
  font-size: 13.5px !important;
  color: var(--rtc-ink-3) !important;
  margin: 0 !important;
}

/* Label */
.rbc-contact-card label {
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: var(--rtc-ink-2) !important;
  margin-bottom: 6px !important;
  letter-spacing: .005em !important;
  display: block !important;
}

/* Input, select, textarea */
.rbc-contact-card input[type="text"],
.rbc-contact-card input[type="email"],
.rbc-contact-card select,
.rbc-contact-card textarea {
  width: 100% !important;
  padding: 0 14px !important;
  height: 44px !important;
  border: 1px solid var(--rtc-line-2) !important;
  border-radius: 10px !important;
  background: #fff !important;
  font-family: "Geist", sans-serif !important;
  font-size: 14.5px !important;
  color: var(--rtc-ink) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  transition: border-color .15s, box-shadow .15s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.rbc-contact-card textarea {
  height: auto !important;
  padding: 12px 14px !important;
  resize: vertical !important;
  line-height: 1.55 !important;
}

.rbc-contact-card input[type="text"]::placeholder,
.rbc-contact-card input[type="email"]::placeholder,
.rbc-contact-card textarea::placeholder {
  color: rgba(15,23,20,.32) !important;
}

.rbc-contact-card input[type="text"]:focus,
.rbc-contact-card input[type="email"]:focus,
.rbc-contact-card select:focus,
.rbc-contact-card textarea:focus {
  outline: 0 !important;
  border-color: var(--rtc-brand) !important;
  box-shadow: 0 0 0 3px rgba(15,61,46,.12) !important;
}

/* Select: chevron custom */
.rbc-contact-card__select-wrap {
  position: relative;
}

.rbc-contact-card__select-wrap::after {
  content: "";
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px; height: 16px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2367726d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}

.rbc-contact-card__select-wrap select {
  padding-right: 36px !important;
  cursor: pointer !important;
}

/* Grid nome/cognome */
.rbc-contact-card__row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 480px) {
  .rbc-contact-card__row2 { grid-template-columns: 1fr; }
}

/* Campo singolo */
.rbc-contact-card__field {
  margin-bottom: 16px;
}

/* Privacy checkbox */
.rbc-contact-card__privacy {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin-bottom: 22px !important;
}

.rbc-contact-card__privacy input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  accent-color: var(--rtc-brand) !important;
  cursor: pointer !important;
  border-radius: 4px !important;
}

.rbc-contact-card__privacy span {
  font-size: 13px !important;
  color: var(--rtc-ink-3) !important;
  line-height: 1.5 !important;
}

.rbc-contact-card__privacy a {
  color: var(--rtc-brand) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}

.rbc-contact-card__privacy a:hover {
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* Submit */
#rbc-contact-submit {
  width: 100% !important;
  height: 50px !important;
  padding: 0 22px !important;
  background: var(--rtc-brand) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 10px !important;
  font-family: "Geist", sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 500 !important;
  letter-spacing: -.005em !important;
  cursor: pointer !important;
  box-shadow: 0 1px 2px rgba(15,23,20,.06), inset 0 1px 0 rgba(255,255,255,.16) !important;
  transition: background .15s, transform .15s !important;
}

#rbc-contact-submit:hover {
  background: #0a2a1f !important;
  transform: translateY(-1px) !important;
}

/* Messaggio di successo/errore */
.rbc-contact-notice {
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 18px;
}

.rbc-contact-notice--success {
  background: var(--rtc-brand-tint);
  color: var(--rtc-brand);
  border: 1px solid rgba(15,61,46,.2);
}

.rbc-contact-notice--error {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid rgba(185,28,28,.2);
}

/* ================================================================
   TRUST STRIP
   ================================================================ */

.rbc-contact-trust {
  background: #fff;
  border-top: 1px solid var(--rtc-line);
  padding: 22px 40px;
}

.rbc-contact-trust-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}

.rbc-contact-trust-item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: "Geist Mono", monospace !important;
  font-size: 11.5px !important;
  letter-spacing: .04em !important;
  color: var(--rtc-ink-3) !important;
  text-transform: uppercase !important;
  font-weight: 500;
}

.rbc-contact-trust-item svg { flex-shrink: 0; }

@media (max-width: 600px) {
  .rbc-contact-trust { padding: 20px 16px; }
  .rbc-contact-trust-inner { gap: 18px; }
}

/* ================================================================
   Fix ereditati dal tema
   ================================================================ */
.page-contatti .rbc-contact-card input,
.page-contatti .rbc-contact-card select,
.page-contatti .rbc-contact-card textarea {
  margin: 0 !important;
}

/* ================================================================
   CF7 OVERRIDE — adatta Contact Form 7 agli stili RBC
   ================================================================ */

/* Reset strutturale CF7 */
.rbc-contact-card .wpcf7          { margin: 0; padding: 0; }
.rbc-contact-card .wpcf7 p        { margin: 0; padding: 0; }
.rbc-contact-card .wpcf7 br       { display: none; }

/* Il wrapper span non deve spezzare il layout */
.rbc-contact-card .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
}

/* Campo non valido */
.rbc-contact-card .wpcf7-not-valid {
  border-color: #b91c1c !important;
  box-shadow: 0 0 0 3px rgba(185,28,28,.1) !important;
}

/* Messaggio di errore inline sotto il campo */
.rbc-contact-card .wpcf7-not-valid-tip {
  display: block !important;
  font-size: 12px !important;
  color: #b91c1c !important;
  margin-top: 5px !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
}

/* ── Acceptance (checkbox privacy) ── */
.rbc-contact-card .wpcf7-acceptance {
  display: block !important;
}

.rbc-contact-card .wpcf7-acceptance label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  font-size: 13px !important;
  color: var(--rtc-ink-3) !important;
  line-height: 1.5 !important;
  cursor: pointer !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  margin-bottom: 0 !important;
}

.rbc-contact-card .wpcf7-acceptance input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  accent-color: var(--rtc-brand) !important;
  cursor: pointer !important;
}

.rbc-contact-card .wpcf7-acceptance a {
  color: var(--rtc-brand) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}

.rbc-contact-card .wpcf7-acceptance a:hover {
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* ── Submit button CF7 (input[type=submit]) ── */
.rbc-contact-card .wpcf7-submit,
#rbc-cf7-submit {
  width: 100% !important;
  height: 50px !important;
  padding: 0 22px !important;
  background: var(--rtc-brand) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 10px !important;
  font-family: "Geist", sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 500 !important;
  letter-spacing: -.005em !important;
  cursor: pointer !important;
  box-shadow: 0 1px 2px rgba(15,23,20,.06), inset 0 1px 0 rgba(255,255,255,.16) !important;
  transition: background .15s, transform .15s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  margin-top: 4px !important;
}

.rbc-contact-card .wpcf7-submit:hover,
#rbc-cf7-submit:hover {
  background: #0a2a1f !important;
  transform: translateY(-1px) !important;
}

.rbc-contact-card .wpcf7-submit:disabled {
  opacity: .6 !important;
  cursor: wait !important;
  transform: none !important;
}

/* Nascondi lo spinner CF7 (usiamo il cambio di stato del bottone) */
.rbc-contact-card .wpcf7-spinner { display: none !important; }

/* ── Response output (messaggio post-invio) ── */
.rbc-contact-card .wpcf7-response-output {
  padding: 12px 16px !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  margin: 16px 0 0 !important;
  border: 0 !important;
}

.rbc-contact-card .wpcf7-mail-sent-ok {
  background: var(--rtc-brand-tint) !important;
  color: var(--rtc-brand) !important;
  border: 1px solid rgba(15,61,46,.2) !important;
}

.rbc-contact-card .wpcf7-mail-sent-ng,
.rbc-contact-card .wpcf7-aborted,
.rbc-contact-card .wpcf7-spam-blocked {
  background: #fef2f2 !important;
  color: #b91c1c !important;
  border: 1px solid rgba(185,28,28,.2) !important;
}

.rbc-contact-card .wpcf7-validation-errors,
.rbc-contact-card .wpcf7-acceptance-missing {
  background: #fffbeb !important;
  color: #92400e !important;
  border: 1px solid rgba(146,64,14,.2) !important;
}
