/* ==========================================================================
   Egittosì — Editorial templates (WS-F)
   Destination single + archive · About · Contact · Gallery page intro.
   Asymmetric magazine compositions: offset images, large index numerals,
   gold hairlines, generous whitespace. Tokens only, mobile-first.
   ========================================================================== */

/* ---- Shared editorial headings ----------------------------------------- */

.dest-experiences__title,
.dest-practical__title,
.dest-row__title,
.about-intro__title,
.about-chapter__title,
.about-values__title,
.about-reviews__title,
.contact-main__title,
.contact-main__form-title {
	margin: 0;
	color: var(--c-heading);
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	font-weight: var(--fw-medium);
	line-height: var(--lh-heading);
	letter-spacing: var(--tracking-display);
	text-wrap: balance;
}

.about-intro__title em,
.about-chapter__title em,
.about-values__title em,
.about-reviews__title em {
	color: var(--c-gold-600);
	font-style: italic;
}

.editorial-intro {
	max-inline-size: 46rem;
}

/* Large outlined index numeral (decorative, aria-hidden in markup). */
.dest-row__index,
.about-chapter__num {
	display: block;
	color: transparent;
	font-family: var(--font-display);
	font-size: clamp(4.5rem, 3rem + 6vw, 9rem);
	font-weight: var(--fw-medium);
	line-height: 0.8;
	font-variant-numeric: lining-nums;
	-webkit-text-stroke: 1px var(--c-gold-400);
}

/* ==========================================================================
   Destination — single
   ========================================================================== */

.dest-intro__inner {
	display: grid;
	gap: var(--space-7);
}

.dest-intro__eyebrow {
	margin: 0 0 var(--space-4);
}

.dest-intro__title {
	max-inline-size: 16ch;
	margin: 0 0 var(--space-5);
	color: var(--c-heading);
	font-family: var(--font-display);
	font-size: clamp(1.875rem, 1.3rem + 2.3vw, 3.25rem);
	font-style: italic;
	font-weight: var(--fw-medium);
	line-height: 1.18;
	text-wrap: balance;
}

.dest-intro__pull {
	max-inline-size: 34ch;
	margin: 0;
}

.dest-intro__rule {
	display: block;
	margin-block-start: var(--space-6);
}

.dest-intro__content > p:first-child::first-letter {
	float: inline-start;
	margin: 0.08em 0.12em 0 0;
	color: var(--c-gold-600);
	font-family: var(--font-display);
	font-size: 4.2em;
	font-weight: var(--fw-medium);
	line-height: 0.8;
}

@media (min-width: 1024px) {
	.dest-intro__inner {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: start;
	}

	.dest-intro__lead {
		grid-column: 1 / span 6;
		position: sticky;
		inset-block-start: calc(var(--header-h-compact) + var(--space-7));
	}

	.dest-intro__content {
		grid-column: 8 / span 5;
		padding-block-start: var(--space-8);
	}
}

/* Featured experiences in this destination */
.dest-tours__head {
	margin-block-end: clamp(var(--space-6), 1rem + 3vw, var(--space-8));
}

.dest-tours__grid {
	display: grid;
	gap: var(--space-8) var(--gutter);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 768px) {
	.dest-tours__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dest-tours__item:nth-child(even) {
		margin-block-start: var(--space-8);
	}
}

@media (min-width: 1024px) {
	.dest-tours__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: start;
	}

	.dest-tours__item:nth-child(even) {
		margin-block-start: 0;
	}

	.dest-tours__item:nth-child(3n + 2) {
		margin-block-start: var(--space-9);
	}
}

/* Things to experience — editorial numbered list */
.dest-experiences__inner {
	display: grid;
	gap: var(--space-7);
}

.dest-experiences__title {
	max-inline-size: 14ch;
	margin-block-start: var(--space-4);
}

.editorial-list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-block-end: 1px solid var(--c-gold-300);
}

.editorial-list__item {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: var(--space-4);
	padding-block: var(--space-6);
	border-block-start: 1px solid var(--c-gold-300);
}

.editorial-list__num {
	padding-block-start: 0.3rem;
	color: var(--c-gold-600);
	font-family: var(--font-display);
	font-size: 1.75rem;
	font-style: italic;
	line-height: 1;
	font-variant-numeric: lining-nums tabular-nums;
}

.editorial-list__title {
	margin: 0;
	color: var(--c-heading);
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 1.5rem + 0.8vw, 2.375rem);
	font-weight: var(--fw-medium);
	line-height: var(--lh-heading);
}

.editorial-list__text {
	max-inline-size: 60ch;
	margin-block-start: var(--space-2);
	color: var(--c-text-soft);
}

.editorial-list__text p {
	margin: 0 0 0.75em;
}

.editorial-list__text p:last-child {
	margin-block-end: 0;
}

@media (min-width: 768px) {
	.editorial-list__item {
		grid-template-columns: 5rem minmax(0, 1fr);
		padding-block: var(--space-7);
	}

	.editorial-list__num {
		font-size: 2.25rem;
	}
}

@media (min-width: 1024px) {
	.dest-experiences__inner {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: start;
	}

	.dest-experiences__head {
		grid-column: 1 / span 4;
		position: sticky;
		inset-block-start: calc(var(--header-h-compact) + var(--space-7));
	}

	.dest-experiences__list {
		grid-column: 6 / span 7;
	}
}

/* Gallery */
.dest-gallery__head {
	margin-block-end: clamp(var(--space-6), 1rem + 3vw, var(--space-8));
}

/* Practical information */
.dest-practical__inner {
	display: grid;
	gap: var(--space-8);
}

.dest-practical__title {
	margin-block-start: var(--space-4);
}

.dest-practical__plan {
	max-inline-size: 30rem;
	margin-block-start: var(--space-6);
}

.dest-practical__plan p {
	margin: 0 0 var(--space-5);
	color: var(--c-text-soft);
}

.dest-practical__list {
	margin: 0;
	border-block-start: 1px solid var(--c-border-strong);
}

.dest-practical__row {
	display: grid;
	gap: var(--space-1);
	padding-block: var(--space-5);
	border-block-end: 1px solid var(--c-border-strong);
}

.dest-practical__label {
	color: var(--c-gold-700);
	font-size: var(--fs-eyebrow);
	font-weight: var(--fw-medium);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
}

.dest-practical__value {
	margin: 0;
	color: var(--c-text);
}

.dest-practical__value a {
	color: var(--c-link);
}

.dest-practical__inner.is-plan-only {
	max-inline-size: 44rem;
}

@media (min-width: 768px) {
	.dest-practical__row {
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
		gap: var(--space-5);
		align-items: baseline;
	}
}

@media (min-width: 1024px) {
	.dest-practical__inner:not(.is-plan-only) {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: start;
	}

	.dest-practical__inner:not(.is-plan-only) .dest-practical__head {
		grid-column: 1 / span 5;
	}

	.dest-practical__inner:not(.is-plan-only) .dest-practical__list {
		grid-column: 7 / span 6;
	}
}

/* ==========================================================================
   Destinations — archive (alternating editorial rows)
   ========================================================================== */

.dest-archive__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dest-row + .dest-row {
	margin-block-start: clamp(var(--space-9), 4rem + 5vw, var(--space-10));
}

.dest-row__article {
	display: grid;
	gap: var(--space-6);
}

.dest-row__media {
	position: relative;
}

.dest-row__frame {
	overflow: hidden;
	border-radius: var(--radius-sm);
	background: var(--c-sand-100);
}

.dest-row__img {
	display: block;
	inline-size: 100%;
	block-size: auto;
}

.dest-row__inset {
	position: absolute;
	inset-block-end: -2.5rem;
	inset-inline-end: calc(var(--gutter) * -0.5);
	z-index: 1;
	inline-size: 38%;
	overflow: hidden;
	border: 6px solid var(--c-ivory);
	border-radius: var(--radius-sm);
	background: var(--c-ivory);
	box-shadow: var(--shadow-lg);
}

.dest-row__inset-img {
	display: block;
	inline-size: 100%;
	block-size: auto;
}

.dest-row.has-inset .dest-row__body {
	padding-block-start: var(--space-7);
}

.dest-row__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-4);
}

.dest-row__index {
	margin-block-end: calc(var(--space-2) * -1);
}

.dest-row__eyebrow {
	margin: 0;
}

.dest-row__title {
	font-size: var(--fs-h1);
}

.dest-row__title a {
	color: inherit;
	text-decoration: none;
	background-image: linear-gradient(var(--c-gold-500), var(--c-gold-500));
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	transition: background-size var(--dur-hover) var(--ease-out);
}

.dest-row__title a:hover,
.dest-row__title a:focus-visible {
	background-size: 100% 1px;
}

.dest-row__title a:focus-visible {
	outline: 2px solid var(--c-focus);
	outline-offset: 4px;
}

.dest-row__text {
	max-inline-size: 42ch;
	margin: 0;
	color: var(--c-text-soft);
	font-size: var(--fs-lead);
	line-height: 1.6;
}

.dest-row__facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2) var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--c-text-muted);
	font-size: var(--fs-small);
}

.dest-row__cta {
	margin-block-start: var(--space-3);
}

@media (min-width: 1024px) {
	.dest-row__article {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: center;
	}

	.dest-row__media {
		grid-column: 1 / span 7;
	}

	.dest-row__body {
		grid-column: 9 / span 4;
	}

	.dest-row--flip .dest-row__media {
		grid-column: 6 / span 7;
		order: 2;
	}

	.dest-row--flip .dest-row__body {
		grid-column: 1 / span 4;
		order: 1;
	}

	.dest-row__inset {
		inset-block-end: -3.5rem;
		inset-inline-end: -4.5rem;
		inline-size: 36%;
		border-width: 8px;
	}

	.dest-row--flip .dest-row__inset {
		inset-inline-start: -4.5rem;
		inset-inline-end: auto;
	}

	.dest-row.has-inset .dest-row__body {
		padding-block-start: 0;
	}
}

.dest-archive__packages {
	margin-block-start: clamp(var(--space-9), 4rem + 5vw, var(--space-10));
}

.dest-archive__packages .card-dest__media {
	aspect-ratio: 4 / 5;
}

.dest-archive__packages .card-dest__zoom,
.dest-archive__packages .card-dest__img {
	block-size: 100%;
}

.dest-archive__packages .card-dest__img {
	object-fit: cover;
}

@media (min-width: 768px) {
	.dest-archive__packages .card-dest__media {
		aspect-ratio: 16 / 9;
	}
}

@media (min-width: 1024px) {
	.dest-archive__packages .card-dest__media {
		aspect-ratio: 21 / 9;
	}

	.dest-archive__packages .card-dest__text {
		max-inline-size: 44ch;
	}
}

/* ==========================================================================
   About
   ========================================================================== */

.about-intro__inner {
	display: grid;
	gap: var(--space-7);
}

.about-intro__eyebrow {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	margin-block-end: var(--space-5);
}

.about-intro__title {
	max-inline-size: 13ch;
	font-size: var(--fs-display);
	line-height: var(--lh-tight);
}

.about-intro__content > p:first-child {
	color: var(--c-heading);
	font-size: var(--fs-lead);
}

@media (min-width: 1024px) {
	.about-intro__inner {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: start;
	}

	.about-intro__head {
		grid-column: 1 / span 6;
	}

	.about-intro__content {
		grid-column: 8 / span 5;
		padding-block-start: var(--space-8);
	}
}

/* Chapters: alternating image / text with large numerals */
.about-chapter {
	display: grid;
	gap: var(--space-6);
}

.about-chapter + .about-chapter {
	margin-block-start: clamp(var(--space-9), 4rem + 5vw, var(--space-10));
}

.about-chapter__frame {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--radius-sm);
	background: var(--c-sand-100);
}

/* Taller than its frame so the parallax drift never reveals an edge. */
.about-chapter__parallax {
	block-size: 112%;
	margin-block-start: -6%;
}

.about-chapter__img,
.about-chapter__parallax .img-fallback {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.about-chapter__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-4);
}

.about-chapter__eyebrow {
	margin: 0;
}

.about-chapter__text {
	max-inline-size: 36rem;
	color: var(--c-text-soft);
}

.about-chapter--text .about-chapter__body {
	max-inline-size: 46rem;
	margin-inline: auto;
}

@media (min-width: 768px) {
	.about-chapter__frame {
		aspect-ratio: 3 / 2;
	}
}

@media (min-width: 1024px) {
	.about-chapter:not(.about-chapter--text) {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: center;
	}

	.about-chapter__frame {
		aspect-ratio: 4 / 5;
	}

	.about-chapter__media {
		grid-column: 1 / span 6;
	}

	.about-chapter__body {
		grid-column: 8 / span 5;
	}

	.about-chapter--flip .about-chapter__media {
		grid-column: 7 / span 6;
		order: 2;
	}

	.about-chapter--flip .about-chapter__body {
		grid-column: 1 / span 5;
		order: 1;
	}

	/* Offset the media of alternating chapters for an asymmetric rhythm. */
	.about-chapter--flip .about-chapter__media {
		margin-block-start: var(--space-9);
	}
}

/* Values strip (navy) */
.about-values__head {
	margin-block-end: clamp(var(--space-7), 1.5rem + 3vw, var(--space-9));
}

.about-values__title {
	max-inline-size: 16ch;
	margin-block-start: var(--space-4);
	color: var(--c-ivory);
}

.about-values__title em {
	color: var(--c-gold-400);
}

.about-values__list {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.about-values__item {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding-block: var(--space-6);
	border-block-start: 1px solid var(--c-nile-700);
}

.about-values__icon {
	display: inline-flex;
	color: var(--c-gold-400);
}

.about-values__icon svg {
	inline-size: 36px;
	block-size: 36px;
}

.about-values__item-title {
	margin: 0;
	color: var(--c-ivory);
	font-family: var(--font-display);
	font-size: 1.75rem;
	font-weight: var(--fw-medium);
	line-height: var(--lh-heading);
}

.about-values__item-text {
	margin: 0;
	color: var(--c-nile-100);
	font-size: var(--fs-small);
}

@media (min-width: 768px) {
	.about-values__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--gutter);
	}
}

@media (min-width: 1024px) {
	.about-values__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1280px) {
	.about-values__list {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		column-gap: 0;
		border-block-start: 1px solid var(--c-nile-700);
	}

	.about-values__item {
		padding: var(--space-6) var(--space-5) var(--space-2);
		border-block-start: 0;
	}

	.about-values__item + .about-values__item {
		border-inline-start: 1px solid var(--c-nile-700);
	}

	.about-values__item:first-child {
		padding-inline-start: 0;
	}
}

/* Reviews */
.about-reviews__inner {
	display: grid;
	gap: var(--space-7);
}

.about-reviews__title {
	max-inline-size: 11ch;
	margin-block-start: var(--space-4);
}

@media (min-width: 1024px) {
	.about-reviews__inner {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: start;
	}

	.about-reviews__head {
		grid-column: 1 / span 4;
	}

	.about-reviews__slider {
		grid-column: 6 / span 7;
	}
}

/* ==========================================================================
   Contact
   ========================================================================== */

.contact-main__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-8);
}

.contact-main__aside {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}

.contact-main__intro {
	color: var(--c-text-soft);
}

.contact-map {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--space-4);
	padding-block-start: var(--space-6);
	border-block-start: 1px solid var(--c-gold-300);
}

.contact-map__icon {
	display: inline-flex;
	color: var(--c-gold-600);
}

.contact-map__icon svg {
	inline-size: 28px;
	block-size: 28px;
}

.contact-map__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2);
}

.contact-map__label {
	margin: 0;
	color: var(--c-gold-700);
	font-size: var(--fs-eyebrow);
	font-weight: var(--fw-medium);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
}

.contact-map__address {
	color: var(--c-text);
	font-style: normal;
	line-height: 1.6;
}

.contact-main__form {
	padding: var(--space-6) var(--space-5);
	border-block-start: 2px solid var(--c-gold-500);
	border-radius: var(--radius-lg);
	background: var(--c-white);
	box-shadow: var(--shadow);
	scroll-margin-block-start: calc(var(--header-h-compact) + var(--space-5));
}

.contact-main__form-head {
	margin-block-end: var(--space-6);
}

.contact-main__form-title {
	margin-block-start: var(--space-3);
	font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem);
}

.contact-main__form-text {
	max-inline-size: 36rem;
	margin: var(--space-3) 0 0;
	color: var(--c-text-soft);
}

@media (min-width: 768px) {
	.contact-main__form {
		padding: var(--space-8) var(--space-7);
	}
}

@media (min-width: 1024px) {
	.contact-main__inner {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--gutter);
		align-items: start;
	}

	.contact-main__aside {
		grid-column: 1 / span 5;
	}

	.contact-main__form {
		grid-column: 7 / span 6;
	}
}

@media (min-width: 1280px) {
	.contact-main__aside {
		grid-column: 1 / span 4;
	}

	.contact-main__form {
		grid-column: 6 / span 7;
		padding: var(--space-9) var(--space-8);
	}
}
