
:root{
  --rm-ivory:#f3ebdd;
  --rm-paper:#fffaf2;
  --rm-navy:#142b3a;
  --rm-blue:#7894a4;
  --rm-orange:#c66630;
  --rm-line:rgba(20,43,58,.20);
  --rm-shadow:0 18px 55px rgba(20,43,58,.14);
  --rm-display:"Avenir Next Condensed","Arial Narrow","Roboto Condensed",sans-serif;
  --rm-body:"Avenir Next",Avenir,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--rm-navy);
  background:var(--rm-ivory) url("../images/paper.webp") repeat;
  font-family:var(--rm-body);
}
a{color:inherit}
.wp-site-blocks{overflow-x:clip}

/* HEADER */
.rm-header{
  position:sticky;
  top:0;
  z-index:1000;
  border-bottom:1px solid var(--rm-line);
  background:rgba(243,235,221,.96);
  backdrop-filter:blur(14px);
}
.admin-bar .rm-header{top:32px}
.rm-header-inner{
  max-width:1500px;
  min-height:88px;
  margin:0 auto;
  padding:14px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.rm-logo{
  display:block;
  width:min(390px,42vw);
  min-width:240px;
}
.rm-logo img{display:block;width:100%;height:auto}
.rm-nav-desktop{display:block}
.rm-nav-desktop .wp-block-navigation__container{gap:32px}
.rm-nav-desktop .wp-block-navigation-item__content{
  position:relative;
  padding:10px 0;
  text-decoration:none;
  font-size:1.05rem;
}
.rm-nav-desktop .wp-block-navigation-item__content::after{
  content:"";
  position:absolute;
  left:0;right:100%;bottom:2px;
  height:2px;
  background:var(--rm-orange);
  transition:right .22s ease;
}
.rm-nav-desktop .wp-block-navigation-item__content:hover::after{right:0}
.rm-nav-mobile{display:none}

/* HERO */
.rm-hero{
  min-height:720px;
  display:grid;
  grid-template-columns:minmax(420px,42%) 1fr;
  border-bottom:1px solid var(--rm-line);
}
.rm-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(78px,8vw,132px) clamp(30px,5vw,86px);
}
.rm-kicker{
  margin:0 0 22px;
  color:var(--rm-blue);
  text-transform:uppercase;
  letter-spacing:.25em;
  font-family:var(--rm-display);
  font-size:.82rem;
}
.rm-hero h1{
  margin:0 0 32px;
  font-family:var(--rm-body);
  font-weight:400;
  font-size:clamp(3.4rem,5.6vw,6.8rem);
  line-height:.97;
  letter-spacing:-.055em;
}
.rm-accent{color:var(--rm-orange)}
.rm-hero-copy p{
  max-width:650px;
  margin:0 0 18px;
  font-size:clamp(1.08rem,1.45vw,1.34rem);
}
.rm-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:26px;
}
.rm-button{
  min-height:54px;
  padding:0 30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px solid var(--rm-navy);
  border-radius:999px;
  text-decoration:none;
  font-weight:500;
  line-height:1;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.rm-button-primary{background:var(--rm-blue);border-color:var(--rm-blue)}
.rm-button:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(20,43,58,.14)}
.rm-hero-visual{
  min-height:720px;
  background:
    linear-gradient(90deg,var(--rm-ivory) 0%,rgba(243,235,221,.55) 5%,rgba(243,235,221,0) 18%),
    url("../images/hero-lab-clean.webp") center/cover no-repeat;
  position:relative;
  overflow:hidden;
}
.rm-hero-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 35%);
  pointer-events:none;
}

/* METODO */
.rm-method-section{padding:110px 28px 120px}
.rm-section-head{max-width:1180px;margin:0 auto 48px}
.rm-section-head .rm-kicker{margin-bottom:14px}
.rm-section-head h2{
  margin:0 0 18px;
  font-size:clamp(3rem,5vw,5.7rem);
}
.rm-section-head p{max-width:740px;margin:0;font-size:1.2rem}
.rm-method-grid{
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}
.rm-step{
  min-height:360px;
  padding:28px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--rm-line);
  border-radius:24px;
  background:rgba(255,250,242,.50);
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.rm-step:hover{
  transform:translateY(-5px);
  box-shadow:var(--rm-shadow);
  background:rgba(255,250,242,.82);
}
.rm-step-number{
  color:var(--rm-orange);
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.12em;
}
.rm-step h3{
  margin:9px 0 14px;
  font-family:var(--rm-display);
  font-size:1.75rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.rm-step p{margin:0;font-size:1rem}
.rm-step img{
  width:100%;
  height:150px;
  margin:auto 0 0;
  object-fit:contain;
}

/* PAGINE INTERNE */
.rm-page{
  max-width:900px;
  margin:0 auto;
  padding:92px 32px 120px;
}
.rm-page h1{font-size:clamp(3rem,6vw,5.5rem);margin-top:0}
.rm-page p,.rm-page li{font-size:1.15rem}

/* FOOTER */
.rm-footer{
  border-top:1px solid var(--rm-line);
  padding:42px 28px 54px;
}
.rm-footer-inner{
  max-width:1500px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
  flex-wrap:wrap;
}
.rm-footer-mark{
  font-family:var(--rm-display);
  font-size:3rem;
  letter-spacing:.04em;
}
.rm-footer-copy{
  color:var(--rm-blue);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.8rem;
}

/* COMPLIANZ */
.cmplz-cookiebanner{
  background:rgba(255,250,242,.99)!important;
  color:var(--rm-navy)!important;
  border:1px solid var(--rm-line)!important;
  border-radius:24px!important;
  box-shadow:0 24px 70px rgba(20,43,58,.20)!important;
  font-family:var(--rm-body)!important;
}
.cmplz-cookiebanner .cmplz-title{
  font-family:var(--rm-display)!important;
  color:var(--rm-navy)!important;
  font-size:1.4rem!important;
}
.cmplz-cookiebanner .cmplz-btn{
  min-height:48px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  border:1px solid var(--rm-navy)!important;
  box-shadow:none!important;
}
.cmplz-cookiebanner .cmplz-accept{
  background:var(--rm-blue)!important;
  color:var(--rm-navy)!important;
  border-color:var(--rm-blue)!important;
}
.cmplz-cookiebanner .cmplz-deny,
.cmplz-cookiebanner .cmplz-view-preferences{
  background:transparent!important;
  color:var(--rm-navy)!important;
}

/* TABLET */
@media(max-width:1024px){
  .rm-nav-desktop{display:none}
  .rm-nav-mobile{display:block}
  .rm-logo{width:min(340px,58vw);min-width:220px}
  .rm-nav-mobile .wp-block-navigation__responsive-container-open{
    width:46px;height:46px;
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--rm-line);
    border-radius:999px;
    background:rgba(255,250,242,.55);
  }
  .rm-nav-mobile .wp-block-navigation__responsive-container{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    z-index:999999!important;
    background:var(--rm-ivory) url("../images/paper.webp") repeat!important;
    overflow:auto!important;
  }
  .rm-nav-mobile .wp-block-navigation__responsive-container.is-menu-open{
    padding:26px 28px 44px!important;
  }
  .rm-nav-mobile .wp-block-navigation__responsive-container-close{
    top:22px!important;
    right:22px!important;
    width:48px;height:48px;
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--rm-line);
    border-radius:999px;
  }
  .rm-nav-mobile .wp-block-navigation__responsive-container-content{
    padding-top:88px!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
  }
  .rm-nav-mobile .wp-block-navigation__container{width:100%!important;gap:0!important}
  .rm-nav-mobile .wp-block-navigation-item{
    width:100%!important;
    border-bottom:1px solid var(--rm-line);
  }
  .rm-nav-mobile .wp-block-navigation-item__content{
    width:100%;
    display:flex;
    align-items:center;
    padding:22px 4px;
    font-family:var(--rm-display);
    font-size:clamp(2.2rem,7vw,4rem);
    text-decoration:none;
  }
  .rm-nav-mobile .wp-block-navigation-item__content::after{
    content:"→";
    margin-left:auto;
    color:var(--rm-orange);
    font-family:var(--rm-body);
    font-size:.7em;
  }

  .rm-hero{
    min-height:650px;
    grid-template-columns:minmax(360px,48%) 1fr;
  }
  .rm-hero-copy{padding:70px 36px}
  .rm-hero-visual{min-height:650px;background-position:center}
  .rm-method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* MOBILE */
@media(max-width:700px){
  .admin-bar .rm-header{top:46px}
  .rm-header-inner{min-height:74px;padding:10px 16px}
  .rm-logo{width:min(330px,76vw);min-width:0}
  .rm-hero{display:flex;flex-direction:column;min-height:0}
  .rm-hero-copy{padding:62px 22px 42px}
  .rm-hero h1{font-size:clamp(3.35rem,14vw,5.4rem)}
  .rm-actions{display:grid;grid-template-columns:1fr}
  .rm-button{width:100%}
  .rm-hero-visual{
    min-height:470px;
    background:
      linear-gradient(180deg,var(--rm-ivory) 0%,rgba(243,235,221,.1) 14%,transparent 28%),
      url("../images/hero-lab-mobile.webp") center top/cover no-repeat;
  }
  .rm-method-section{padding:78px 18px 90px}
  .rm-section-head{margin-bottom:34px}
  .rm-method-grid{grid-template-columns:1fr;gap:16px}
  .rm-step{min-height:320px}
  .rm-page{padding:64px 22px 94px}
  .rm-page p,.rm-page li{font-size:1.08rem}
  .rm-footer{padding:36px 22px 44px}
  .cmplz-cookiebanner{
    left:14px!important;
    right:14px!important;
    bottom:14px!important;
    width:auto!important;
    max-width:none!important;
    border-radius:20px!important;
  }
  .cmplz-cookiebanner .cmplz-buttons{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }
  .cmplz-cookiebanner .cmplz-view-preferences{grid-column:1/-1!important}
}

/* REVEAL */
.rm-reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
.rm-reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .rm-reveal{opacity:1;transform:none}
}


/* =========================================================
   RM Theme 2.1 — navigazione corretta
   ========================================================= */

/* Desktop: mostra SOLO il menu orizzontale. */
.wp-block-navigation.rm-nav-desktop{
  display:block !important;
}
.wp-block-navigation.rm-nav-mobile{
  display:none !important;
}

.rm-nav-desktop .wp-block-navigation__container{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  gap:30px !important;
}

.rm-nav-desktop .wp-block-navigation-item{
  display:block !important;
}

.rm-nav-desktop .wp-block-navigation-item__content{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:8px 0 6px;
  color:var(--rm-navy);
  text-decoration:none !important;
  white-space:nowrap;
}

/* Tutte le voci hanno una sottolineatura carta da zucchero. */
.rm-nav-desktop .wp-block-navigation-item__content::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  height:2px;
  background:var(--rm-blue);
  transform:scaleX(.72);
  transform-origin:left center;
  transition:transform .2s ease, background-color .2s ease;
}

/* Hover: la linea si estende. */
.rm-nav-desktop .wp-block-navigation-item__content:hover::after{
  transform:scaleX(1);
}

/* Pagina corrente: sottolineatura arancione. */
.rm-nav-desktop .current-menu-item > .wp-block-navigation-item__content::after,
.rm-nav-desktop .current_page_item > .wp-block-navigation-item__content::after,
.rm-nav-desktop .wp-block-navigation-item__content[aria-current="page"]::after,
.rm-nav-desktop .wp-block-navigation-item__content[aria-current="true"]::after{
  background:var(--rm-orange);
  transform:scaleX(1);
}

@media(max-width:1024px){
  /* Tablet e mobile: mostra SOLO il burger. */
  .wp-block-navigation.rm-nav-desktop{
    display:none !important;
  }
  .wp-block-navigation.rm-nav-mobile{
    display:block !important;
  }

  /* X allineata esattamente al burger su tablet. */
  .rm-nav-mobile .wp-block-navigation__responsive-container-close{
    top:21px !important;
    right:28px !important;
    width:46px !important;
    height:46px !important;
  }
}

@media(max-width:700px){
  /* X allineata esattamente al burger su telefono. */
  .rm-nav-mobile .wp-block-navigation__responsive-container-close{
    top:14px !important;
    right:16px !important;
    width:46px !important;
    height:46px !important;
  }
}


/* =========================================================
   RM Theme 2.2 — pagina Domande
   ========================================================= */

body.rm-domande-page .rm-question-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  width: 100%;
  margin: 14px 0;
  padding: 20px 58px 20px 22px;
  border: 1px solid var(--rm-line);
  border-radius: 18px;
  background: rgba(255,250,242,.46);
  color: var(--rm-navy);
  text-decoration: none !important;
  font-size: 1.08rem;
  line-height: 1.35;
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    background-color .2s ease,
    border-color .2s ease;
}

body.rm-domande-page .rm-question-link::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--rm-orange);
  font-size: 1.45rem;
  line-height: 1;
}

body.rm-domande-page .rm-question-link:hover,
body.rm-domande-page .rm-question-link:focus-visible {
  transform: translateY(-2px);
  border-color: var(--rm-blue);
  background: rgba(255,250,242,.82);
  box-shadow: 0 12px 34px rgba(20,43,58,.12);
  outline: none;
}

body.rm-domande-page .rm-question-link:focus-visible {
  box-shadow:
    0 0 0 3px rgba(198,102,48,.22),
    0 12px 34px rgba(20,43,58,.12);
}

body.rm-domande-page .rm-question-link + br {
  display: none;
}

@media(max-width:700px) {
  body.rm-domande-page .rm-question-link {
    padding: 18px 50px 18px 18px;
    border-radius: 16px;
    font-size: 1rem;
  }

  body.rm-domande-page .rm-question-link::after {
    right: 18px;
  }
}


/* =========================================================
   RM Theme 2.4 — una sola domanda in Home
   ========================================================= */
.rm-single-question-grid{
  grid-template-columns:minmax(0,980px) !important;
  justify-content:center;
}
.rm-question-feature{
  min-height:0;
  padding:clamp(30px,5vw,58px);
}
.rm-question-feature h3{
  max-width:820px;
  margin-bottom:20px;
  font-size:clamp(2rem,4vw,4rem);
  line-height:1.05;
}
.rm-question-feature > p:not(.rm-question-action){
  max-width:760px;
  font-size:clamp(1.05rem,1.4vw,1.25rem);
}
.rm-question-action{
  margin-top:30px !important;
}
@media(max-width:700px){
  .rm-question-feature{padding:28px 22px;}
  .rm-question-feature h3{font-size:clamp(2rem,10vw,3.1rem);}
  .rm-question-action .rm-button{width:100%;}
}


/* =========================================================
   RM Theme 2.5 — Journal / Diario di laboratorio
   ========================================================= */

.rm-journal {
  padding: 0 28px 120px;
}

.rm-journal-intro {
  max-width: 1180px !important;
  padding-top: clamp(76px, 9vw, 130px);
  padding-bottom: 54px;
}

.rm-journal-title {
  margin: 0 0 22px;
  font-family: var(--rm-body);
  font-size: clamp(4rem, 8vw, 8rem);
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.055em;
}

.rm-journal-description {
  max-width: 760px;
}

.rm-journal-description p {
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
}

.rm-journal-query {
  max-width: 1400px !important;
}

.rm-journal-grid {
  gap: 20px !important;
}

.rm-journal-card {
  min-height: 360px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--rm-line);
  border-radius: 22px;
  background: rgba(255,250,242,.52);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    background-color .22s ease;
}

.rm-journal-card:hover {
  transform: translateY(-5px);
  border-color: rgba(120,148,164,.72);
  background: rgba(255,250,242,.88);
  box-shadow: var(--rm-shadow);
}

.rm-journal-category {
  margin: 0 0 18px;
  font-family: var(--rm-display);
  font-size: .79rem;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.rm-journal-category a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 11px;
  border: 1px solid rgba(198,102,48,.45);
  border-radius: 999px;
  color: var(--rm-orange);
  text-decoration: none;
}

.rm-journal-category a:hover {
  background: rgba(198,102,48,.09);
}

.rm-journal-card-title {
  margin: 0 0 18px;
  font-family: var(--rm-body);
  font-size: clamp(1.7rem, 2.25vw, 2.45rem);
  font-weight: 430;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.rm-journal-card-title a {
  text-decoration: none;
}

.rm-journal-card-title a:hover {
  color: var(--rm-orange);
}

.rm-journal-excerpt {
  flex: 1;
}

.rm-journal-excerpt p {
  font-size: 1rem;
  line-height: 1.55;
}

.rm-journal-excerpt .wp-block-post-excerpt__more-link {
  display: inline-flex;
  align-items: center;
  margin-top: 14px;
  color: var(--rm-navy);
  font-weight: 600;
  text-decoration-color: var(--rm-blue);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

.rm-journal-excerpt .wp-block-post-excerpt__more-link:hover {
  color: var(--rm-orange);
  text-decoration-color: var(--rm-orange);
}

.rm-journal-meta {
  margin-top: 24px;
  padding-top: 17px;
  border-top: 1px solid var(--rm-line);
  color: var(--rm-blue);
  font-size: .82rem;
  letter-spacing: .04em;
}

.rm-journal-empty {
  padding: 48px;
  border: 1px dashed var(--rm-blue);
  border-radius: 22px;
  background: rgba(255,250,242,.42);
  text-align: center;
}

.rm-journal-pagination {
  margin-top: 46px;
  gap: 18px;
}

.rm-journal-pagination a,
.rm-journal-pagination .page-numbers {
  min-width: 42px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border: 1px solid var(--rm-line);
  border-radius: 999px;
  text-decoration: none;
}

.rm-journal-pagination .current,
.rm-journal-pagination a:hover {
  border-color: var(--rm-orange);
  color: var(--rm-orange);
}

@media (max-width: 1024px) {
  .rm-journal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .rm-journal {
    padding: 0 18px 88px;
  }

  .rm-journal-intro {
    padding-top: 58px;
    padding-bottom: 34px;
  }

  .rm-journal-title {
    font-size: clamp(3.25rem, 17vw, 5rem);
  }

  .rm-journal-grid {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }

  .rm-journal-card {
    min-height: 0;
    padding: 22px;
    border-radius: 18px;
  }

  .rm-journal-card-title {
    font-size: 1.75rem;
  }

  .rm-journal-empty {
    padding: 30px 22px;
  }
}
