.offer-banner {
  display:grid;
  grid-template-columns:1.25fr 1fr auto;
  gap:28px;
  align-items:center;
  margin:0 0 30px;
  padding:24px 28px;
  background:var(--orange);
  color:var(--ink);
}
.offer-banner__label { display:block; margin-bottom:8px; font-size:10px; font-weight:700; letter-spacing:.14em; }
.offer-banner strong { font:900 clamp(31px,4vw,56px)/.8 var(--display); letter-spacing:-.03em; }
.offer-banner p { display:grid; gap:4px; font-size:13px; }.offer-banner p b { font:800 20px var(--display); }
.offer-banner p span { margin-top:5px; font-size:10px; font-weight:600; }
.offer-banner>a { padding:13px 17px; border:1px solid var(--ink); border-radius:999px; font-size:12px; font-weight:700; white-space:nowrap; transition:.2s; }
.offer-banner>a:hover { background:var(--ink); color:var(--paper); }
@media (max-width:700px) {
  .offer-banner { grid-template-columns:1fr; gap:20px; padding:22px; }
  .offer-banner strong { font-size:38px; }
  .offer-banner>a { width:max-content; }
}

/* Hero refinement: the claim stays in its own typographic column. */
.hero__greeting {
  top:clamp(160px,22vh,230px);
  left:clamp(24px,7vw,120px);
  width:clamp(280px,28vw,420px);
  display:grid;
  gap:.02em;
  font-size:clamp(54px,5.4vw,84px);
  line-height:.9;
}
.hero__greeting span { display:block; }
.hero__availability { display:none; }
.footer { justify-content:flex-end; }

/* Keep the desktop hero balanced also on very tall screens. */
@media (min-width:701px) {
  .hero, .hero__frame { height:clamp(720px, 100svh, 980px); min-height:0; }
}

@media (max-width:700px) {
  .hero__greeting { top:125px; left:18px; width:245px; font-size:52px; }
  .hero__image { height:410px; bottom:70px; }

  /* Mobile hero: each visual block has its own clear space. */
  .hero, .hero__frame { height:850px; min-height:850px; }
  .hero__greeting { top:125px; left:18px; width:250px; font-size:50px; }
  .hero__image { top:270px; bottom:auto; width:min(80vw,340px); height:360px; }
  .hero__role { top:650px; right:18px; bottom:auto; font-size:24px; }
  .hero__title { top:732px; bottom:auto; left:18px; font-size:74px; }

  /* Never let the service prices overflow the card. */
  .service-card { grid-template-columns:45px minmax(0,1fr); width:100%; }
  .service-card > div:nth-child(2), .service-card ul, .service-card .round-link { min-width:0; }
  .service-card ul { width:100%; }
  .service-card li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
  .service-card li strong { white-space:nowrap; }
  .service-card .round-link {
    display:flex;
    width:100%;
    height:54px;
    justify-content:space-between;
    padding:0 18px;
    border-radius:0;
    font-size:20px;
    justify-self:stretch;
    margin-top:8px;
  }
  .service-card .round-link::before {
    content:'PRENOTA UNA CONSULENZA';
    font:800 15px var(--display);
    letter-spacing:.04em;
  }
}

@media (max-width:380px) {
  .hero, .hero__frame { height:785px; min-height:785px; }
  .hero__greeting { top:115px; font-size:46px; }
  .hero__image { top:245px; height:310px; }
  .hero__role { top:570px; font-size:21px; }
  .hero__title { top:640px; font-size:66px; }
}

/* One centred reading column for the complete editorial flow. */
.header {
  position:fixed;
  background:rgba(247,245,239,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:box-shadow .25s, background .25s;
}
.header.shadow-header { background:rgba(247,245,239,.96); box-shadow:0 2px 18px rgba(0,0,0,.08); }
.intro,
.about__grid,
.services>.container,
.contact__wrap {
  width:min(760px, calc(100% - 48px));
  margin-inline:auto;
}
.intro,
.about__grid,
.contact__wrap { grid-template-columns:1fr; }
.intro { gap:42px; padding-block:100px; }
.intro__stats { max-width:100%; }
.about__grid { gap:30px; }
.about__grid>.eyebrow,
.about__visual { grid-column:1; }
.about__copy { max-width:100%; padding-top:0; }
.about__visual { width:100%; margin-top:0; justify-self:stretch; }
.about__visual img { height:clamp(330px,52vw,520px); }
.services__heading { display:grid; gap:30px; margin:24px 0 44px; }
.services__heading p { max-width:620px; }
.service-card { grid-template-columns:54px minmax(0,1fr); gap:20px; }
.service-card>div:nth-child(2),
.service-card ul,
.service-card .round-link { grid-column:2; min-width:0; }
.service-card ul { width:100%; border-left:0; border-top:1px solid #aaa; padding:14px 0 0; }
.service-card li { display:grid; grid-template-columns:1fr auto; gap:16px; }
.service-card .round-link { justify-self:end; }
.consulting-grid,
.consulting-notices { grid-template-columns:1fr; gap:38px; }
.consulting-grid { margin-top:60px; }
.consulting-notices { margin-top:42px; }
.contact__wrap { gap:30px; }
.contact__details { max-width:100%; }

@media (max-width:700px) {
  .header { background:rgba(247,245,239,.94); }
  .intro,
  .about__grid,
  .services>.container,
  .contact__wrap { width:calc(100% - 32px); }
  .intro { padding-block:65px; }
  .service-card { grid-template-columns:45px minmax(0,1fr); }
  .service-card .round-link { justify-self:stretch; }
}

/* Brand mark and a clearer separation between headline and portrait. */
.nav__logo { display:grid; width:34px; height:34px; place-items:center; }
.nav__logo img { width:100%; height:100%; object-fit:contain; }
@media (min-width:701px) {
  .hero__greeting { left:clamp(24px,5vw,88px); width:clamp(260px,23vw,340px); font-size:clamp(50px,4.5vw,74px); }
  .hero__image { left:55%; }
}
@media (max-width:700px) {
  .hero__image { top:310px; height:330px; }
}
@media (max-width:380px) {
  .hero__image { top:290px; height:270px; }
}

/* Balanced metrics row. */
.intro__stats {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(18px,5vw,54px);
  padding-top:20px;
}
.intro__stats span { min-width:0; font-size:12px; line-height:1.25; }
.intro__stats b { margin-bottom:7px; font-size:clamp(42px,4vw,56px); line-height:.82; }
.intro__stats span:nth-child(2) { justify-self:center; }
.intro__stats span:nth-child(3) { justify-self:end; }
@media (max-width:700px) {
  .intro__stats { gap:12px; padding-top:16px; }
  .intro__stats span { font-size:10px; }
  .intro__stats b { font-size:34px; }
}
