/* Moraira.info primary page-intro layer v1
   Canonical title/lead/first-screen layout for the six public landing pages.
   Page-specific styles must not redefine .page-intro*. */
:root{
  --mi-intro-start:34px;
  --mi-intro-start-mobile:22px;
  --mi-intro-title-size:clamp(36px,3.2vw,44px);
  --mi-intro-title-size-mobile:clamp(29px,8vw,33px);
  --mi-intro-lead-size:clamp(16px,1.35vw,18px);
  --mi-intro-copy-size:15px;
  --mi-intro-gap:9px;
  --mi-intro-after:24px;
  --mi-intro-copy-max:850px;
  --mi-intro-title-max:1000px;
}

/* Shared page width and vertical start ----------------------------------- */
body[data-page-intro="v1"] main.site-main--section{
  padding-block-start:var(--mi-intro-start)!important;
}
body[data-page-intro="v1"] main.site-main--section > .container:first-child{
  width:min(calc(100% - 36px),var(--mi-shell-max,1120px));
  max-width:none!important;
  margin-inline:auto!important;
  margin-block-start:0!important;
  padding:0 0 48px!important;
}
body[data-page-intro="v1"] .page-intro-host{
  margin-block-start:0!important;
  padding-block-start:0!important;
}

/* Canonical standard intro ---------------------------------------------- */
body[data-page-intro="v1"] .page-intro{
  box-sizing:border-box;
}
body[data-page-intro="v1"] .page-intro--standard{
  width:100%;
  max-width:960px;
  margin:0 0 var(--mi-intro-after)!important;
  padding:0!important;
}
body[data-page-intro="v1"] .page-intro--food{
  max-width:1040px;
}
body[data-page-intro="v1"] .page-intro__title{
  max-width:var(--mi-intro-title-max);
  margin:0!important;
  color:var(--text,#0f172a)!important;
  font-size:var(--mi-intro-title-size)!important;
  font-weight:820!important;
  line-height:1.06!important;
  letter-spacing:-.035em!important;
  text-wrap:pretty;
}
body[data-page-intro="v1"] .page-intro__lead{
  max-width:900px!important;
  margin:var(--mi-intro-gap) 0 0!important;
  color:var(--muted,#64748b)!important;
  font-size:var(--mi-intro-lead-size)!important;
  font-weight:400!important;
  line-height:1.52!important;
  text-wrap:pretty;
}
body[data-page-intro="v1"] .page-intro__copy{
  max-width:var(--mi-intro-copy-max);
  margin:8px 0 0!important;
  color:var(--muted,#64748b)!important;
  font-size:var(--mi-intro-copy-size)!important;
  line-height:1.55!important;
  text-wrap:pretty;
}
body[data-page-intro="v1"] .page-intro__actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:15px!important;
}
body[data-page-intro="v1"] .page-intro--magazine .page-intro__actions .btn{
  min-height:42px;
  padding:9px 14px;
  border-radius:999px;
  font-size:14px;
  line-height:1.2;
}
body[data-page-intro="v1"] .page-intro--magazine + #magList,
body[data-page-intro="v1"] .page-intro--magazine ~ #magList{
  margin-top:0!important;
}
body[data-page-intro="v1"] .page-intro--beaches + .beaches-section{
  margin-top:0!important;
}

/* Directory action intro ------------------------------------------------ */
body[data-page-intro="v1"] .page-intro--action{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  width:100%;
  max-width:none;
  margin:0 0 24px!important;
  padding:23px 28px!important;
  border:1px solid color-mix(in oklab,var(--accent,#006a9f) 15%,transparent);
  border-radius:20px;
  background:linear-gradient(135deg,
    color-mix(in oklab,var(--surface-2,#f7f9fa) 80%,var(--bg,#fff) 20%) 0%,
    color-mix(in oklab,var(--surface,#fff) 86%,var(--bg,#fff) 14%) 60%,
    color-mix(in oklab,var(--accent,#006a9f) 7%,var(--bg,#fff) 93%) 100%);
  box-shadow:0 12px 30px rgba(15,23,42,.06);
}
body[data-page-intro="v1"] .page-intro--action::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-92px;
  right:-68px;
  width:210px;
  height:210px;
  border-radius:50%;
  background:color-mix(in oklab,var(--accent-2,#2fa4a9) 9%,transparent);
}
body[data-page-intro="v1"] .page-intro--action .directory-hero__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
}
body[data-page-intro="v1"] .page-intro--action .page-intro__content{
  display:grid;
  gap:0;
  max-width:760px;
}
body[data-page-intro="v1"] .page-intro--action .page-intro__actions{
  justify-content:flex-end;
  margin-top:0!important;
  gap:14px;
}
body[data-page-intro="v1"] .page-intro--action .page-intro__actions .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:44px;
  padding:0 17px;
  border-radius:13px;
  font-size:13.5px;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
}
body[data-page-intro="v1"] .page-intro--action .page-intro__actions .btn::after{
  content:"→";
  margin-left:8px;
  font-size:14px;
  line-height:1;
}
body[data-page-intro="v1"] .page-intro--action .directory-hero__btn--primary{
  border:1px solid color-mix(in oklab,var(--accent,#006a9f) 25%,transparent);
  background:linear-gradient(135deg,var(--accent,#006a9f),color-mix(in oklab,var(--accent-2,#2fa4a9) 68%,var(--accent,#006a9f) 32%));
  color:#fff;
  box-shadow:0 9px 20px color-mix(in oklab,var(--accent,#006a9f) 17%,transparent);
}
body[data-page-intro="v1"] .page-intro--action .directory-hero__btn--primary:hover,
body[data-page-intro="v1"] .page-intro--action .directory-hero__btn--primary:focus-visible{
  color:#fff;
  text-decoration:none;
  transform:translateY(-1px);
}
body[data-page-intro="v1"] .page-intro--action .directory-hero__btn--secondary{
  min-height:42px;
  padding-inline:2px;
  border:0!important;
  background:transparent!important;
  color:var(--accent,#006a9f)!important;
  box-shadow:none!important;
}
body[data-page-intro="v1"] .page-intro--action .directory-hero__btn--secondary:hover,
body[data-page-intro="v1"] .page-intro--action .directory-hero__btn--secondary:focus-visible{
  color:color-mix(in oklab,var(--accent,#006a9f) 82%,var(--text,#0f172a) 18%)!important;
  text-decoration:none;
}

/* Compact home intro ----------------------------------------------------- */
html[lang="de"]{--mi-home-bg:url("/de/herob-1200.webp");--mi-home-bg-mobile:url("/de/herob-768.webp");--mi-home-art:url("/de/hintergrundbild-1200.webp")}
html[lang="en"]{--mi-home-bg:url("/en/herob-1200.webp");--mi-home-bg-mobile:url("/en/herob-768.webp");--mi-home-art:url("/en/hintergrundbild-1200.webp")}
html[lang="es"]{--mi-home-bg:url("/es/herob-1200.webp");--mi-home-bg-mobile:url("/es/herob-768.webp");--mi-home-art:url("/es/hintergrundbild-1200.webp")}
html[lang="nl"]{--mi-home-bg:url("/nl/herob-1200.webp");--mi-home-bg-mobile:url("/nl/herob-768.webp");--mi-home-art:url("/nl/hintergrundbild-1200.webp")}
html[lang="fr"]{--mi-home-bg:url("/fr/herob-1200.webp");--mi-home-bg-mobile:url("/fr/herob-768.webp");--mi-home-art:url("/fr/hintergrundbild-1200.webp")}

body[data-page-intro="v1"] .page-intro--home.hero{
  position:relative;
  overflow:hidden;
  padding:0!important;
  border:0;
  border-bottom:1px solid var(--border,rgba(15,31,47,.10));
  border-radius:0 0 20px 20px!important;
  background:
    radial-gradient(760px 320px at 12% 100%,rgba(47,164,169,.10),transparent 62%),
    linear-gradient(180deg,rgba(255,255,255,.88),rgba(247,249,250,.95)),
    var(--mi-home-bg) left bottom/cover no-repeat!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__layout{
  width:min(calc(100% - 36px),var(--mi-shell-max,1120px));
  max-width:none!important;
  margin:0 auto!important;
  padding:24px 0 25px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr)!important;
  align-items:center!important;
  gap:28px!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__content{
  min-width:0;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__title{
  max-width:720px;
  font-size:var(--mi-intro-title-size)!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__lead{
  max-width:650px!important;
  margin-top:8px!important;
  line-height:1.48!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__search{
  width:100%;
  max-width:650px;
  margin-top:14px;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
  padding:7px!important;
  border:1px solid var(--border,rgba(15,31,47,.10))!important;
  border-radius:999px!important;
  background:var(--surface,#fff)!important;
  box-shadow:0 10px 26px rgba(15,23,42,.08)!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__search:focus-within{
  border-color:rgba(47,164,169,.55)!important;
  box-shadow:0 0 0 4px rgba(47,164,169,.14),0 12px 28px rgba(15,23,42,.09)!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__search input{
  min-width:0!important;
  width:100%!important;
  min-height:42px;
  padding:9px 12px 9px 14px!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:var(--text,#0f172a)!important;
  font-size:15px!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__search .btn,
body[data-page-intro="v1"] .page-intro--home .page-intro__search button{
  width:auto!important;
  min-height:42px!important;
  padding:9px 16px!important;
  border-radius:999px!important;
  font-size:14px!important;
  line-height:1!important;
  white-space:nowrap;
  box-shadow:none!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__visual{
  position:relative;
  overflow:hidden;
  display:block!important;
  min-height:205px!important;
  height:205px!important;
  margin:0!important;
  border:1px solid var(--border,rgba(15,31,47,.10));
  border-radius:18px!important;
  background:
    radial-gradient(110% 160% at 10% 10%,color-mix(in oklab,var(--accent,#006a9f) 18%,transparent) 0%,transparent 60%),
    var(--mi-home-art) center/cover no-repeat!important;
  box-shadow:0 16px 38px rgba(15,23,42,.10)!important;
}
body[data-page-intro="v1"] .page-intro--home .page-intro__visual::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.08));
}
body[data-page-intro="v1"] .page-intro--home .suggestions{
  display:none!important;
}
body[data-page-intro="v1"] .page-intro--home .hero-assistant-note{
  margin-top:8px!important;
}

@media (max-width:900px){
  body[data-page-intro="v1"] .page-intro--home .page-intro__layout{
    grid-template-columns:minmax(0,1fr) minmax(300px,.78fr)!important;
    gap:22px!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__visual{
    min-height:184px!important;
    height:184px!important;
  }
}

@media (max-width:720px){
  body[data-page-intro="v1"] main.site-main--section{
    padding-block-start:var(--mi-intro-start-mobile)!important;
  }
  body[data-page-intro="v1"] main.site-main--section > .container:first-child{
    width:calc(100% - 28px);
    padding-bottom:36px!important;
  }
  body[data-page-intro="v1"] .page-intro--standard{
    margin-bottom:20px!important;
  }
  body[data-page-intro="v1"] .page-intro__title{
    font-size:var(--mi-intro-title-size-mobile)!important;
    line-height:1.08!important;
    letter-spacing:-.03em!important;
  }
  body[data-page-intro="v1"] .page-intro__lead{
    margin-top:8px!important;
    font-size:16px!important;
    line-height:1.5!important;
  }
  body[data-page-intro="v1"] .page-intro__copy{
    margin-top:8px!important;
    font-size:15px!important;
    line-height:1.52!important;
  }
  body[data-page-intro="v1"] .page-intro--magazine .page-intro__actions{
    margin-top:14px!important;
  }
  body[data-page-intro="v1"] .page-intro--magazine .page-intro__actions .btn{
    min-height:40px;
    padding:8px 13px;
    font-size:13.5px;
  }
  body[data-page-intro="v1"] .page-intro--action{
    margin-bottom:22px!important;
    padding:19px 18px!important;
    border-radius:19px;
  }
  body[data-page-intro="v1"] .page-intro--action::after{
    top:-78px;
    right:-74px;
    width:170px;
    height:170px;
  }
  body[data-page-intro="v1"] .page-intro--action .directory-hero__inner{
    grid-template-columns:1fr;
    gap:15px;
  }
  body[data-page-intro="v1"] .page-intro--action .page-intro__actions{
    width:100%;
    justify-content:flex-start;
    gap:11px;
  }
  body[data-page-intro="v1"] .page-intro--action .page-intro__actions .btn{
    min-height:42px;
    font-size:13.5px;
  }
  body[data-page-intro="v1"] .page-intro--home.hero{
    border-radius:0 0 18px 18px!important;
    background:
      radial-gradient(680px 340px at 0% 0%,rgba(47,164,169,.14),transparent 62%),
      linear-gradient(180deg,rgba(247,249,250,.90),rgba(247,249,250,.70)),
      var(--mi-home-bg-mobile) center bottom/cover no-repeat!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__layout{
    width:calc(100% - 24px);
    padding:20px 0 18px!important;
    grid-template-columns:1fr!important;
    gap:0!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__title{
    max-width:100%;
    font-size:clamp(29px,8vw,33px)!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__lead{
    max-width:100%!important;
    line-height:1.45!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__search{
    max-width:none;
    margin-top:13px;
    padding:6px!important;
    gap:6px!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__search input{
    min-height:40px;
    padding:8px 9px 8px 12px!important;
    font-size:14px!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__search .btn,
  body[data-page-intro="v1"] .page-intro--home .page-intro__search button{
    min-height:40px!important;
    padding:8px 13px!important;
    font-size:14px!important;
  }
  body[data-page-intro="v1"] .page-intro--home .page-intro__visual{
    display:none!important;
  }
}

@media (max-width:370px){
  body[data-page-intro="v1"] .page-intro__title,
  body[data-page-intro="v1"] .page-intro--home .page-intro__title{
    font-size:28px!important;
  }
  body[data-page-intro="v1"] .page-intro--action .page-intro__actions{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }
  body[data-page-intro="v1"] .page-intro--action .page-intro__actions .btn{
    width:100%;
  }
}

@media (prefers-color-scheme:dark){
  body[data-page-intro="v1"] .page-intro--action{
    border-color:color-mix(in oklab,var(--accent,#006a9f) 24%,transparent);
    background:linear-gradient(135deg,
      color-mix(in oklab,var(--accent,#006a9f) 11%,var(--surface,#17212c)) 0%,
      color-mix(in oklab,var(--accent-2,#2fa4a9) 7%,var(--surface-2,#1d2935)) 100%);
  }
}

@media (prefers-reduced-motion:reduce){
  body[data-page-intro="v1"] .page-intro--action .btn{
    transition:none!important;
  }
}
