/* Brand patterns from assets/patterns.
   sub-*  : subtle patterns, used as tiles, thumbnails and section backgrounds.
   bold-* : colour-blocked fusion patterns, used as covers only, never behind running text. */

.pat { background: var(--soft) center / cover no-repeat; }
.pat.pat-sub-arch-atlantic    { background-image: url("../patterns/sub-arch-atlantic.svg"); }
.pat.pat-sub-arch-ocean       { background-image: url("../patterns/sub-arch-ocean.svg"); }
.pat.pat-sub-momentum-terra   { background-image: url("../patterns/sub-momentum-terra.svg"); }
.pat.pat-sub-pillars-atlantic { background-image: url("../patterns/sub-pillars-atlantic.svg"); }
.pat.pat-sub-rings-emerald    { background-image: url("../patterns/sub-rings-emerald.svg"); }
.pat.pat-sub-routes-ice       { background-image: url("../patterns/sub-routes-ice.svg"); }
.pat.pat-sub-routes-sand      { background-image: url("../patterns/sub-routes-sand.svg"); }
.pat.pat-sub-star-atlantic    { background-image: url("../patterns/sub-star-atlantic.svg"); }
.pat.pat-sub-wave-atlantic    { background-image: url("../patterns/sub-wave-atlantic.svg"); }
.pat.pat-sub-wave-lime        { background-image: url("../patterns/sub-wave-lime.svg"); }
.pat.pat-bold-arch            { background-image: url("../patterns/bold-arch.svg"); }
.pat.pat-bold-kilim           { background-image: url("../patterns/bold-kilim.svg"); }
.pat.pat-bold-node            { background-image: url("../patterns/bold-node.svg"); }
.pat.pat-bold-rosette         { background-image: url("../patterns/bold-rosette.svg"); }
.pat.pat-bold-starcross-ocean { background-image: url("../patterns/bold-starcross-ocean.svg"); }
.pat.pat-bold-starcross-terra { background-image: url("../patterns/bold-starcross-terra.svg"); }
.pat.pat-bold-zellige         { background-image: url("../patterns/bold-zellige.svg"); }

/* Bold patterns tile at their natural repeat */
.pat[class*="pat-bold-"] { background-size: 300px 300px; background-repeat: repeat; background-position: left top; }

/* Page-title side tile */
.phero-side.pat { display: block; min-height: 320px; border-radius: var(--r); }

/* Pattern tile inside a grid */
.tile.pat { min-height: 260px; border-radius: var(--r); }

/* Thumbnail above a ruled column */
.thumb { height: 190px; border-radius: var(--r); margin-bottom: 10px; }

/* Card covers: the label sits on a solid chip, so no text runs over the pattern */
.card .top.pat { min-height: 220px; align-items: flex-end; justify-content: flex-start; }
.card .top.pat .eyebrow { background: var(--white); color: var(--ink) !important; padding: 7px 12px; border-radius: var(--r); text-align: left; }

/* Entry Guide cover */
.guide { grid-template-columns: 200px minmax(0, 1fr) minmax(0, 1.2fr); }
.guide .cover { aspect-ratio: 600 / 850; border-radius: var(--r); box-shadow: 0 12px 30px color-mix(in srgb, var(--atlantic) 35%, transparent); }

/* Closing band: wave pattern under a dark veil */
main section[aria-labelledby="cta-h"] {
  background: linear-gradient(color-mix(in srgb, var(--atlantic) 72%, transparent), color-mix(in srgb, var(--atlantic) 72%, transparent)), url("../patterns/sub-wave-atlantic.svg") center / cover no-repeat;
}

/* Signature strip above the footer */
.pattern-band { height: 56px; background: url("../patterns/bold-kilim.svg") left center / 112px 112px repeat-x; }

@media (max-width: 960px) {
  .phero-side.pat { display: block; grid-column: span 12; min-height: 180px; }
  .guide { grid-template-columns: minmax(0, 1fr); }
  .guide .cover { max-width: 180px; }
}
.site-footer address { color: var(--white); }

/* Photos */
.ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph .chip { z-index: 1; }
.hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--atlantic) 35%, transparent) 0%, color-mix(in srgb, var(--atlantic) 78%, transparent) 55%, color-mix(in srgb, var(--atlantic) 82%, transparent) 100%); }
@media (max-width: 960px) { .hero-photo::after { background: color-mix(in srgb, var(--atlantic) 76%, transparent); } }

/* Partner logo wall: white logos on Atlantic, as on the live site */
.logo-wall { background: var(--atlantic); border-radius: var(--r); padding: 40px 32px; }
.logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 28px 24px; align-items: center; }
.logos li { display: grid; place-items: center; }
.logos img { width: 100%; max-width: 150px; height: 110px; object-fit: contain; }
@media (max-width: 960px) { .logos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .logo-wall { padding: 28px 20px; } }

/* Showcase image as card cover */
.card .top.cover { position: relative; padding: 0; min-height: 0; aspect-ratio: 16 / 9; overflow: hidden; background: var(--soft); }
.card .top.cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.card .top.cover .eyebrow { position: absolute; left: 16px; bottom: 16px; background: var(--white); color: var(--ink) !important; padding: 7px 12px; border-radius: var(--r); text-align: left; }
.ph:has(img) .chip { display: none; }
