/* Original Spanish campaign layout. Plain CSS; section spacing follows the site. */
.landing-page { font-size: 18px; line-height: 1.6; }
.landing-page h1, .landing-page h2, .landing-page h3 { font-weight: 700; }
.landing-page h2 { font-size: 36px; line-height: 1.3; }
.landing-page h3 { font-size: 22px; line-height: 1.4; }
.lp-container { width: min(100%, 1440px); margin-inline: auto; padding-inline: 30px; }
.lp-section { padding-block: 60px; }
.lp-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; align-items: center; }
.lp-columns > * { min-width: 0; }
.lp-columns > img { width: 100%; height: auto; }
.lp-copy > :last-child { margin-bottom: 0; }
.lp-center-title { margin-bottom: 36px; text-align: center; }
.lp-button { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 48px; padding: 12px 24px; border: 0; border-radius: 3px; background: var(--yellow); color: var(--navy); box-shadow: 0 3px 10px #0003; font-family: Montserrat, Arial, sans-serif; font-size: 24px; font-weight: 700; line-height: 1.3; text-align: center; }
.lp-button:hover { background: #ffe16a; text-decoration: none; }
.lp-button-small { font-size: 18px; letter-spacing: 1.6px; text-transform: uppercase; }
.lp-icon { display: block; flex: 0 0 auto; width: 24px; height: 24px; fill: currentColor; }
.lp-list { display: grid; gap: 16px; margin: 0 0 28px; padding: 0; list-style: none; font-size: 20px; }
.lp-list li { display: flex; align-items: flex-start; gap: 15px; margin: 0; }
.lp-list li .lp-icon { margin-top: 5px; }
.lp-list li span { min-width: 0; }

/* The two desktop background sections use the source photograph. */
.lp-hero, .lp-contact { background: url('/public/website/landing/mayores-60-barcelona/hero.jpg') top right / cover no-repeat; }
.lp-hero { min-height: 460px; padding-block: 48px; }
.lp-hero-copy { max-width: 730px; }
.lp-hero h1 { max-width: 530px; margin-bottom: 24px; font-size: 42px; line-height: 1.3; }
.landing-page .lp-subtitle { margin-bottom: 18px; font-family: Montserrat, Arial, sans-serif; font-size: 22px; font-weight: 600; line-height: 1.4; }
.lp-hero-principles { margin-bottom: 25px; font-family: Montserrat, Arial, sans-serif; font-size: 20px; font-weight: 600; line-height: 1.5; }
.lp-hero-button { font-weight: 800; }
.lp-hero-proof { margin-top: 25px; margin-bottom: 0; font-size: 18px; }
.lp-reassurance, .lp-benefits { background: #f8f8f8; }
.lp-section-title { margin-bottom: 32px; text-align: center; }
.lp-section-title h2 { margin-bottom: 16px; }
.lp-section-title p { margin: 0; font-family: Montserrat, Arial, sans-serif; font-size: 30px; line-height: 1.4; }
.lp-session-list li:nth-child(2) > .lp-icon { color: #ffdb00; }
.lp-session-details { margin-bottom: 22px; padding: 20px 24px; background: #f8f8f8; }
.lp-session-details p { margin-bottom: 8px; }
.lp-form-wrap { scroll-margin-top: 24px; }
.lp-form-wrap h3 { margin-bottom: 20px; }
.lp-sessions { padding-block: 28px; background: var(--yellow); color: var(--navy); text-align: center; }
.lp-sessions h2 { margin-bottom: 15px; font-size: 30px; line-height: 1.4; }
.lp-session-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 30px; margin: 0; padding: 0; list-style: none; font-size: 16px; }
.lp-session-links li, .lp-session-links a { display: inline-flex; align-items: center; gap: 10px; margin: 0; }
.lp-session-links .lp-icon { width: 18px; height: 18px; }
.lp-session-links a:hover { text-decoration: underline; }
.lp-benefits-copy { display: grid; gap: 34px; }
.lp-benefit { display: flex; align-items: flex-start; gap: 16px; }
.lp-benefit > .lp-icon { width: 50px; height: 50px; color: var(--yellow); }
.lp-benefit:nth-child(2) > .lp-icon { color: var(--navy); }
.lp-benefit h3 { margin: 0 0 5px; font-size: 26px; line-height: 1.4; }
.lp-benefit p { margin: 0; font-size: 20px; }
.lp-location h2 { font-size: 30px; }
.lp-location .lp-copy > p { margin-bottom: 28px; font-size: 20px; }
.lp-location-list { gap: 24px; margin: 0; }
.lp-location-list .lp-icon { width: 40px; height: 40px; margin-top: 2px; color: var(--navy); }
.lp-location > .lp-container > .lp-button { margin-top: 30px; }
.lp-contact { padding-block: 48px; scroll-margin-top: 0; }
.lp-contact-copy { max-width: 700px; }
.lp-contact h2 { margin-bottom: 24px; font-size: 42px; line-height: 1.3; }
.lp-contact .lp-subtitle { margin-bottom: 26px; }
.lp-contact-options { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 35px; }
.lp-contact-option { display: inline-flex; align-items: flex-start; gap: 15px; }
.lp-contact-option > .lp-icon { width: 46px; height: 46px; }
.lp-contact-option--whatsapp > .lp-icon { color: #25d366; }
.lp-contact-option > span { min-width: 0; }
.lp-contact-option strong { display: block; font-family: Montserrat, Arial, sans-serif; font-size: 22px; font-weight: 600; line-height: 1.5; }
.lp-contact-option span > span { display: block; font-size: 18px; }
.lp-contact-option:hover { text-decoration: none; }
.lp-contact-option:hover strong { text-decoration: underline; }

/* Given name and first surname share one row; the other fields stay full width. */
.lp-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.lp-form > * { grid-column: 1 / -1; }
.lp-form > .lp-form-field--name, .lp-form > .lp-form-field--surname { grid-column: auto; }
.lp-form-field { min-width: 0; }
.lp-form-field label { display: block; margin-bottom: 5px; font-size: 18px; line-height: 1.5; }
.lp-form-field input, .lp-form-field textarea { display: block; width: 100%; min-height: 44px; padding: 9px 14px; border: 1px solid #707987; border-radius: 3px; background: #fff; color: var(--text); font: 400 16px/1.5 Inter, Arial, sans-serif; }
.lp-form-field textarea { min-height: 114px; resize: vertical; }
.lp-form-field input::placeholder, .lp-form-field textarea::placeholder { color: #707782; opacity: 1; }
.lp-form-field [aria-invalid='true'] { border-color: #b01919; }
.lp-form .required { color: #b01919; }
.lp-form-terms { margin: 8px 0 0; font-size: 13px; line-height: 1.6; }
.lp-form .recaptcha-notice { margin: 0; color: #565d6d; font-size: 11px; line-height: 1.6; }
.lp-form .form-verification-status { margin: 0; padding: 10px 12px; border: 1px solid #dde1e7; background: #f6f7fa; font-size: 13px; }
.lp-form .form-verification-status.is-error { border-color: #edcbc2; background: #fff4ef; color: #b01919; }
.lp-form .form-honeypot { display: none !important; }
.lp-submit { width: 100%; min-height: 44px; font-family: Inter, Arial, sans-serif; font-size: 16px; font-weight: 600; }
.lp-submit:disabled { opacity: .65; cursor: wait; }
.lp-form-notice { margin-bottom: 16px; padding: 12px 16px; border-left: 3px solid #267545; background: #eff8f1; color: #205f39; font-size: 14px; line-height: 1.6; }
.lp-form-notice-error { border-color: #b01919; background: #fff4ef; color: #a01c17; }
.lp-form .errorlist { margin: 6px 0 0; padding: 0; list-style: none; color: #b01919; font-size: 13px; }
.lp-form .errorlist li { margin: 0; }
.landing-page .grecaptcha-badge { visibility: hidden; }

.lp-faq .lp-columns { align-items: start; }
.lp-faq h2 { font-size: 26px; }
.lp-accordion { display: grid; gap: 14px; }
.lp-accordion details { border: 1px solid #d1d5db; }
.lp-accordion summary { display: flex; align-items: baseline; gap: 12px; min-height: 48px; padding: 9px 12px; background: #f8f8f8; cursor: pointer; font-family: Montserrat, Arial, sans-serif; font-size: 20px; line-height: 1.5; list-style: none; }
.lp-accordion summary::-webkit-details-marker { display: none; }
.lp-accordion summary::before { content: '+'; flex-shrink: 0; width: 14px; font-family: Inter, Arial, sans-serif; font-weight: 750; }
.lp-accordion details[open] summary::before { content: '−'; }
.lp-accordion summary:focus-visible { outline: 3px solid #1478db; outline-offset: 3px; }
.lp-faq-answer { padding: 20px 14px; border-top: 1px solid #d1d5db; }
.lp-faq-answer p { margin: 0; font-size: 18px; line-height: 1.5; }
.lp-about .lp-copy { text-align: center; }
.lp-about h2 { font-size: 30px; }
.lp-about p { margin-bottom: 30px; font-size: 20px; line-height: 1.6; }
.lp-footer { padding-block: 24px; background: var(--navy); color: #fff; text-align: center; }
.lp-footer-brand { display: inline-block; margin-bottom: 15px; color: var(--yellow); font-family: FuturaWabol, Arial, sans-serif; font-size: 32px; font-weight: 800; line-height: 1.3; }
.lp-footer-history { margin: 0 auto 20px; color: #d5d8ef; font-size: 14px; line-height: 1.6; }
.lp-footer-legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 22px; font-size: 14px; line-height: 1.6; }

@media (max-width: 1100px) {
  .lp-container { padding-inline: 24px; }
  .lp-columns { gap: 24px; }
  .lp-section { padding-block: 48px; }
  .lp-hero-copy, .lp-contact-copy { max-width: 620px; }
  .lp-hero h1, .lp-contact h2 { font-size: 40px; }
  .lp-contact-options { gap: 18px; }
  .lp-contact-option strong { font-size: 18px; }
  .lp-contact-option > .lp-icon { width: 40px; height: 40px; }
}
@media (max-width: 767px) {
  .lp-container { padding-inline: 20px; }
  .lp-columns { grid-template-columns: 1fr; gap: 30px; }
  .lp-section { padding-block: 40px; }
  .landing-page h2 { font-size: 32px; }
  .lp-section-title p { font-size: 26px; }
  .lp-hero { min-height: 700px; padding-block: 0 24px; background-image: linear-gradient(180deg, #ffffff00 35%, #ffffffaa 58%, #fff 83%), url('/public/website/landing/mayores-60-barcelona/hero-mobile.jpg'); background-position: top center; background-size: cover; }
  .lp-hero-copy { display: flex; flex-direction: column; max-width: none; padding-top: 320px; }
  .lp-hero h1 { margin-bottom: 20px; font-size: 40px; line-height: 1.1; }
  .landing-page .lp-subtitle { font-size: 18px; }
  .lp-hero-principles { margin-bottom: 12px; font-size: 14px; }
  .lp-hero .lp-hero-proof { margin: 0 0 22px; font-size: 12px; }
  .lp-hero-button { order: 1; width: 100%; }
  .lp-button { font-size: clamp(18px, 5.5vw, 24px); }
  .lp-button-small { font-size: 18px; }
  .lp-submit { font-size: 16px; }
  .lp-list { font-size: 18px; }
  .lp-sessions h2 { font-size: 28px; }
  .lp-session-links { flex-direction: column; align-items: center; gap: 10px; }
  .lp-benefit h3 { font-size: 23px; }
  .lp-benefit p { font-size: 18px; }
  .lp-location .lp-copy > p, .lp-about p { font-size: 18px; }
  .lp-location-list .lp-icon { width: 30px; height: 30px; }
  .lp-contact { padding-block: 30px; background-image: linear-gradient(180deg, #ffffff66, #ffffffe6 65%), url('/public/website/landing/mayores-60-barcelona/contact-mobile.jpg'); background-position: top left; }
  .lp-contact-copy { max-width: none; }
  .lp-contact h2 { font-size: 40px; line-height: 1.1; }
  .lp-contact-options { flex-direction: column; align-items: center; gap: 30px; }
  .lp-contact-option { flex-direction: column; align-items: center; gap: 12px; text-align: center; }
  .lp-contact-option strong { font-size: 22px; }
  .lp-contact-option > .lp-icon { width: 46px; height: 46px; }
  .lp-faq h2 { font-size: 26px; }
  .lp-accordion summary { font-size: 18px; }
  .lp-footer-legal > span { width: 100%; }
}
@media (max-width: 600px) {
  .lp-form { grid-template-columns: 1fr; }
}
@media (max-width: 360px) {
  .lp-hero h1, .lp-contact h2 { font-size: 35px; }
  .lp-hero-copy { padding-top: 285px; }
  .lp-contact-option strong { font-size: 19px; }
}
