/* ==========================================================================
   Inner-page sections: about intro, video cover, services overview, chef feature, image carousel
   ========================================================================== */
.sv-line-icon { width: 40px; height: 40px; color: var(--sv-accent); flex-shrink: 0; }
/* Gold hairline inset inside arched photos */
.sv-about-intro__arch, .sv-services-overview__photo, .sv-chef-feature__portrait { position: relative; }
.sv-about-intro__arch::after, .sv-services-overview__photo::after, .sv-chef-feature__portrait::after {
	content: ""; position: absolute; inset: 15px; border: 1px solid var(--sv-accent); border-radius: 300px 300px 0 0; pointer-events: none;
}
.sv-about-intro__arch img, .sv-services-overview__photo img, .sv-chef-feature__portrait img,
.sv-chef-feature__landscape img, .sv-chef-feature__small img, .sv-chef-feature__tall img, .sv-about-intro__round img {
	width: 100%; height: 100%; object-fit: cover;
}

/* ---------- About intro ---------- */
.sv-about-intro { padding: 120px 0; }
.sv-about-intro .sv-heading__title { max-width: 980px; margin: 0 auto; font-size: clamp(36px, 3.8vw, 56px); }
.sv-about-intro .sv-heading { margin-bottom: 60px; }
.sv-about-intro__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.sv-about-intro__text { margin: 0 0 40px; font-size: 15px; line-height: 1.8; color: var(--sv-heading); }
.sv-about-intro__features { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-bottom: 40px; }
.sv-about-intro__feature-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.sv-about-intro__label { margin: 0; font-family: var(--sv-body-font); font-size: 12px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.sv-about-intro__feature p { margin: 0; font-size: 14px; line-height: 1.8; }
.sv-about-intro__foot { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.sv-about-intro__phone { margin: 0; display: grid; font-size: 13px; }
.sv-about-intro__phone a { font-size: 16px; color: var(--sv-accent); }
.sv-about-intro__media { position: relative; padding: 0 0 60px 60px; }
.sv-about-intro__arch { width: 100%; max-width: 515px; aspect-ratio: 515 / 575; margin-left: auto; }
.sv-about-intro__round { position: absolute; left: 0; bottom: 0; width: 200px; height: 200px; border-radius: 50%; overflow: hidden; border: 8px solid var(--sv-bg); }

/* ---------- Video cover ---------- */
.sv-video-cover { position: relative; height: 770px; display: grid; place-items: center; overflow: hidden; background: var(--sv-surface-2); }
img.sv-video-cover__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-video-cover::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .15); }
.sv-video-cover__play { position: relative; z-index: 2; width: 80px; height: 80px; border: 0; border-radius: 50%; background: #fff; color: #111; cursor: pointer; display: grid; place-items: center; box-shadow: 0 0 0 12px rgba(255, 255, 255, .2); transition: transform .3s var(--sv-ease); }
.sv-video-cover__play svg { width: 26px; height: 26px; margin-left: 4px; fill: currentColor; }
.sv-video-cover__play:hover, .sv-video-cover__play:focus-visible { transform: scale(1.1); outline: 0; }
/* Modal created by video-cover.js */
.sv-video-modal { position: fixed; inset: 0; z-index: 400; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(0, 0, 0, .85); opacity: 0; transition: opacity .3s; }
.sv-video-modal.is-open { opacity: 1; }
.sv-video-modal__frame { position: relative; width: 100%; max-width: 1000px; aspect-ratio: 16 / 9; background: #000; }
.sv-video-modal__frame iframe, .sv-video-modal__frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sv-video-modal__close { position: absolute; top: -46px; right: 0; width: 34px; height: 34px; border: 1px solid #fff; border-radius: 50%; background: none; color: #fff; cursor: pointer; font-size: 16px; line-height: 1; }

/* ---------- Services overview ---------- */
.sv-services-overview { padding: 120px 0; }
.sv-services-overview .sv-heading { margin-bottom: 60px; }
.sv-services-overview__grid { display: grid; grid-template-columns: 1fr 410px 1fr; gap: 60px; align-items: center; }
.sv-services-overview__col { display: grid; gap: 70px; }
.sv-services-overview__photo { aspect-ratio: 410 / 500; }
.sv-services-overview__head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.sv-services-overview__item--left { text-align: right; }
.sv-services-overview__item--left .sv-services-overview__head { justify-content: flex-end; }
.sv-services-overview__item--right .sv-services-overview__head { flex-direction: row-reverse; justify-content: flex-end; }
.sv-services-overview__label { margin: 0; font-family: var(--sv-body-font); font-size: 12px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.sv-services-overview__item p { margin: 0; font-size: 14px; line-height: 1.8; }
.sv-services-overview__cta { margin-top: 60px; text-align: center; }

/* ---------- Chef feature ---------- */
.sv-chef-feature { padding: 120px 0; }
.sv-chef-feature__who { margin: 0 0 16px; display: grid; gap: 2px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sv-chef-feature__who span { color: var(--sv-heading); }
.sv-chef-feature__who strong { color: var(--sv-accent); font-weight: 700; }
.sv-chef-feature__text { margin: 0 0 30px; font-size: 15px; line-height: 1.8; color: var(--sv-heading); }
.sv-chef-feature__portrait-wrap { position: relative; }
.sv-chef-feature__badge { position: absolute; left: -40px; bottom: 40px; z-index: 2; width: 141px; height: 141px; display: grid; place-items: center; border: 1px solid var(--sv-accent); border-radius: 50%; background: var(--sv-bg); }
.sv-chef-feature__ring { position: absolute; top: 5%; left: 5%; width: 90%; height: 90%; animation: sv-spin 12s linear infinite; }
.sv-chef-feature__ring text { fill: #fff; font-family: var(--sv-body-font); font-size: 44px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.sv-chef-feature__disc { position: relative; width: 80px; height: 80px; display: grid; place-items: center; border-radius: 50%; background: var(--sv-accent); color: var(--sv-bg); }
.sv-chef-feature__disc svg { width: 40px; height: 40px; }
/* centered */
.sv-chef-feature--centered .sv-heading__title { max-width: 900px; margin: 0 auto; }
.sv-chef-feature--centered .sv-heading { margin-bottom: 60px; }
.sv-chef-feature--centered .sv-chef-feature__grid { display: grid; grid-template-columns: 1fr 515px; gap: 80px; align-items: end; }
.sv-chef-feature__landscape { width: 380px; max-width: 100%; aspect-ratio: 380 / 240; margin-top: 60px; border-radius: 120px 120px 5px 5px; overflow: hidden; }
.sv-chef-feature--centered .sv-chef-feature__portrait { aspect-ratio: 515 / 575; }
/* split */
.sv-chef-feature--split .sv-chef-feature__grid { display: grid; grid-template-columns: 1fr 300px 300px; gap: 60px; align-items: center; }
.sv-chef-feature--split .sv-heading__title { font-size: clamp(36px, 3.4vw, 48px); }
.sv-chef-feature--split .sv-heading { margin-bottom: 20px; }
.sv-chef-feature--split .sv-chef-feature__portrait { aspect-ratio: 300 / 380; }
.sv-chef-feature--split .sv-chef-feature__badge { width: 110px; height: 110px; left: -45px; bottom: 30px; }
.sv-chef-feature--split .sv-chef-feature__disc { width: 62px; height: 62px; }
.sv-chef-feature--split .sv-chef-feature__disc svg { width: 30px; height: 30px; }
.sv-chef-feature__stack { display: grid; gap: 30px; }
.sv-chef-feature__small { aspect-ratio: 300 / 180; border-radius: 150px; overflow: hidden; }
.sv-chef-feature__tall { aspect-ratio: 300 / 260; }

/* ---------- Image carousel ---------- */
.sv-image-carousel { padding: 120px 0; }
.sv-image-carousel__viewport { --sv-per-view: 3; overflow: hidden; outline: 0; }
.sv-image-carousel__track { display: flex; gap: 30px; transition: transform .6s var(--sv-ease); cursor: grab; user-select: none; }
.sv-image-carousel__track.is-dragging { transition: none; cursor: grabbing; }
.sv-image-carousel__slide { flex: 0 0 calc((100% - 30px * (var(--sv-per-view) - 1)) / var(--sv-per-view)); aspect-ratio: 410 / 280; border-radius: 5px; overflow: hidden; }
.sv-image-carousel__slide img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--sv-ease); pointer-events: none; }
.sv-image-carousel__slide:hover img { transform: scale(1.05); }
.sv-image-carousel__dots { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 40px; }
.sv-image-carousel__dots button { width: 8px; height: 8px; padding: 0; border: 1px solid var(--sv-accent); border-radius: 50%; background: transparent; cursor: pointer; transition: .3s; }
.sv-image-carousel__dots button.is-active { width: 13px; height: 13px; background: var(--sv-accent); }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
	.sv-chef-feature--split .sv-chef-feature__grid { grid-template-columns: 1fr 1fr; }
	.sv-chef-feature--split .sv-chef-feature__body { grid-column: 1 / -1; }
	.sv-services-overview__grid { grid-template-columns: 1fr 320px 1fr; gap: 40px; }
}
@media (max-width: 991px) {
	.sv-about-intro, .sv-services-overview, .sv-chef-feature, .sv-image-carousel { padding: 90px 0; }
	.sv-about-intro__grid, .sv-chef-feature--centered .sv-chef-feature__grid { grid-template-columns: 1fr; gap: 60px; }
	.sv-chef-feature--centered .sv-chef-feature__portrait-wrap { max-width: 515px; margin: 0 auto; width: 100%; }
	.sv-services-overview__grid { grid-template-columns: 1fr; }
	.sv-services-overview__photo { max-width: 410px; width: 100%; margin: 0 auto; order: -1; }
	.sv-services-overview__col { gap: 40px; }
	.sv-services-overview__item--left { text-align: left; }
	.sv-services-overview__item--left .sv-services-overview__head { flex-direction: row-reverse; justify-content: flex-end; }
	.sv-video-cover { height: 480px; }
	.sv-image-carousel__viewport { --sv-per-view: 2 !important; }
}
@media (max-width: 767px) {
	.sv-about-intro__features { grid-template-columns: 1fr; }
	.sv-about-intro__media { padding: 0 0 40px 30px; }
	.sv-about-intro__round { width: 130px; height: 130px; }
	.sv-chef-feature--split .sv-chef-feature__grid { grid-template-columns: 1fr; }
	.sv-chef-feature__badge { left: 10px; transform: scale(.8); transform-origin: left bottom; }
	.sv-video-cover { height: 320px; }
	.sv-image-carousel__viewport { --sv-per-view: 1 !important; }
}

/* Split chef: measured against About Us s3 at 1532px. Text 376 | oval portrait 442x619 | pill 284x142 over arch 284x397,
   columns pushed apart (~99px gaps), 164px badge overlapping the portrait's lower left, section 20% darker. */
@media (min-width: 1200px) {
	.sv-chef-feature--split { background: color-mix(in srgb, var(--sv-bg) 80%, #000); }
	.sv-chef-feature--split .sv-chef-feature__grid { grid-template-columns: 376px 442px 284px; justify-content: space-between; gap: 0; align-items: stretch; }
	.sv-chef-feature--split .sv-chef-feature__body { align-self: center; }
	.sv-chef-feature--split .sv-heading__title { font-size: 60px; }
	.sv-chef-feature--split .sv-chef-feature__text { font-size: 16px; }
	.sv-chef-feature--split .sv-chef-feature__portrait { aspect-ratio: 442 / 619; border-radius: 640px; overflow: hidden; }
	.sv-chef-feature--split .sv-chef-feature__portrait::after { border-radius: 640px; }
	.sv-chef-feature--split .sv-chef-feature__badge { width: 164px; height: 164px; left: -61px; bottom: 39px; }
	.sv-chef-feature--split .sv-chef-feature__disc { width: 90px; height: 90px; }
	.sv-chef-feature--split .sv-chef-feature__disc svg { width: 44px; height: 44px; }
	.sv-chef-feature--split .sv-chef-feature__stack { display: flex; flex-direction: column; justify-content: space-between; gap: 0; }
	.sv-chef-feature--split .sv-chef-feature__small { aspect-ratio: 284 / 142; border-radius: 640px; }
	.sv-chef-feature--split .sv-chef-feature__tall { aspect-ratio: 284 / 397; border-radius: 640px 640px 0 0; overflow: hidden; }
}

/* Centred chef: measured against the reference chefs page s0 at 1532px. 70px top / 100px bottom, heading 60px above
   the grid; text column 548px, 640x640 arched portrait, 177px badge, 440x308 landscape (96px opposite corners)
   right-aligned 80px under the button; the label and the name are both 20px lines. */
@media (min-width: 1200px) {
	.sv-chef-feature--centered { padding: 70px 0 100px; }
	.sv-chef-feature--centered .sv-heading { margin-bottom: 59px; }
	.sv-chef-feature--centered .sv-chef-feature__grid { grid-template-columns: 548px 640px; justify-content: space-between; gap: 0; align-items: start; }
	.sv-chef-feature--centered .sv-chef-feature__body { padding-top: 15px; }
	.sv-chef-feature--centered .sv-chef-feature__portrait { aspect-ratio: 1; border-radius: 640px 640px 0 0; overflow: hidden; }
	.sv-chef-feature--centered .sv-chef-feature__badge { width: 177px; height: 177px; left: -68px; bottom: 33px; }
	.sv-chef-feature--centered .sv-chef-feature__disc { width: 96px; height: 96px; }
	.sv-chef-feature--centered .sv-chef-feature__landscape { width: 440px; aspect-ratio: 440 / 308; margin: 80px 0 0 auto; border-radius: 96px 0; }
}
.sv-chef-feature__who { gap: 0; margin-bottom: 20px; font-size: 20px; font-weight: 400; letter-spacing: 0; line-height: 1.2; text-transform: none; }
.sv-chef-feature__who strong { font-weight: 400; }
.sv-chef-feature__text { font-size: 16px; }

/* Services overview: measured against About Us s5 at 1532px. 130px top, 309px columns 100px either side of a
   481x481 arch, title (16px, two lines, 236px) and a 53px icon on one row, 16px text left-aligned in both columns. */
@media (min-width: 1200px) {
	.sv-services-overview { padding: 130px 0 120px; }
	.sv-services-overview__grid { grid-template-columns: 309px 481px 309px; justify-content: space-between; gap: 0; }
	.sv-services-overview__photo { aspect-ratio: 1; border-radius: 640px 640px 0 0; overflow: hidden; }
	.sv-services-overview__col { gap: 90px; }
	.sv-services-overview__item--left { text-align: left; }
	.sv-services-overview__head { gap: 20px; margin-bottom: 22px; }
	.sv-services-overview__item--left .sv-services-overview__head { justify-content: space-between; }
	.sv-services-overview__label { max-width: 236px; font-size: 16px; font-weight: 400; letter-spacing: .1em; line-height: 1.4; }
	.sv-services-overview__head svg { flex: 0 0 53px; width: 53px; height: 53px; }
	.sv-services-overview__item p { font-size: 16px; }
	.sv-services-overview__cta { margin-top: 60px; }
}
