/* SkyFilmsBCN W2 refactor layer — Gate A local only, 2026-09-03.
 * Additive hooks for the _review-addendum-2026-09-03 dobor.
 * No visual change until the corresponding MIGX variants are filled.
 * Load synchronously BEFORE legacy main.min.css (see head addendum note).
 * Staging/production untouched. */


/* FAQ variant of block_text: question headings keep hierarchy, answers inset. */
.faq-visible-source .text h3 {
  margin-top: 1.25em;
  text-wrap: balance;
}
.faq-visible-source .text h3 + p {
  margin-top: 0.35em;
}

/* Numbered process variant of block_garanties (list_type=1 rows). */
.process-steps .item.rows .num {
  min-width: 2.5rem;
  min-height: 2.5rem;
  aspect-ratio: 1;
}
.process-steps .item.rows .info {
  min-height: 3.5rem;
}

/* Deliverables CTA variant of block_info: keep CTA reachable, no layout shift. */
.deliverables-cta .btn--main {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
}

/* Canonical price-path teaser: numbers come from the single tariff source only. */
.neutral-price-path .price-token {
  font-variant-numeric: tabular-nums;
}


/* block_service_area: land-only Catalonia map + 7-link list (no-JS primary). */
.s-service-area .map-card {
  margin: 0;
  padding: clamp(10px, 2vw, 24px);
  border: 1px solid #d7d7d7;
  background: #f8f6f2;
}
.s-service-area .map-card svg {
  display: block;
  inline-size: 100%;
  block-size: auto;
  max-block-size: 760px;
  margin-inline: auto;
}
.s-service-area .map-card figcaption {
  max-inline-size: 78ch;
  margin: 14px 8px 0;
  color: #5b767b;
  line-height: 1.55;
}
.s-service-area .zone-list {
  margin-block-start: 24px;
  padding-block-start: 22px;
  border-block-start: 1px solid #d7d7d7;
}
.s-service-area .zone-list-title {
  margin: 0 0 14px;
  color: #1e4850;
  font-family: "Noto Serif SC", Georgia, serif;
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 500;
  line-height: 1.25;
}
.s-service-area .zone-list ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.s-service-area .zone-list li a {
  display: flex;
  min-block-size: 48px;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  border: 1px solid #d7d7d7;
  background: #fff;
  color: #1e4850;
  font-weight: 700;
  text-decoration: none;
}
.s-service-area .zone-list li a span {
  color: #958c78;
  font-size: 0.76rem;
  letter-spacing: 0.08em;
}
@media (hover: hover) {
  .s-service-area .zone-list li a:hover {
    border-color: #958c78;
    color: #1e4850;
  }
}
.s-service-area .zone-list a:focus-visible,
.s-service-area .map-card svg a:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}
.s-service-area .caveat {
  margin: 20px 8px 0;
  border-inline-start: 4px solid #c7b793;
  background: #fff;
  padding: 14px 16px;
  line-height: 1.55;
}
.s-service-area .map-source {
  margin: 18px 8px 0;
  color: #5b767b;
  font-size: 0.8rem;
  line-height: 1.55;
}
.s-service-area .map-source a {
  color: #1e4850;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}
@media (max-width: 780px) {
  .s-service-area .zone-list ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 430px) {
  .s-service-area .map-card {
    padding: 8px;
  }
  .s-service-area .zone-list ul {
    grid-template-columns: 1fr;
  }
  .s-service-area .map-card figcaption,
  .s-service-area .zone-list,
  .s-service-area .caveat,
  .s-service-area .map-source {
    margin-inline: 8px;
  }
}
@media (forced-colors: active) {
  .s-service-area .map-card,
  .s-service-area .caveat,
  .s-service-area .zone-list li a {
    border-color: CanvasText;
    background: Canvas;
  }
}

/* ---- Added 2026-09-03 (content/UI wave, Gate A local) ---------------------- */

/* Reserve the fixed header height so the first section never renders beneath it. */
body { padding-top: var(--wave6e-header-mobile); }

/* The legacy pseudo-element points at a missing /assets/upload/breadcrumbs.svg.
   Keep the current blank rendering and prevent that avoidable 404. The body
   prefix wins over the later legacy `.breadcrumbs > :after` rule. */
body .breadcrumbs > *::after { content: none; }

/* Portfolio grid: block_gallery with css_class="gallery-grid" renders a static
   grid instead of the swiper carousel, so all work is visible at once. */
.g-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 1rem;
}
.g-grid__item {
  display: block;
  overflow: hidden;
  border-radius: .25rem;
  aspect-ratio: 4 / 3;
  background: #e9e6df;
}
.g-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease-out;
}
.g-grid__item:hover img,
.g-grid__item:focus-visible img { transform: scale(1.04); }
.g-grid__item:focus-visible { outline: 2px solid #958c78; outline-offset: 3px; }

@media (max-width: 47.9375rem) {
  .g-grid { grid-template-columns: repeat(2, 1fr); gap: .5rem; }
}

/* RGPD consent row in the enquiry forms. */
.input-group.consent { margin: .75rem 0 1rem; }
.consent-label {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .8125rem;
  line-height: 1.45;
  cursor: pointer;
}
.consent-label input[type="checkbox"] {
  flex: 0 0 auto;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: .1rem;
  accent-color: #958c78;
}
.consent-label a { text-decoration: underline; }

/* Legal draft notice on the policy page. */
.hold-notice {
  border-left: 3px solid #b4462f;
  background: #fdf3f0;
  padding: .75rem 1rem;
  margin-bottom: 1.5rem;
}
mark.hold {
  background: #fff3c4;
  padding: 0 .2em;
  border-radius: .15em;
}

/* Four service cards: 1 / 2 / 2 / 4 columns. The explicit 64rem tier keeps
   legacy tablet/desktop rules from recreating the old 3 + 1 final row. */
body .s-prices > * .wrapper:has(.card:nth-child(4)) .card { width: 100%; }
@media only screen and (min-width: 48rem) {
  body .s-prices > * .wrapper:has(.card:nth-child(4)) .card { width: 50%; }
}
@media only screen and (min-width: 64rem) {
  body .s-prices > * .wrapper:has(.card:nth-child(4)) .card { width: 50%; }
}
@media only screen and (min-width: 80rem) {
  body .s-prices > * .wrapper:has(.card:nth-child(4)) .card { width: 25%; }
}

/* Keep net, tax and canonical gross together at the bottom of each service
   card instead of letting the legacy auto-margin detach the tax line. */
body .s-prices > * .wrapper .card .content .service-card__price {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  margin-top: auto;
  gap: .35rem;
}
body .s-prices > * .wrapper .card .content .service-card__price-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .25rem .45rem;
}
body .s-prices > * .wrapper .card .content .service-card__price-line > .button {
  margin-top: 0;
}
body .s-prices > * .wrapper .card .content .service-card__price-line > .tax-note,
body .s-prices > * .wrapper .card .content .service-card__price > .pricing-card__gross {
  margin: 0;
}

/* Wave 6C: keep the home eyebrow below the fixed header and support the
   approved subtitle plus two explicit hero actions without inline styles. */
.s-banner:first-of-type {
  padding-block-start: clamp(2.5rem, 5vw, 5rem);
}
.s-banner > .container > .content > .hero-subtitle {
  max-inline-size: 68ch;
  margin: 0;
  color: #383838;
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  line-height: 1.55;
}
.s-banner > .container > .content > .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}
.s-banner > .container > .content > .hero-actions .btn {
  min-block-size: 48px;
  justify-content: center;
}

/* Wave 6C: Floorfy examples are direct, visible links. */
.floorfy-examples .floorfy-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.floorfy-examples .floorfy-link {
  min-block-size: 64px;
  padding: 1rem;
  justify-content: center;
  overflow-wrap: anywhere;
  text-align: center;
}

@media (max-width: 47.9375rem) {
  .s-banner:first-of-type {
    padding-block-start: 2rem;
  }
  .s-banner > .container > .content > .hero-actions,
  .s-banner > .container > .content > .hero-actions .btn,
  .floorfy-examples .floorfy-links {
    inline-size: 100%;
  }
  .floorfy-examples .floorfy-links {
    grid-template-columns: 1fr;
  }
}

/* ---- Wave 6E: shared polish, local stand only ---------------------------- */

:root {
  --wave6e-header-mobile: 72px;
  --wave6e-header-desktop: 84px;
}

/* The source PNG contains generous transparent margins. A clipped, wider
   rendering enlarges the visible mark without changing the approved artwork. */
body .header > .container {
  min-block-size: var(--wave6e-header-mobile);
  align-items: center;
}
body .header > .container .logo {
  flex: 0 0 min(250px, calc(100% - 4rem));
  inline-size: min(250px, calc(100% - 4rem));
  max-inline-size: calc(100% - 4rem);
  block-size: var(--wave6e-header-mobile);
  overflow: hidden;
  padding: 0;
}
body .header > .container .logo > a {
  display: flex;
  block-size: 100%;
  align-items: center;
}
body .header > .container .logo img {
  display: block;
  inline-size: 280px;
  max-inline-size: none;
  block-size: auto;
  margin-inline-start: -28px;
}

/* Replace the inherited rotated words with compact, labelled SVG controls. */
body .s-banner > .container > .hero-socials {
  display: none;
  inline-size: 5%;
  flex-direction: column;
  align-self: center;
  gap: .75rem;
  transform: none;
}
body .s-banner > .container > .hero-socials > a {
  display: inline-flex;
  inline-size: 44px;
  block-size: 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid #d7d7d7;
  border-radius: 50%;
  background: #fff;
  color: #1e4850;
  text-transform: none;
  writing-mode: horizontal-tb;
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
body .s-banner > .container > .hero-socials > a:hover {
  border-color: #958c78;
  background: #f8f6f2;
  transform: translateY(-2px);
}
body .s-banner > .container > .hero-socials > a:focus-visible {
  outline: 3px solid #1e4850;
  outline-offset: 3px;
}
body .s-banner > .container > .hero-socials img {
  display: block;
  inline-size: 24px;
  block-size: 24px;
}

@media only screen and (min-width: 48rem) {
  body .s-banner > .container > .hero-socials {
    display: flex;
  }
}

@media only screen and (min-width: 73.75rem) {
  body {
    padding-top: var(--wave6e-header-desktop);
  }
  body .header > .container {
    min-block-size: var(--wave6e-header-desktop);
  }
  body .header > .container .logo {
    flex-basis: 300px;
    inline-size: 300px;
    max-inline-size: 300px;
    block-size: var(--wave6e-header-desktop);
  }
  body .header > .container .logo img {
    inline-size: 340px;
    margin-inline-start: -34px;
  }
  body .header > .container > nav {
    max-inline-size: calc(100% - 300px);
  }
}

/* Portfolio-only opt-in grid. The photo lists remain untouched: the last
   items simply rebalance into complete rows at desktop, tablet and 390px. */
body .g-grid.g-grid--balanced {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
body .g-grid.g-grid--balanced > .g-grid__item {
  grid-column: span 3;
}
body .g-grid.g-grid--balanced:has(> .g-grid__item:last-child:nth-child(4n + 1))
  > .g-grid__item:nth-last-child(5),
body .g-grid.g-grid--balanced:has(> .g-grid__item:last-child:nth-child(4n + 1))
  > .g-grid__item:nth-last-child(4),
body .g-grid.g-grid--balanced:has(> .g-grid__item:last-child:nth-child(4n + 1))
  > .g-grid__item:nth-last-child(3) {
  grid-column: span 4;
}
body .g-grid.g-grid--balanced:has(> .g-grid__item:last-child:nth-child(4n + 1))
  > .g-grid__item:nth-last-child(-n + 2) {
  grid-column: span 6;
}

@media only screen and (min-width: 48rem) and (max-width: 73.6875rem) {
  body .g-grid.g-grid--balanced {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  body .g-grid.g-grid--balanced > .g-grid__item {
    grid-column: span 2;
  }
  body .g-grid.g-grid--balanced:has(> .g-grid__item:last-child:nth-child(3n + 1))
    > .g-grid__item:nth-last-child(-n + 4) {
    grid-column: span 3;
  }
}

@media (max-width: 47.9375rem) {
  body .g-grid.g-grid--balanced {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .5rem;
  }
  body .g-grid.g-grid--balanced > .g-grid__item {
    grid-column: span 3;
  }
  body .g-grid.g-grid--balanced:has(> .g-grid__item:last-child:nth-child(odd))
    > .g-grid__item:nth-last-child(-n + 3) {
    grid-column: span 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .s-banner > .container > .hero-socials > a {
    transition: none;
  }
}

/* ---- Wave 6G: gross prices and legal documents ----------------------- */
.pricing-card__gross,
.pricing-travel__gross,
.pricing-section__notice-gross,
.gross-price {
  color: #53666a;
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.35;
}
.pricing-card__gross { margin: -.25rem 0 .35rem; }
.pricing-travel__gross { display: block; margin-top: .2rem; }
.pricing-section__notice-gross { display: block; margin-top: .3rem; }
.gross-price { display: inline-block; margin-inline-start: .3rem; }

/* ---- Wave 7-I: bounded content images and image-backed guarantees -------- */
html body main img:not(.mask):not([src*="/icons/"]):not([src*="logo"]) {
  object-fit: cover;
  object-position: center;
}

html body section.s-garanties.background-image > .container > .s-garanties__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4rem);
}
html body section.s-garanties.background-image > .container > .s-garanties__split > .s-garanties__body {
  align-self: center;
  width: 100%;
  max-width: none;
  padding-bottom: 0;
}
html body section.s-garanties.background-image > .container > .s-garanties__split > .s-garanties__media {
  width: 100%;
  max-width: none;
  max-height: 560px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin: 0;
  border-radius: .5rem;
}
html body section.s-garanties.background-image > .container > .s-garanties__split > .s-garanties__media.reverse {
  margin: 0;
}
html body section.s-garanties.background-image > .container > .s-garanties__split > .s-garanties__media > img:not(.guarantee-item__icon) {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 560px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 47.9375rem) {
  html body section.s-garanties.background-image > .container > .s-garanties__split {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }
  html body section.s-garanties.background-image > .container > .s-garanties__split > .s-garanties__media {
    order: -1;
  }
  html body section.s-garanties.background-image > .container > .s-garanties__split > .s-garanties__body {
    order: 1;
  }
}
/* ---- End Wave 7-I ------------------------------------------------------- */

/* ---- Wave 7-K: evidence-led advantages band ----------------------------- */
html body section.s-garanties.advantages {
  overflow: visible;
  padding-block: clamp(3.5rem, 7vw, 6rem);
}

html body section.s-garanties.advantages > .container {
  width: calc(100% - 2rem);
  max-width: 75rem;
  margin-inline: auto;
  padding-inline: 1rem;
}

html body section.s-garanties.advantages .advantages__title {
  max-width: 18ch;
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  color: #fff;
  text-align: center;
  text-wrap: balance;
}

html body section.s-garanties.advantages .advantages__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 1rem;
  width: 100%;
  margin: 0;
}

html body section.s-garanties.advantages .advantage-tile {
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-content: start;
  min-width: 0;
  min-height: 100%;
  margin: 0;
  padding: clamp(1.4rem, 3vw, 2rem);
  border: 1px solid #ddd8cd;
  border-radius: .5rem;
  background: #f8f6f2;
  color: #383838;
  text-align: left;
}

html body section.s-garanties.advantages svg.service-icon.advantage-tile__icon {
  margin: 0 0 1.25rem;
  color: #5b767b;
}

html body section.s-garanties.advantages .advantage-tile__value {
  margin: 0 0 .7rem;
  color: #1e4850;
  font-family: "Noto Serif SC", Georgia, serif;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 1.08;
  text-wrap: balance;
}

html body section.s-garanties.advantages .advantage-tile__copy {
  max-width: 42ch;
  margin: 0;
  color: #383838;
  font-size: 1rem;
  line-height: 1.55;
  text-wrap: pretty;
}

html body section.s-garanties.advantages .advantages__method {
  max-width: 78ch;
  margin: clamp(1.75rem, 4vw, 2.5rem) auto 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, .35);
  color: #fff;
  font-size: .8125rem;
  line-height: 1.55;
  text-align: center;
  text-wrap: pretty;
}

html body .s-prices > * .wrapper .card .content .service-card__price-line > .tax-note {
  color: #53666a;
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.35;
}

@media (min-width: 48rem) {
  html body section.s-garanties.advantages .advantages__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

@media (min-width: 80rem) {
  html body section.s-garanties.advantages .advantages__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* ---- End Wave 7-K ------------------------------------------------------- */

/* ---- Wave 7-J2: intro actions and service visual lists ----------------- */
html body .service-intro__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 12px;
  margin-top: 1.5rem;
}

html body .s-about .text-left > .service-intro__actions {
  justify-content: flex-start;
}

html body .service-intro__actions > .btn {
  display: inline-flex;
  align-self: stretch;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 48px;
  margin: 0;
  text-align: center;
  white-space: nowrap;
}

html body .service-intro__actions > .btn--main {
  font-weight: 700;
}

html body section.s-garanties.service-visual.background-image > .container > .s-garanties__split > .s-garanties__body {
  display: grid;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  align-self: stretch;
  gap: .75rem;
}

html body section.s-garanties.service-visual .guarantee-item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  grid-template-areas:
    "icon title"
    "icon description";
  align-content: center;
  align-items: center;
  min-width: 0;
  min-height: 0;
  gap: .25rem 1rem;
}

html body section.s-garanties.service-visual .guarantee-item__icon {
  grid-area: icon;
  margin: 0;
  color: #5b767b;
}

html body section.s-garanties.service-visual .service-visual__item-title {
  grid-area: title;
  margin: 0;
  color: #1e4850;
  font-family: "Noto Sans", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  text-wrap: pretty;
}

html body section.s-garanties.service-visual .guarantee-item > .descr {
  grid-area: description;
  margin: 0;
  font-size: .9375rem;
  line-height: 1.4;
  text-align: left;
}

html body section.s-garanties.service-visual .guarantee-item > .descr:empty {
  display: none;
}

@media (max-width: 29.9375rem) {
  html body .service-intro__actions > .btn {
    flex: 0 1 auto;
    padding-inline: 1rem;
    font-size: .9375rem;
  }
}
/* ---- End Wave 7-J2 ----------------------------------------------------- */

.legal-document .container { max-width: 70rem; }
.legal-document .text { line-height: 1.7; }
.legal-document .text h2 { margin: 2.5rem 0 1rem; }
.legal-document .text h3 { margin: 1.75rem 0 .75rem; }
.legal-document .text ul { padding-inline-start: 1.4rem; }
.legal-document .text li + li { margin-top: .45rem; }
.legal-document .text table { width: 100%; margin: 1.5rem 0; }
.legal-document .text th,
.legal-document .text td { border: 1px solid #cfd7d8; padding: .75rem; text-align: left; vertical-align: top; }
.legal-document .text caption { color: #383838; font-weight: 700; text-align: left; }
@media (max-width: 47.9375rem) {
  .legal-document .text table { display: block; overflow-x: auto; }
}
/* ---- End Wave 6G --------------------------------------------------------- */
