/*! Repost Studio – pagina Contatti coerente con la homepage (v2: moduli Divi modificabili) */
:root{
  --rsc-purple:#6c2887; --rsc-gold:#fec144;
  --rsc-ease:cubic-bezier(.76,0,.24,1); --rsc-bounce:cubic-bezier(.34,1.56,.64,1);
  --rsc-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
body.rs-page .et-l--header .et_pb_text_0_tb_header{ display:none !important; }

/* ---------- struttura ---------- */
body.rs-page #main-content .et_pb_section.rsc-sec{ padding:0 !important; background:transparent !important; }
body.rs-page #main-content .rsc-sec > .et_pb_row{ width:90% !important; max-width:1320px !important; padding:0 !important; }
body.rs-page #main-content .rsc-sec .et_pb_module{ margin-bottom:0 !important; }
body.rs-page .rsc-sec-hero{ position:relative; overflow:hidden; isolation:isolate; }
body.rs-page .rsc-sec-hero > .et_pb_row{ padding:clamp(8px,2vw,28px) 0 clamp(36px,4vw,60px) !important; }
body.rs-page .rsc-sec-main > .et_pb_row{ display:flex !important; flex-wrap:wrap; gap:clamp(28px,4vw,64px) !important; align-items:flex-start !important; }
body.rs-page .rsc-sec-main > .et_pb_row > .et_pb_column{ margin:0 !important; flex:1 1 420px !important; width:auto !important; max-width:none !important; }

/* ---------- etichetta con cartella ---------- */
.rsc-eyebrow .et_pb_text_inner{ display:flex; align-items:center; gap:14px; }
.rsc-eyebrow .et_pb_text_inner img{ width:46px; height:auto; flex:none; transition:transform .5s var(--rsc-bounce); }
.rsc-eyebrow:hover .et_pb_text_inner img{ transform:translateY(-5px) rotate(-8deg) scale(1.08); }
.rsc-eyebrow p, .rsc-eyebrow .et_pb_text_inner > *:not(img){
  margin:0 !important; padding:0 !important; font:700 13px/1.3 Poppins, sans-serif !important;
  letter-spacing:.16em !important; text-transform:uppercase; color:var(--rsc-purple) !important;
}
.rsc-eyebrow .et_pb_text_inner::after{
  content:""; flex:1; max-width:280px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,var(--rsc-purple),var(--rsc-gold));
  transform-origin:left; transform:scaleX(0); transition:transform 1.1s var(--rsc-ease) .3s;
}
.rsc-eyebrow.rsc-in .et_pb_text_inner::after{ transform:scaleX(1); }
body.rs-page .rsc-eyebrow{ margin-bottom:16px !important; }

/* ---------- HERO ---------- */
.rsc-title :is(h1,h2,p){
  font-family:Poppins, Helvetica, Arial, sans-serif !important; font-weight:800 !important;
  font-size:clamp(46px,8vw,120px) !important; line-height:.98 !important; letter-spacing:-.03em !important;
  color:#000 !important; margin:0 !important; padding:0 !important;
}
.rsc-title em{
  font-style:normal; color:var(--rsc-purple);
  background:linear-gradient(transparent 62%, rgba(254,193,68,.95) 62%, rgba(254,193,68,.95) 90%, transparent 90%) no-repeat 0 0 / 0% 100%;
  transition:background-size 1s var(--rsc-ease) .7s;
}
.rsc-title.rsc-in em{ background-size:100% 100%; }
body.rs-page .rsc-lead{ margin-top:clamp(18px,2.2vw,30px) !important; max-width:640px; }
.rsc-lead p{ font:400 clamp(16px,1.35vw,20px)/1.6 Poppins, sans-serif !important; color:#555 !important; padding:0 !important; }
.rsc-lead b, .rsc-lead strong{ color:var(--rsc-purple); }
.rsc-hero-ring{
  position:absolute; right:-5%; top:6%; width:clamp(160px,24vw,340px); aspect-ratio:1; border-radius:50%; pointer-events:none; z-index:-1;
  background:conic-gradient(from 200deg,#894092,#f2c937,#894092);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 22px),#000 calc(100% - 21px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 22px),#000 calc(100% - 21px));
  animation:rsc-spin 30s linear infinite; opacity:.9;
}
@keyframes rsc-spin{ to{ transform:rotate(360deg); } }

/* ---------- card del modulo ---------- */
body.rs-page .rsc-form-card{
  position:relative; background:#fff !important; border-radius:clamp(26px,3vw,36px);
  padding:clamp(24px,3.4vw,44px) !important;
  box-shadow:0 30px 60px -34px rgba(108,40,135,.45), 0 0 0 1px rgba(108,40,135,.08);
}
body.rs-page .rsc-form-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:2px; pointer-events:none;
  background:linear-gradient(135deg,#894092,#f2c937);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity:.55;
}
.rsc-h2 :is(h2,h3,p){ font:800 clamp(26px,2.6vw,38px)/1.08 Poppins, sans-serif !important; letter-spacing:-.02em !important; color:#000 !important; margin:0 !important; padding:0 !important; }
body.rs-page .rsc-form-card .rsc-h2{ margin-bottom:22px !important; }
body.rs-page .rsc-form-card .et_pb_contact_form_container{ background:transparent !important; background-image:none !important; padding:0 !important; }
body.rs-page .et_pb_contact_form .et_pb_contact_field{ padding-left:0 !important; margin-bottom:14px !important; }
body.rs-page .et_pb_contact_form .input{
  width:100% !important; border:1.5px solid transparent !important; border-radius:16px !important;
  background:#f6f2f8 !important; color:#111 !important; padding:18px 20px !important;
  font:500 16px/1.4 Poppins, sans-serif !important; transition:border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
body.rs-page .et_pb_contact_form textarea.input{ min-height:170px; resize:vertical; }
body.rs-page .et_pb_contact_form .input::placeholder{ color:#8d8594 !important; }
body.rs-page .et_pb_contact_form .input:focus{ outline:none; background:#fff !important; border-color:var(--rsc-purple) !important; box-shadow:0 0 0 4px rgba(254,193,68,.45) !important; }
body.rs-page .et_contact_bottom_container{ float:none !important; display:flex !important; justify-content:flex-end; margin-top:6px !important; }
body.rs-page .et-pb-contact-message{ font:600 15px/1.5 Poppins, sans-serif; color:var(--rsc-purple); }

/* ---------- pulsanti a pillola (Invia e "vai alla pagina servizi") ---------- */
body.rs-page .et_pb_contact_submit.et_pb_button,
body.rs-page a.et_pb_button.rsc-btn{
  position:relative; isolation:isolate; overflow:hidden;
  display:inline-flex !important; align-items:center; gap:14px;
  padding:8px 62px 8px 28px !important; min-height:60px; border:0 !important; border-radius:999px !important;
  background:var(--rsc-gold) !important; color:#000 !important;
  font:700 17px/1 Poppins, sans-serif !important; letter-spacing:.01em !important;
  box-shadow:0 10px 24px -12px rgba(108,40,135,.55);
  transition:color .35s ease .05s, box-shadow .4s ease, transform .5s var(--rsc-bounce) !important; cursor:pointer;
}
body.rs-page .et_pb_contact_submit.et_pb_button::before,
body.rs-page a.et_pb_button.rsc-btn::before{
  content:"" !important; position:absolute; z-index:-1; right:8px; left:auto !important; top:50%; width:44px; height:44px; margin-top:-22px; border-radius:50%;
  background:linear-gradient(135deg,var(--rsc-purple),#9b3fb5); transition:transform .6s var(--rsc-ease) !important;
  opacity:1 !important; display:block !important; transform:none !important; font-size:0 !important;
}
body.rs-page .et_pb_contact_submit.et_pb_button::after,
body.rs-page a.et_pb_button.rsc-btn::after{
  content:"" !important; position:absolute; right:21px; left:auto !important; top:50%; width:18px; height:18px; margin:-9px 0 0 !important;
  background:#fff; -webkit-mask:var(--rsc-arrow) center/contain no-repeat; mask:var(--rsc-arrow) center/contain no-repeat;
  opacity:1 !important; display:block !important; transform:none !important; transition:transform .5s var(--rsc-bounce) !important; font-size:0 !important; line-height:0 !important;
}
body.rs-page .et_pb_contact_submit.et_pb_button:hover,
body.rs-page a.et_pb_button.rsc-btn:hover{ color:#fff !important; transform:translateY(-3px); box-shadow:0 16px 30px -12px rgba(108,40,135,.7); padding:8px 62px 8px 28px !important; }
body.rs-page .et_pb_contact_submit.et_pb_button:hover::before,
body.rs-page a.et_pb_button.rsc-btn:hover::before{ transform:scale(24) !important; }
body.rs-page .et_pb_contact_submit.et_pb_button:hover::after,
body.rs-page a.et_pb_button.rsc-btn:hover::after{ transform:rotate(-45deg) !important; }

/* ---------- righe contatto (moduli Blurb) come Selected Work ---------- */
body.rs-page .rsc-row{ position:relative; padding:clamp(16px,1.6vw,22px) 0 !important; cursor:pointer; }
.rsc-row::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:rgba(0,0,0,.14);
  transform-origin:left; transform:scaleX(0); transition:transform .9s var(--rsc-ease) var(--d,0s);
}
.rsc-row.rsc-in::after{ transform:scaleX(1); }
.rsc-row .et_pb_main_blurb_image{ display:none !important; }
.rsc-row .et_pb_blurb_content{ display:grid !important; grid-template-columns:44px 1fr 52px; align-items:center; gap:12px; max-width:none !important; text-align:left !important; }
.rsc-row .et_pb_blurb_container{ display:flex; flex-direction:column; gap:4px; padding:0 !important; min-width:0; }
.rsc-row .et_pb_blurb_description{ order:-1; }
.rsc-row .et_pb_blurb_description, .rsc-row .et_pb_blurb_description p{
  font:700 12px/1.3 Poppins, sans-serif !important; letter-spacing:.14em !important; text-transform:uppercase; color:var(--rsc-purple) !important; padding:0 !important; margin:0 !important;
}
.rsc-row .et_pb_module_header{ padding:0 !important; margin:0 !important; }
.rsc-row .et_pb_module_header, .rsc-row .et_pb_module_header a{
  font:800 clamp(20px,2vw,30px)/1.15 Poppins, sans-serif !important; letter-spacing:-.01em !important; color:#111 !important; word-break:break-word; text-decoration:none !important;
}
.rsc-row .et_pb_module_header a{
  display:inline; background:linear-gradient(transparent 60%, rgba(254,193,68,.9) 60%, rgba(254,193,68,.9) 92%, transparent 92%) no-repeat 0 0 / 0% 100%;
  transition:background-size .5s var(--rsc-ease);
}
.rsc-num{ font:700 12px/1 Poppins, sans-serif; letter-spacing:.1em; color:#9a9a9a; transition:color .3s ease; }
.rsc-go{ position:relative; width:52px; height:52px; border-radius:50%; border:1.5px solid rgba(0,0,0,.18); display:grid; place-items:center; overflow:hidden; isolation:isolate; transition:border-color .3s ease; justify-self:end; }
.rsc-go::before{ content:""; position:absolute; inset:0; z-index:-1; border-radius:50%; background:linear-gradient(135deg,#894092,#f2c937); transform:scale(0); transition:transform .5s var(--rsc-ease); }
.rsc-go::after{ content:""; width:20px; height:20px; background:#111; -webkit-mask:var(--rsc-arrow) center/contain no-repeat; mask:var(--rsc-arrow) center/contain no-repeat; transition:transform .5s var(--rsc-bounce), background .3s ease; }
.rsc-row:hover .et_pb_module_header a{ background-size:100% 100%; }
.rsc-row:hover .rsc-num{ color:var(--rsc-purple); }
.rsc-row:hover .rsc-go{ border-color:transparent; }
.rsc-row:hover .rsc-go::before{ transform:scale(1); }
.rsc-row:hover .rsc-go::after{ background:#fff; transform:rotate(-45deg); }
body.rs-page .rsc-info-social{ margin-top:clamp(28px,3vw,44px) !important; }

/* ---------- social (modulo Divi) ---------- */
body.rs-page .rsc-social .et_pb_social_media_follow,
body.rs-page ul.rsc-social, body.rs-page .rsc-social ul{ display:flex !important; gap:12px; padding:0 !important; margin:4px 0 0 !important; list-style:none !important; }
body.rs-page .rsc-social li{ margin:0 !important; list-style:none !important; }
body.rs-page .rsc-social li::before{ display:none !important; }
body.rs-page .rsc-social li a.icon{
  position:relative; width:54px !important; height:54px !important; border-radius:50% !important; margin:0 !important;
  background:transparent !important; border:1.5px solid rgba(0,0,0,.14) !important; overflow:hidden; isolation:isolate;
  display:grid !important; place-items:center; transition:border-color .3s ease, transform .45s var(--rsc-bounce);
}
body.rs-page .rsc-social li a.icon::before{
  position:static !important; color:#111 !important; font-size:20px !important; line-height:1 !important; width:auto !important; height:auto !important; transition:color .3s ease;
}
body.rs-page .rsc-social li a.icon::after{ content:""; position:absolute; inset:0; z-index:-1; border-radius:50%; background:linear-gradient(135deg,#894092,#f2c937); transform:scale(0); transition:transform .45s var(--rsc-ease); }
body.rs-page .rsc-social li a.icon:hover{ border-color:transparent !important; transform:translateY(-4px) rotate(-6deg); }
body.rs-page .rsc-social li a.icon:hover::before{ color:#fff !important; }
body.rs-page .rsc-social li a.icon:hover::after{ transform:scale(1); }

/* ---------- mappa (modulo Codice) ---------- */
body.rs-page .rsc-mapmod{ margin-top:clamp(56px,7vw,110px) !important; }
.rsc-map{
  position:relative; border-radius:clamp(26px,3vw,40px); overflow:hidden;
  background:linear-gradient(135deg,#f6f1f8,#fdf6e6); aspect-ratio:21/8; min-height:320px;
  box-shadow:0 30px 60px -34px rgba(108,40,135,.45);
}
.rsc-map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(.35) contrast(1.05); }
.rsc-map-pin{
  position:absolute; left:clamp(16px,2vw,28px); bottom:clamp(16px,2vw,28px); z-index:2;
  display:flex; align-items:center; gap:12px; padding:12px 18px 12px 12px; border-radius:999px;
  background:#fff; box-shadow:0 14px 30px -14px rgba(108,40,135,.6); font:600 14px/1.3 Poppins, sans-serif; color:#111 !important; text-decoration:none !important;
}
.rsc-map-pin img{ width:34px; height:auto; }
.rsc-map-pin b{ color:var(--rsc-purple); }

/* ---------- blocco finale scuro (colonna Divi) ---------- */
body.rs-page .rsc-cta{
  position:relative; overflow:hidden; isolation:isolate; text-align:center;
  margin:clamp(56px,7vw,110px) 0 clamp(60px,8vw,120px) !important; padding:clamp(56px,8vw,110px) clamp(22px,6vw,90px) !important;
  border-radius:clamp(28px,4vw,48px); display:flex !important; flex-direction:column; align-items:center;
  background:radial-gradient(120% 90% at 50% 0%, #4a1a5e 0%, #26102f 55%, #1a0a21 100%) !important;
  box-shadow:0 40px 80px -40px rgba(108,40,135,.65);
}
.rsc-cta .rsc-ring{
  position:absolute; z-index:-1; border-radius:50%; pointer-events:none;
  background:conic-gradient(from 200deg,#894092,#f2c937,#894092);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 24px),#000 calc(100% - 23px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 24px),#000 calc(100% - 23px));
  animation:rsc-spin 26s linear infinite;
}
.rsc-cta .rsc-ring-a{ width:clamp(240px,30vw,420px); aspect-ratio:1; top:-30%; right:-8%; }
.rsc-cta .rsc-ring-b{ width:clamp(160px,20vw,280px); aspect-ratio:1; bottom:-30%; left:-6%; animation-direction:reverse; opacity:.55; }
.rsc-cta .et_pb_module{ width:100% !important; max-width:900px !important; text-align:center !important; }
.rsc-cta .rsc-eyebrow .et_pb_text_inner{ justify-content:center; }
.rsc-cta .rsc-eyebrow .et_pb_text_inner::after{ display:none; }
.rsc-cta .rsc-eyebrow p{ color:var(--rsc-gold) !important; }
.rsc-cta .rsc-h2 :is(h2,h3,p){ color:#fff !important; font-size:clamp(32px,4.6vw,68px) !important; line-height:1.04 !important; text-align:center; }
.rsc-cta .rsc-h2 em{ font-style:normal; color:var(--rsc-gold); }
.rsc-folders{ display:flex; justify-content:center; gap:10px; margin:clamp(24px,3vw,36px) 0; }
.rsc-folders img{ width:46px; height:auto; animation:rsc-bob 3.4s ease-in-out calc(var(--i) * -.5s) infinite; }
@keyframes rsc-bob{ 0%,100%{ transform:translateY(0) rotate(calc((var(--i) - 1.5) * 6deg)); } 50%{ transform:translateY(-7px) rotate(calc((var(--i) - 1.5) * 6deg)); } }
body.rs-page .rsc-btn{ display:flex; justify-content:center; }

/* ---------- ingressi ---------- */
.rsc-anim{ opacity:0; transform:translateY(36px); transition:opacity .7s var(--rsc-ease) var(--d,0s), transform .9s var(--rsc-bounce) var(--d,0s); }
.rsc-anim.rsc-in{ opacity:1; transform:none; }

@media (max-width:767px){
  .rsc-hero-ring{ right:-30%; top:0; opacity:.5; }
  .rsc-row .et_pb_blurb_content{ grid-template-columns:30px 1fr 42px; gap:8px; }
  .rsc-go{ width:42px; height:42px; }
  .rsc-map{ aspect-ratio:4/5; }
}
@media (prefers-reduced-motion:reduce){
  .rsc-anim, .rsc-row::after{ transition:none !important; opacity:1; transform:none; }
  .rsc-hero-ring, .rsc-ring, .rsc-folders img{ animation:none !important; }
}

/* spaziature: le colonne Divi 5 hanno uno spazio fisso di 30px tra i moduli, qui lo gestiamo noi */
body.rs-page #main-content .rsc-sec .et_pb_column{ row-gap:0 !important; gap:0 !important; }
body.rs-page #main-content .rsc-sec .rsc-eyebrow{ margin-bottom:16px !important; }
body.rs-page #main-content .rsc-sec .rsc-lead{ margin-top:clamp(18px,2.2vw,30px) !important; }
body.rs-page #main-content .rsc-sec .rsc-form-card .rsc-h2{ margin-bottom:22px !important; }
body.rs-page #main-content .rsc-sec .rsc-info-social{ margin-top:clamp(30px,3vw,44px) !important; }
body.rs-page #main-content .rsc-sec .rsc-cta .rsc-h2{ margin-bottom:0 !important; }
body.rs-page #main-content .rsc-sec .rsc-mapmod{ margin-top:clamp(56px,7vw,110px) !important; }
body.rs-page #main-content .rsc-sec-hero > .et_pb_row{ padding:clamp(8px,2vw,28px) 0 clamp(36px,4vw,60px) !important; }

body.rs-page .rsc-cta a.et_pb_button.rsc-btn{ width:auto !important; max-width:none !important; }
body.rs-page .rsc-cta .et_pb_button_module_wrapper{ display:flex; justify-content:center; width:100% !important; }
