/* Quiet, photographic refinement of the existing Agadir identity. */
.graphic-site {
  --quiet-ink: #28372f;
  --quiet-sand: #f6f4ee;
  --quiet-line: #28372f26;
  --quiet-accent: #87674d;
  --optical-shadow: inset 0 1px 0 #fffdf5a6, 0 8px 24px #28372f0d;
}
.graphic-site .site-header:not(.checkout-header) {
  position: relative;
  padding-top: 20px;
}
.graphic-site .header-utility {
  display: none;
}
.graphic-site .nav-inner.glass {
  min-height: 78px;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid var(--quiet-line);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.graphic-site .nav-inner.glass::after {
  display: none;
}
.graphic-site .brand img {
  width: 58px;
  height: 58px;
  object-fit: contain;
}
.graphic-site .brand {
  background: transparent;
  padding: 0;
}
.graphic-site .desktop-nav {
  gap: 24px;
  font-size: 13px;
}
.graphic-site .button {
  background: var(--quiet-ink);
  color: #fffdf8;
  border: 1px solid var(--quiet-ink);
  border-radius: 6px;
  box-shadow: none;
  font-weight: 500;
  min-height: 48px;
  padding: 14px 23px;
}
.graphic-site .button.secondary,
.graphic-site .button.glass,
.graphic-site .button.liquid-button {
  background: #faf9f0d9;
  color: var(--quiet-ink);
  border: 1px solid var(--quiet-line);
  box-shadow: none;
}
.graphic-site .button::after {
  display: none;
}
.graphic-site .glass::after {
  padding: 1px;
  opacity: 0.55;
}
.graphic-site .nav-inner > .button {
  font-size: 12px;
}
.graphic-site .search-toggle,
.graphic-site .menu-toggle {
  border-radius: 6px;
  box-shadow: none;
  border: 1px solid var(--quiet-line);
}
.graphic-site:not(.home-page):not(.checkout-page) main {
  padding-top: 0;
}
.graphic-site .section-heading h2,
.graphic-site .approach h2,
.graphic-site .closing h2 {
  font-weight: 500;
  letter-spacing: -0.045em;
}
.graphic-site .overline {
  font-size: 10px;
  letter-spacing: 0.15em;
  font-weight: 500;
}
.graphic-site .visual-home {
  padding-top: 32px;
}
.graphic-site .visual-home .poster-scene {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  align-items: center;
  gap: 6%;
  height: auto;
  overflow: visible;
  border-radius: 0;
}
.graphic-site .visual-home .poster-heading {
  position: static;
  color: var(--quiet-ink);
  min-width: 0;
  z-index: auto;
}
.graphic-site .visual-home .poster-heading > p {
  color: var(--quiet-accent);
  font-size: 10px;
  letter-spacing: 0.2em;
  margin: 0 0 30px;
}
.graphic-site .visual-home .poster-heading h1 {
  font-size: clamp(44px, 4.6vw, 70px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.05em;
}
.graphic-site .visual-home .poster-heading h1 em {
  color: var(--quiet-accent);
  font-style: normal;
  display: inline;
}
.visual-home .poster-description {
  display: block;
  margin: 28px 0 0;
}
.visual-home .poster-description p {
  color: var(--muted);
  line-height: 1.7;
  font-size: 16px;
  margin: 0 0 30px;
}
.visual-home .poster-description .button {
  min-width: 0;
  gap: 30px;
}
.hero-photograph {
  position: relative;
  height: clamp(460px, 41vw, 620px);
  overflow: hidden;
  border-radius: 4px;
}
.hero-photograph picture,
.hero-photograph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero-photograph img {
  object-position: 60% 50%;
}
.graphic-site .hero-location {
  position: absolute;
  left: 20px;
  bottom: 20px;
  right: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 16px 20px;
  border-radius: 4px;
  background: #faf8ecce;
  color: var(--quiet-ink);
  border: 1px solid #fffdf58c;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 8px #28372f0a;
  text-decoration: none;
  font-size: 16px;
}
.graphic-site .hero-location::after {
  padding: 1px;
  opacity: 0.5;
}
.hero-location small {
  display: block;
  font-size: 9px;
  letter-spacing: 0.15em;
  margin-bottom: 5px;
}
.visual-home .home-search {
  max-width: none;
  margin: 32px 0 0;
  padding: 24px 0;
  border-block: 1px solid var(--quiet-line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
}
.visual-home .home-search label {
  margin: 0;
  font-size: 17px;
  font-weight: 400;
}
.visual-home .home-search > div {
  width: 54%;
  gap: 10px;
}
.visual-home .home-search input {
  border-radius: 4px;
  background: transparent;
  font-size: 14px;
  padding: 12px 16px;
}
.graphic-site .visual-intro {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  align-items: center;
  gap: clamp(30px, 6vw, 90px);
  padding: 32px 0 50px;
}
.visual-intro-copy h1 {
  font-size: clamp(38px, 4.5vw, 66px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.045em;
  margin: 24px 0;
}
.visual-intro-copy h1 em {
  color: var(--quiet-accent);
  font-style: normal;
}
.visual-intro-copy > p:last-child {
  max-width: 35ch;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
}
.visual-intro-photo {
  height: clamp(330px, 34vw, 460px);
  border-radius: 4px;
  overflow: hidden;
}
.visual-intro-photo picture,
.visual-intro-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.visual-collections {
  margin-bottom: 28px;
}
.graphic-site .package-hero {
  height: auto;
  border-radius: 5px;
}
.package-hero-image {
  position: relative;
  height: clamp(440px, 42vw, 610px);
  isolation: isolate;
}
.package-hero-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #15251ddd, #15251d00 65%);
  pointer-events: none;
}
.package-hero-image .package-heading {
  position: absolute;
  z-index: 1;
  bottom: 36px;
  left: 36px;
  right: 36px;
  padding: 0;
  color: #fffdf5;
}
.package-hero-image .package-heading h1 {
  font-size: clamp(34px, 4.2vw, 60px);
  color: inherit;
  font-weight: 400;
  line-height: 1.1;
  margin: 12px 0 20px;
}
.package-hero-image .package-heading .overline,
.package-hero-image .package-heading-meta {
  color: inherit;
}
.package-hero .gallery-open {
  top: 24px;
  bottom: auto;
  left: auto;
  right: 24px;
}
.graphic-site .package-hero-panel {
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  width: auto;
  border-radius: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 24px 30px;
  background: var(--quiet-sand) !important;
  border: 0;
  box-shadow: none;
}
.package-hero-panel::after {
  display: none;
}
.package-hero-panel strong {
  font-size: 24px;
  font-weight: 400;
  margin-top: 5px;
}
.package-hero-panel .button {
  width: auto;
  margin: 0;
}
.graphic-site .package-card-photo {
  border-radius: 5px;
}
.graphic-site .package-card-copy h2 {
  font-weight: 500;
  font-size: 26px;
  letter-spacing: -0.035em;
}
.graphic-site .package-proposal-note {
  border-radius: 4px;
  font-size: 13px;
  padding: 16px 20px;
}
.graphic-site .journal-post-header {
  padding-top: 24px;
  padding-bottom: 24px;
}
.graphic-site .journal-post-header h1 {
  font-size: clamp(32px, 4.5vw, 62px);
  font-weight: 400;
  margin-block: 12px;
}
.graphic-site .journal-deck {
  font-size: 18px;
  margin-bottom: 12px;
}
.graphic-site .discovery-section {
  padding-top: 70px;
}
.graphic-site .discovery-section h2 {
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 400;
}
.graphic-site .intro-strip {
  border-radius: 0;
  background: transparent;
  border-block: 1px solid var(--quiet-line);
  box-shadow: none;
}
@media (max-width: 1100px) {
  .graphic-site .desktop-nav {
    gap: 15px;
  }
}
@media (max-width: 700px) {
  .graphic-site .site-header:not(.checkout-header) {
    padding-top: 6px;
  }
  .graphic-site .nav-inner.glass {
    min-height: 70px;
    padding: 8px 0;
  }
  .graphic-site .brand img {
    width: 48px;
    height: 48px;
  }
  .graphic-site .nav-inner .button {
    padding: 10px 13px;
    font-size: 11px;
    min-height: 44px;
  }
  .graphic-site .visual-home {
    padding-top: 18px;
  }
  .graphic-site .visual-home .poster-scene {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
  }
  .hero-photograph {
    order: -1;
    height: 340px;
  }
  .graphic-site .hero-location {
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 12px 15px;
    font-size: 14px;
  }
  .hero-location small {
    font-size: 8px;
  }
  .graphic-site .visual-home .poster-heading > p {
    margin-bottom: 14px;
    font-size: 9px;
  }
  .graphic-site .visual-home .poster-heading h1 {
    font-size: clamp(39px, 10vw, 54px);
    line-height: 1.12;
  }
  .visual-home .poster-description {
    margin-top: 18px;
  }
  .visual-home .poster-description p {
    font-size: 15px;
    margin-bottom: 22px;
  }
  .graphic-site .visual-home .poster-description .button {
    display: inline-flex;
    width: auto;
  }
  .visual-home .home-search {
    display: block;
    margin-top: 30px;
    padding: 22px 0;
  }
  .visual-home .home-search label {
    font-size: 15px;
    margin-bottom: 14px;
  }
  .visual-home .home-search > div {
    width: 100%;
  }
  .visual-home .home-search input {
    padding-inline: 12px;
  }
  .visual-home .home-search .button {
    font-size: 12px;
    padding-inline: 14px;
    gap: 10px;
  }
  .graphic-site .visual-intro {
    display: flex;
    flex-direction: column;
    gap: 26px;
    padding-top: 16px;
    padding-bottom: 32px;
    align-items: stretch;
  }
  .visual-intro-photo {
    order: -1;
    height: 260px;
  }
  .visual-intro-copy h1 {
    font-size: clamp(34px, 9vw, 46px);
    margin: 14px 0;
  }
  .visual-intro-copy > p:last-child {
    font-size: 15px;
    margin-bottom: 0;
  }
  .visual-intro-copy .overline {
    margin: 0;
  }
  .package-hero-image {
    height: 400px;
  }
  .package-hero-image .package-heading {
    left: 22px;
    right: 22px;
    bottom: 24px;
  }
  .package-hero-image .package-heading h1 {
    font-size: clamp(32px, 9vw, 44px);
  }
  .package-hero-image .package-heading-meta {
    gap: 12px;
    font-size: 12px;
  }
  .package-hero .gallery-open {
    top: 16px;
    right: 16px;
    left: auto;
    bottom: auto;
  }
  .graphic-site .package-hero-panel {
    padding: 20px;
  }
  .package-hero-panel strong {
    font-size: 19px;
    margin: 0;
  }
  .package-hero-panel .button {
    padding: 13px;
    font-size: 12px;
  }
  .graphic-site .approach-intro {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-top: 16px;
  }
  .graphic-site .approach-portrait {
    order: -1;
    width: 100%;
    margin: 0;
  }
  .graphic-site .approach-portrait-photo {
    height: 300px;
    border-radius: 4px;
  }
  .graphic-site .approach-opening h1 {
    font-size: 44px;
    font-weight: 400;
  }
}
@media (prefers-reduced-transparency: reduce) {
  .graphic-site .hero-location {
    background: var(--quiet-sand);
    backdrop-filter: none;
  }
}
@media (forced-colors: active) {
  .package-hero-image .package-heading,
  .graphic-site .hero-location {
    background: Canvas;
    color: CanvasText;
  }
}
/* Compact language control; native locale routes preserve the current page. */
.language-switch{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:12px;font-weight:700;letter-spacing:.06em;border:1px solid var(--glass-border,#d8ded6);border-radius:6px;color:inherit;text-decoration:none;flex:none}
@media(max-width:480px){.nav-actions{gap:6px}.language-switch{min-width:40px}.nav-inner .brand{flex-shrink:1}}
.text-card>div{min-width:0}.text-card h3{overflow-wrap:anywhere}.text-card .round-link{flex-shrink:0}
.hero-secondary{display:flex;margin-top:18px;font-size:14px}
html[lang=fr] .visual-home .poster-heading h1{font-size:clamp(38px,3.7vw,58px)}
/* Catalogue extensions use the existing photographic cards and travel palette. */
.home-collection-links {padding-top:20px;padding-bottom:8px;}
.home-collection-links .collection-links {margin:0;}
.catalogue-preview {scroll-margin-top:24px;}
.catalogue-offer {display:flex;flex-direction:column;min-width:0;}
.catalogue-offer .card-photo {aspect-ratio:4/3;flex:none;}
.catalogue-offer .poster-card-copy {display:flex;flex-direction:column;flex:1;gap:14px;}
.catalogue-offer .poster-card-copy h3 {font-size:clamp(23px,2.2vw,31px);line-height:1.16;margin:0;}
.catalogue-offer .card-description {display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0;}
.catalogue-offer .card-meta {margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;}
.catalogue-card-bottom {display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:18px;border-top:1px solid var(--line);font-size:14px;}
.catalogue-category-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.catalogue-category {position:relative;display:block;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--sand);}
.catalogue-category picture,.catalogue-category img {width:100%;height:100%;object-fit:cover;display:block;}
.catalogue-category::after {content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.72));}
.catalogue-category span {position:absolute;inset:auto 24px 24px;color:white;z-index:1;font-size:clamp(22px,2.5vw,34px);display:flex;align-items:center;justify-content:space-between;gap:12px;}
.catalogue-day-copy {min-width:0;}
.catalogue-day-copy picture {display:block;aspect-ratio:16/9;overflow:hidden;border-radius:18px;margin-top:24px;}
.catalogue-day-copy img {display:block;width:100%;height:100%;object-fit:cover;}
.catalogue-detail .package-heading h1 {max-width:100%;font-size:clamp(30px,4.3vw,66px);}
.catalogue-detail .package-heading {max-width:860px;}
.catalogue-detail .package-heading .button {margin-top:16px;background:var(--cream,#f7f5ef);color:var(--ink);}
.catalogue-detail .package-booking h2 {font-size:30px;}
.catalogue-detail .package-gallery figure {min-width:0;}
.mega-collection-links {display:flex;gap:12px 24px;flex-wrap:wrap;border-top:1px solid var(--line);padding:20px 0;}
@media(max-width:700px){.catalogue-category-grid{grid-template-columns:1fr;gap:18px;}.catalogue-category{aspect-ratio:4/3;}.catalogue-offer .poster-card-copy h3{font-size:25px;}.home-collection-links .collection-links{flex-wrap:nowrap;overflow-x:auto;padding-bottom:12px;}.home-collection-links .filter{flex:none;}.catalogue-detail .package-heading{padding:25px;}.catalogue-detail .mobile-booking>span{max-width:55%;font-size:12px;line-height:1.3;}.catalogue-detail .mobile-booking small{font-size:11px;}}
.catalogue-destination-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;}.catalogue-destination-gallery figure{margin:0;min-width:0;}.catalogue-destination-gallery .gallery-photo{aspect-ratio:4/3;width:100%;border-radius:16px;overflow:hidden;}.catalogue-destination-gallery .gallery-photo picture,.catalogue-destination-gallery .gallery-photo img{display:block;width:100%;height:100%;object-fit:cover;}.catalogue-destination-gallery figcaption{padding-top:12px;font-size:16px;}.catalogue-destination-gallery a{display:flex;justify-content:space-between;align-items:center;gap:12px;}#catalogue-summary-photo{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:12px;margin-bottom:18px;}@media(max-width:700px){.catalogue-destination-gallery{grid-template-columns:1fr;}}
@media(max-width:640px){.featured-grid.poster-catalogue:has(.catalogue-offer),.package-grid.poster-catalogue{grid-template-columns:minmax(0,1fr)!important;gap:32px;}.catalogue-offer .card-photo{aspect-ratio:4/3!important;border-radius:18px!important;}.catalogue-offer .poster-card-copy{padding:20px 0;}.catalogue-offer .card-description{-webkit-line-clamp:3;}.catalogue-card-bottom{font-size:14px;}.catalogue-detail .package-hero-image{min-height:480px;}}
/* Keep the catalogue legible: equal columns, full titles and quieter surfaces. */
.graphic-site .poster-catalogue:has(>.catalogue-offer){grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;grid-auto-flow:row;gap:32px 24px;}
.graphic-site .package-grid.poster-catalogue:has(>.catalogue-offer){grid-template-columns:repeat(2,minmax(0,1fr));}
.graphic-site .poster-catalogue:has(>.catalogue-offer)>.activity-card:nth-child(n){grid-column:auto;grid-row:auto;border-radius:18px;}
.graphic-site .poster-catalogue .catalogue-offer:nth-child(n){background:#fffefa;color:var(--ink);border:1px solid var(--line);}
.graphic-site .catalogue-offer .card-photo{aspect-ratio:4/3;flex:none;border-radius:0;}
.graphic-site .catalogue-offer .photo-tag{top:16px;left:16px;background:#fffefaed;color:var(--ink);}
.graphic-site .catalogue-offer .poster-card-copy{padding:24px;gap:12px;}
.graphic-site .catalogue-offer .poster-card-copy h3{max-width:none;font-size:clamp(23px,2.1vw,30px);line-height:1.18;}
.graphic-site .catalogue-offer .poster-card-copy .card-meta{color:var(--muted);}
.graphic-site .catalogue-offer .poster-card-copy .card-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);margin:0;font-size:15px;line-height:1.5;max-width:none;}
.graphic-site .catalogue-offer .catalogue-card-bottom{border-color:var(--line);padding-top:16px;}
@media(max-width:900px){.graphic-site .poster-catalogue:has(>.catalogue-offer){grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.graphic-site .poster-catalogue:has(>.catalogue-offer),.graphic-site .package-grid.poster-catalogue:has(>.catalogue-offer){grid-template-columns:minmax(0,1fr)!important;}.graphic-site .catalogue-offer .card-photo{border-radius:0!important;}.graphic-site .catalogue-offer .poster-card-copy{padding:22px;}.graphic-site .catalogue-offer .poster-card-copy h3{font-size:25px;}}
#catalogue-summary-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px;}
