/* =========================================================================
   Di Lecce Studio, information pages (contact, privacy): page-scoped rules.
   Loaded after editorial.css + pages.css. Every rule hangs on .ctPage (contact)
   or .pvPage (privacy) on <body>, so nothing can reach another page.
   ========================================================================= */

/* ------------------------------------------------------------------ CONTACT */
.ctPage .pgFirst .edWrap { grid-template-rows: auto auto 1fr; }
.ctPage .ctHead { grid-column: 1 / span 7; grid-row: 2; margin-bottom: clamp(40px, 7vh, 72px); }
.ctPage .ctHead .edSmall { margin-bottom: var(--s5); }

.ctPage .ctBrief { grid-column: 1 / span 6; grid-row: 3; }
.ctPage .ctWho { grid-column: 8 / -1; grid-row: 2 / span 2; }

.ctPage .ctBrief__k { margin-bottom: var(--s4); }
.ctPage .ctLedger { list-style: none; margin: 0; padding: 0; counter-reset: ct; }
.ctPage .ctLedger li {
  counter-increment: ct;
  display: grid;
  grid-template-columns: 2.6em minmax(0, 1fr);
  gap: var(--s3);
  padding: var(--s4) 0;
  border-top: 1px solid var(--hair);
  font-size: clamp(1.02rem, 1.15vw, 1.12rem);
  line-height: 1.5;
}
.ctPage .ctLedger li:last-child { border-bottom: 1px solid var(--hair); }
.ctPage .ctLedger li::before {
  content: counter(ct);
  font-family: var(--f-display);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1.9;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.ctPage .ctReply { margin-top: var(--s7); }
.ctPage .ctReply p { margin: 0 0 var(--s2); font-size: clamp(1.1rem, 1.35vw, 1.3rem); line-height: 1.45; }
.ctPage .ctReply strong { font-weight: 650; color: var(--accent); }

.ctPage .ctPlate { margin: 0; max-width: 360px; }
.ctPage .ctPlate__frame { overflow: hidden; border-radius: var(--r-media); aspect-ratio: 4 / 5; background: #18181d; }
.ctPage .ctPlate__img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; }
.ctPage .ctPlate__cap { padding-top: var(--s4); border-top: 0; }
.ctPage .ctPlate__cap .edSmall { margin-bottom: var(--s3); }
.ctPage .ctPlate__name { margin: 0; font-size: clamp(1.35rem, 1.7vw, 1.65rem); }
.ctPage .ctPlate__feat { margin: var(--s3) 0 0; color: var(--soft); font-size: 15px; line-height: 1.55; max-width: 38ch; }
.ctPage .ctPlate__cta { margin: var(--s5) 0 0; }
.ctPage .ctPlate__cta .edLink--cta { font-size: clamp(1.02rem, 1.2vw, 1.15rem); word-break: break-word; }
.ctPage .ctPlate__alt { margin: var(--s4) 0 0; color: var(--soft); font-size: 14px; line-height: 1.55; max-width: 38ch; }
.ctPage .ctPlate__alt strong { color: var(--text); font-weight: 600; }

.ctPage .ctNext__head { grid-column: 1 / span 5; }
.ctPage .ctNext__head .edH2 { font-size: clamp(1.9rem, 3vw, 3rem); }
.ctPage .ctNext__head .edSmall { margin-top: var(--s5); }
.ctPage .ctSteps { grid-column: 7 / -1; list-style: none; margin: 0; padding: 0; counter-reset: cs; }
.ctPage .ctSteps li {
  counter-increment: cs;
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr);
  gap: var(--s4);
  align-items: baseline;
  padding: var(--s5) 0;
  border-top: 1px solid var(--hair);
  font-size: clamp(1.02rem, 1.15vw, 1.12rem);
  line-height: 1.55;
}
.ctPage .ctSteps li:last-child { border-bottom: 1px solid var(--hair); }
.ctPage .ctSteps li::before {
  content: counter(cs);
  font-family: var(--f-display);
  font-stretch: 80%;
  font-size: 2.4rem;
  font-weight: 200;
  line-height: 1;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 900px) {
  .ctPage .pgFirst .edWrap { grid-template-rows: none; }
  .ctPage .ctHead,
  .ctPage .ctBrief,
  .ctPage .ctWho,
  .ctPage .ctNext__head,
  .ctPage .ctSteps { grid-column: 1 / -1; grid-row: auto; }
  .ctPage .ctWho { margin-top: var(--s8); }
  .ctPage .ctPlate { max-width: 340px; }
  .ctPage .ctSteps { margin-top: var(--s7); }
}

/* ------------------------------------------------------------------ PRIVACY */
.pvPage .pvTitle { padding-bottom: clamp(56px, 9vh, 96px); }
.pvPage .pvTitle .edSmall { margin-bottom: var(--s5); }
.pvPage .pvTitle .pgHead { margin-bottom: 0; }
.pvPage .pvTitle .edLead { max-width: 62ch; margin-top: var(--s6); }

.pvPage .pvBody { padding-block: 0 var(--chap); }
.pvPage .pvSec {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--colgap);
  padding-top: clamp(56px, 9vh, 96px);
}
.pvPage .pvSec > * { grid-column: 1 / -1; min-width: 0; }
.pvPage .pvSec .edInter { margin-bottom: var(--s6); }
.pvPage .pvSec__h { grid-column: 1 / span 4; align-self: start; max-width: 15em; position: sticky; top: var(--s6); }
.pvPage .pvSec__h .edH3 { font-size: clamp(1.3rem, 1.6vw, 1.6rem); }
.pvPage .pvSec .pgProse { grid-column: 5 / -1; }

.pvPage .pgProse p,
.pvPage .pgProse li { overflow-wrap: break-word; }
.pvPage .pgProse h3 {
  margin: 2.2em 0 0.55em;
  font-family: var(--f-display);
  font-stretch: 92%;
  font-size: 1.12rem;
  font-weight: 540;
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: var(--text);
  break-after: avoid;
}
.pvPage .pgProse h3:first-child { margin-top: 0; }
.pvPage .pgProse ul { list-style: none; padding-left: 0; }
.pvPage .pgProse ul > li {
  position: relative;
  padding: 0 0 0 22px;
  margin-bottom: 0.7em;
}
.pvPage .pgProse ul > li::before {
  content: "";
  position: absolute; left: 0; top: 0.82em;
  width: 10px; height: 1px;
  background: var(--soft);
}
.pvPage .pgProse em { font-style: normal; color: var(--soft); }
.pvPage .pgProse a { overflow-wrap: anywhere; }

@media (max-width: 900px) {
  .pvPage .pvSec__h,
  .pvPage .pvSec .pgProse { grid-column: 1 / -1; }
  .pvPage .pvSec__h { position: static; max-width: none; margin-bottom: var(--s5); }
  .pvPage .pgProse { font-size: 16.5px; }
}

/* the privacy index is long (15 entries): on desktop the side panel must scroll, not clip */
@media (min-width: 901px) {
  .pvPage .edIndex { overflow-y: auto; overscroll-behavior: contain; padding-top: clamp(48px, 12vh, 120px); padding-bottom: var(--s7); }
}
