html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}

[data-prevent-flicker] {
visibility: hidden;
}

[data-master-preloader],
[data-preloader] {
display: block;
}

/* "Please rotate your phone" cover: home page only, and only on phones held sideways
   (short landscape screens). Tablets and inner pages always scroll normally. */
@media screen and (orientation: landscape) and (max-width: 991px) and (max-height: 500px) and (pointer: coarse) and (hover: none) {
.landscape-cover {
display: block;
}

body:not(.pg) {
overflow: hidden;
}
}

.unset-all{
all: unset;
}

.scrollbar-none::-webkit-scrollbar {
display: none;
}

::-moz-selection {
color: var(--_colors---other--bg);
background: var(--_colors---base-1000--primary);
}

::selection {
color: var(--_colors---other--bg);
background: var(--_colors---base-1000--primary);
}

:root {
--dur-s: 0.4s;
--dur-m: 0.8s;
--dur-l: 1.2s;

--ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);
--ease-out: cubic-bezier(0.25, 1, 0.5, 1);
--ease-in: cubic-bezier(0.5, 0, 0.75, 0);
--ease: cubic-bezier(0.25, 0.1, 0.25, 1);
--ease-write: cubic-bezier(0.333, 0, 0.667, 1);

--_100svh: 100vh;
}

html {
font-size: 1vw;
background-color: var(--_colors---base-0--primary);
}

/** -------------------------------------------------
* COMPONENTS
* ------------------------------------------------- */

/* btn */
[hover-btn] {
--btn-dur: var(--dur-m);
--btn-ease: var(--ease-in-out);

--btn-text-c: var(--_colors---base-1000--primary);
--btn-bg-t: 100%;
--btn-bg-br: 100%;

transition: var(--btn-dur) var(--btn-ease);

@media (min-width: 992px) {
&:hover,
[hover-btn-trigger]:hover & {
--btn-text-c: var(--_colors---base-0--primary);
--btn-bg-t: 0%;
--btn-bg-br: 0%;
}
}

[hover='text'] {
color: var(--btn-text-c);
transition: var(--btn-dur) var(--btn-ease);
}

.ico {
color: var(--btn-text-c);
transition: var(--btn-dur) var(--btn-ease);
}

[hover='bg'] {
inset: var(--btn-bg-t) 0% auto;
border-radius: var(--btn-bg-br);
transition: var(--btn-dur) var(--btn-ease);
}
}

/* nav-item-l2 */
[hover-nav-item-l2] {
--nav-item-l2-dur: var(--dur-m);
--nav-item-l2-ease: var(--ease-out);

--nav-item-l2-text-1-y: 0%;
--nav-item-l2-text-1-o: 1;
--nav-item-l2-text-2: 100%;
--nav-item-l2-text-2-o: 0;

transition: var(--nav-item-l2-dur) var(--nav-item-l2-ease);

@media (min-width: 992px) {
&:hover,
[hover-nav-item-l2-trigger]:hover & {
--nav-item-l2-text-1-y: -100%;
--nav-item-l2-text-1-o: 0;
--nav-item-l2-text-2: 0%;
--nav-item-l2-text-2-o: 1;
}
}

[hover='text']:nth-child(1) {
transform: translateY(var(--nav-item-l2-text-1-y));
opacity: var(--nav-item-l2-text-1-o);
transition: var(--nav-item-l2-dur) var(--nav-item-l2-ease);
}

[hover='text']:nth-child(2) {
transform: translateY(var(--nav-item-l2-text-2));
opacity: var(--nav-item-l2-text-2-o);
transition: var(--nav-item-l2-dur) var(--nav-item-l2-ease);
}
}

/* img-card */
[hover-img-card] {
--card-dur: var(--dur-l);
--card-ease: var(--ease-out);

--img-sc: 1;

@media (min-width: 992px) {
&:hover {
--img-sc: 1.15;
}
}

[hover='img'] {
transform: scale(var(--img-sc));
transition: var(--card-dur) var(--card-ease);
}
}

/* apart-card */
[hover-apart-card] {
--apart-card-dur: 1.6s;
--apart-card-ease: var(--ease-out);

--shadow-o: 0;
--card-z: 0;

z-index: var(--card-z);

@media (min-width: 992px) {
&:hover {
--shadow-o: 1;
--card-z: 10;
}
}

[hover='shadow'] {
opacity: var(--shadow-o);
transition: opacity var(--apart-card-dur) var(--apart-card-ease);
}
}

/* social */
[hover-social] {
--social-dur: var(--dur-m);
--social-ease: var(--ease-out);

--social-ico-s: 1;

transition: var(--social-dur) var(--social-ease);

@media (min-width: 992px) {
&:hover,
[hover-social-trigger]:hover & {
--social-ico-s: 1.25;
}
}

[hover='ico'] {
scale: var(--social-ico-s);
transition: var(--social-dur) var(--social-ease);
}
}

/* group-items */
[data-hover-item] {
transition: opacity var(--dur-m) var(--ease-out);
}

[data-hover-group]:has([data-hover-item]:hover) {
[data-hover-item]:not(:hover):not(.is-active) {
opacity: 0.2;
}
}

/* pag_next/prev */
[data-slider='pag'] {
--pag-dur: var(--dur-m);
--pag-ease: var(--ease-out);

.pag_prev {
.ico-16 {
transform: translateX(calc(var(--_units---u-4) * 1));
transition: var(--pag-dur) var(--pag-ease);
}
&:hover {
.ico-16 {
transform: translateX(0);
}
}
}

.pag_next {
.ico-16 {
transform: translateX(calc(var(--_units---u-4) * -1));
transition: var(--pag-dur) var(--pag-ease);
}

&:hover {
.ico-16 {
transform: translateX(0);
}
}
}
}

/* lot-media-item */
[hover-media-item] {
--media-item-dur: var(--dur-s);
--media-item-ease: var(--ease-out);

--btn-o: 0;

&:hover {
--btn-o: 1;
}

[hover='btn'] {
opacity: var(--btn-o);
transition: var(--media-item-dur) var(--media-item-ease);
}
}

/* drop-down */
[data-select=''] {
--select-dur: var(--dur-m);
--select-ease: var(--ease-out);

--select-drop-down-o: 0;
--select-drop-down-s: 1.1;
--select-drop-down-y: var(--_units---u-32);

--select-btn-ico-r: 0deg;

&.is-open {
--select-drop-down-o: 1;
--select-drop-down-s: 1;
--select-drop-down-y: var(--_units---u-0);

--select-btn-ico-r: 180deg;

[data-select='drop-down'] {
pointer-events: auto;
transition: var(--select-dur) var(--select-ease);
}
}

[data-select='drop-down'] {
opacity: var(--select-drop-down-o);
scale: var(--select-drop-down-s);
transform: translateY(var(--select-drop-down-y));
pointer-events: none;
transition: none;
}

[data-select='btn'] {
--select-btn-dur: var(--dur-s);
--select-btn-ease: var(--ease-out);

--btn-ico-y: var(--_units---u-0);

&:hover {
--btn-ico-y: var(--_units---u-4);
}

[hover='ico'] {
rotate: var(--select-btn-ico-r);
transform: translateY(var(--btn-ico-y));
transition: var(--select-btn-dur) var(--select-btn-ease);
}
}
}

/* select-item */
[hover-select-item] {
--select-item-dur: var(--dur-s);
--select-item-ease: var(--ease-out);

--item-c: var(--_colors---other--transparent);
--item-text-c: var(--_colors---base-1000--primary);

background-color: var(--item-c);
transition: var(--select-item-dur) var(--select-item-ease);

&:hover {
--item-c: var(--_colors---base-1000--bg);
}

&.is-active {
--item-c: var(--_colors---base-1000--primary);
--item-text-c: var(--_colors---base-0--primary);

pointer-events: none;
}

[hover='text'] {
color: var(--item-text-c);
transition: var(--select-item-dur) var(--select-item-ease);
}
}

/* amen-tab */
.amen-tab {
transition: var(--dur-s) var(--ease-out);

opacity: 0.4;

@media (min-width: 992px) {
&:hover {
opacity: 1;
}
}

&.is-active {
opacity: 1;
}
}

[hover-pin] {
--pin-dur: var(--dur-m);
--pin-ease: var(--ease-out);

--pin-bg-s: var(--6px);
--pin-ico-s: 0;
--pin-ico-r: 45deg;
--pin-clip: visible;

overflow: var(--pin-clip);

&:hover,
[hover-pin-trigger]:hover & {
--pin-bg-s: var(--32px);
--pin-ico-s: 1;
--pin-ico-r: 225deg;
--pin-clip: clip;
}

[hover='bg'] {
width: var(--pin-bg-s);
height: var(--pin-bg-s);
transition: var(--pin-dur) var(--pin-ease);
}

[hover='ico'] {
scale: var(--pin-ico-s);
rotate: var(--pin-ico-r);
transition: var(--pin-dur) var(--pin-ease);
}
}

/* marquee-css */
[data-marquee-css] {
[data-marquee-css='track'] {
will-change: transform;
animation: marquee 32s linear infinite reverse;
}
}

@keyframes marquee {
from {
transform: translateX(-50%);
}
to {
transform: translateX(0%);
}
}

.floating-tip {
visibility: hidden;

.floating-tip-card {
scale: 0.75;
opacity: 0;
transform: translateX(var(--tip-x, 0%)) translateY(-50%);
transition: var(--dur-s) var(--ease-in);

--tip-x: var(--32px);
}

&.is-active {
visibility: visible;

.floating-tip-card {
scale: 1;
opacity: 1;
transition: var(--dur-m) var(--ease-out);
}
}

&.is-left {
.floating-tip-card {
--tip-x: calc(-100% - var(--16px));
}
}
}

[hover-tab] {
opacity: 0.3;
transition: var(--dur-s) var(--ease-out);

@media (min-width: 992px) {
&:hover {
opacity: 1;
}
}

&.is-active {
opacity: 1;
pointer-events: none;
}
}

.hero-s_tabs_divider {
background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #fff 50%, rgba(255, 255, 255, 0) 100%);
background-size: 200% 100%;
background-position: 100% 0%;
transition: var(--dur-m) var(--ease-in-out);

&.is-day {
background-position: 100% 0%;
}

&.is-night {
background-position: 0% 0%;
}
}

[data-s-bar] {
--progress: 0%;

[data-s-bar-thumb] {
top: var(--progress);
}

[data-s-bar-fill] {
clip-path: rect(0% 100% calc(var(--progress) - var(--24px)) 0%);
}

[data-s-bar-track] {
clip-path: rect(calc(var(--progress) + var(--24px)) 100% 100% 0%);
}
}

@media (min-width: 992px) {
.lot-s_info_header {
transition: var(--dur-m) var(--ease-out);

&.is-top {
transition: var(--dur-l) var(--ease-in-out);
}
}

.lot-s_info_line {
transition: var(--dur-l) var(--ease-in-out);

&.is-top {
transition: var(--dur-s) var(--ease-out);
}
}
}

[data-reset] {
transition: var(--dur-s) var(--ease-out);

&.is-disabled {
opacity: 0.3;
pointer-events: none;
}
}

[data-theme] {
.l1,
.l2,
.h6,
.logo,
.header-logo_bg,
.s-down_arrow,
.s-bar_track,
.s-bar_fill {
transition:
color var(--dur-s) var(--ease-out),
background-color var(--dur-s) var(--ease-out);
}
}

/** -------------------------------------------------
* MASKS
* ------------------------------------------------- */

.arch-intro-s_bg_l,
.arch-intro-s_bg_r {
clip-path: inset(50% 50% 50% 500%);
}

.cookies_card,
.floating-tip-card,
.filter_select_drop-down,
.apart-card_shadow {
box-shadow:
0 224px 63px 0 rgba(0, 0, 0, 0),
0 143px 57px 0 rgba(0, 0, 0, 0.01),
0 81px 48px 0 rgba(0, 0, 0, 0.04),
0 36px 36px 0 rgba(0, 0, 0, 0.07),
0 9px 20px 0 rgba(0, 0, 0, 0.08);
}

@media (min-width: 992px) {
.lot-s_info_t {
mask-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 5.29%, #fff 84.62%, rgba(255, 255, 255, 0) 100%);
-webkit-mask-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 5.29%, #fff 84.62%, rgba(255, 255, 255, 0) 100%);
}
}

.contact-s_map_pin_c {
--offset-y: calc(100% - var(--8px));
--tail-l: calc(100% - (var(--16px) + var(--2px) + var(--16px)));
--tail-c: calc(100% - (var(--16px) + var(--2px) + (var(--16px) / 2)));
--tail-r: calc(100% - (var(--16px) + var(--2px)));

clip-path: polygon(0% 0%, 100% 0%, 100% var(--offset-y), var(--tail-r) var(--offset-y), var(--tail-c) 100%, var(--tail-l) var(--offset-y), 0% var(--offset-y));
}

[data-preloader] {
--arch-w: 50vw;
--arch-h: calc(var(--arch-w) / (560 / 2592));
--arch-y: 100vh;

mask-image: linear-gradient(white, white), linear-gradient(white, white), linear-gradient(white, white), url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYwIiBoZWlnaHQ9IjI1OTIiIHZpZXdCb3g9IjAgMCA1NjAgMjU5MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCAwSDU2MFYyNTkySDBaTTMwIDI1OTJWMzUyQzIyIDMyMiA0NCAyOTggNzAgMjgyQzgwIDI3NSA4NCAyNjYgODQgMjU2VjIxNEw4NiAyMDJMODggMjE0VjI1NkM4OCAyNjYgOTIgMjc1IDEwMiAyODJDMTI4IDI5OCAxNTAgMzIyIDE0MiAzNTJWMjU5MlpNMTc4IDI1OTJWMzEySDE3MFYzMDBDMTU4IDI2MiAxOTYgMjEyIDI0NiAxNzhDMjY2IDE2NCAyNzYgMTUwIDI3NyAxMzZWMTIwQzI2OCAxMTggMjY4IDEwNCAyNzggMTAxTDI4MCA2NkwyODIgMTAxQzI5MiAxMDQgMjkyIDExOCAyODMgMTIwVjEzNkMyODQgMTUwIDI5NCAxNjQgMzE0IDE3OEMzNjQgMjEyIDQwMiAyNjIgMzkwIDMwMFYzMTJIMzgyVjI1OTJaTTQxOCAyNTkyVjM1MkM0MTAgMzIyIDQzMiAyOTggNDU4IDI4MkM0NjggMjc1IDQ3MiAyNjYgNDcyIDI1NlYyMTRMNDc0IDIwMkw0NzYgMjE0VjI1NkM0NzYgMjY2IDQ4MCAyNzUgNDkwIDI4MkM1MTYgMjk4IDUzOCAzMjIgNTMwIDM1MlYyNTkyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==');
mask-size:
calc(50% - (var(--arch-w) / 2) + 2px) 100%,
calc(var(--arch-w) + 4px) calc(var(--arch-y) + 2px),
calc(50% - (var(--arch-w) / 2) + 2px) 100%,
var(--arch-w) var(--arch-h);
mask-repeat: no-repeat;
mask-position:
left top,
center top,
right top,
center var(--arch-y);
mask-composite: add;
-webkit-mask-composite: source-over;
}

/** -------------------------------------------------
* INITIALS
* ------------------------------------------------- */

[data-parallax='img'],
[data-parallax='img-out'],
[data-scroll-reveal='a'],
[data-scroll-reveal='h'],
[data-scroll-reveal='p'],
[data-scroll-reveal='slide'],
[data-scroll-reveal='ctn'] {
will-change: transform;
}

.split-line,
.split-word,
.split-char {
display: inline-block;
will-change: transform;
}

.split-line-mask,
.split-word-mask,
.split-char-mask {
display: inline-block;
line-height: inherit;
vertical-align: top;
}

.header,
.modal {
padding-right: var(--scrollbar-width, 0px);
}

input:-webkit-autofill {
-webkit-box-shadow: 0 0 0 0px white inset !important;
-webkit-text-fill-color: var(--_colors---base-1000--100) !important;
background-clip: text !important;
}

.a1,
.a2 {
.split-char {
padding-left: var(--_units---u-160);
padding-right: var(--_units---u-160);
margin-left: calc(var(--_units---u-160) * -1);
margin-right: calc(var(--_units---u-160) * -1);
padding-top: var(--_units---u-32);
padding-bottom: var(--_units---u-32);
margin-top: calc(var(--_units---u-32) * -1);
margin-bottom: calc(var(--_units---u-32) * -1);
}
}

@media (max-width: 991px) {
.input_field.l1 {
font-size: calc(16rem / var(--_special-units---scale-ratio));
}
}

.loc-w_clouds .marquee_list_item:nth-child(even) {
transform: scaleY(-1);
}

[data-pin='crafted-to-endure'] {
    top: 62.5%;
    left: 57.5%;
  }

[data-pin='light-flow'] {
    top: 58.3%;
    left: 26.9%;
  }

[data-pin='your-private-sanctuary'] {
    top: 73.2%;
    left: 76.6%;
  }

.loc-w_decor {
clip-path: polygon(var(--_special-units---offset-l) 0, calc(100% - var(--_special-units---offset-r)) 0%, 100% 101%, 0 101%);
}

/** -------------------------------------------------
 * HERO HEADING
 * Centred vertically, subheading upright, tabs centred.
 * ------------------------------------------------- */
.hero-s {
  justify-content: center;
}
.hero-s > .u-48:first-child,
.hero-s > .u-272 {
  display: none;
}
.hero-s_logo_a {
  transform: none;
  margin-top: 0;
  margin-left: 0;
}
.hero-s_title {
  justify-content: center;
}

/** -------------------------------------------------
 * INTRO COPY — "Why Taamzaam Weddings & Events"
 * Block grows with its text; logo row stays where it was (20rem below the arch top).
 * ------------------------------------------------- */
@media (min-width: 992px) {
  .benefits-intro-s {
    height: auto;
    min-height: 50rem;
    justify-content: flex-start;
    padding-top: 20rem;
  }
}
.intro-copy {
  z-index: 1;
  grid-area: 1/3/2/9;
  position: relative;
}
.intro-copy > .p1 {
  max-width: 38em;
  margin-left: auto;
  margin-right: auto;
}
/* About Us: two short side-by-side columns instead of a tall text stack */
.intro-copy_cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--_units---u-48);
  max-width: 56em;
  margin-left: auto;
  margin-right: auto;
  padding-top: var(--_units---u-32);
  border-top: 1px solid currentColor;
  border-top-color: rgba(78, 90, 64, .2);
  text-align: left;
  opacity: .85;
}
@media (max-width: 767px) {
  .intro-copy_cols {
    grid-template-columns: 1fr;
    gap: var(--_units---u-24);
    text-align: center;
  }
}
.intro-copy_accent {
  font-family: var(--_fonts---font-accent);
  color: var(--_colors---base-1000--primary);
  font-size: var(--_fonts---h5--size);
  line-height: 1.15;
  text-transform: none;
}
@media (max-width: 991px) {
  .intro-copy {
    grid-area: 1/1/2/5;
  }
}

/* Our approach: center the content in the pinned screen on desktop, so it
   stops in the middle of the viewport rather than riding up to the top */
@media (min-width: 992px) {
  .loc-info-s {
    justify-content: center;
  }
  .loc-info-s_t {
    display: none;
  }
  .loc-info-s_t,
  .loc-info-s_b {
    flex: 0 auto;
  }
  .loc-info-s_b {
    padding-top: var(--_units---u-64);
  }
}

/* Why Taamzaam Weddings: four feature cards in the pinned panel */
.why-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 var(--_units---u-32);
}
.why-item {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 32px 28px 30px;
  text-align: left;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(76, 90, 60, 0.14);
  border-radius: 6px;
  overflow: hidden;
  transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}
.why-item::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: #d39a5c;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s ease;
}
.why-item:hover {
  transform: translateY(-6px);
  border-color: rgba(211, 154, 92, 0.5);
  box-shadow: 0 18px 40px rgba(76, 90, 60, 0.12);
}
.why-item:hover::after { transform: scaleX(1); }
.why-item_num {
  font-family: var(--_fonts---font-display);
  font-size: 3.5rem;
  line-height: 1;
  letter-spacing: 0;
  color: #d39a5c;
  margin-bottom: 18px;
}
.why-item_num::after {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  margin-top: 18px;
  background: rgba(76, 90, 60, 0.35);
}
.why-item_title {
  font-size: clamp(1.25rem, 1.6vw, 1.6rem);
  line-height: 1.2;
  margin-bottom: 10px;
}
.why-item .p1 {
  margin: 0;
  line-height: 1.6;
  opacity: .85;
}
@media (max-width: 991px) {
  .why-grid {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 0 16px;
  }
  .why-item { padding: 24px 20px; }
  .why-item_num { font-size: 2.75rem; }
}
@media (max-width: 479px) {
  .why-grid { grid-template-columns: 1fr; }
}

/* "The details we Handle" enquiry arch: rise over the sticky section by one
   screen (instead of 50rem + 100vh) so the arch doesn't need a huge empty
   block to fill that overlap. Content starts just under the curve. */
.interior-w {
  margin-top: calc(var(--_special-units---100vh) * -1);
}
.interior-s {
  min-height: var(--_special-units---100vh);
  padding-top: 10rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.interior-s > .u-160:first-child {
  display: none;
}
.interior-s > .u-160:last-child {
  height: var(--_units---u-96);
}
@media (max-width: 991px) {
  .interior-s {
    padding-top: 24vw;
  }
}

/* Why Taamzaam arch: let content grow and sit closer to the curved title */
@media (min-width: 992px) {
  .benefits-intro-s {
    height: auto;
    min-height: 50rem;
    justify-content: flex-start;
    padding-top: 17vw;
  }
}

/* Stats counters under the intro copy */
.intro-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--_units---u-32);
  max-width: 64rem;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  position: relative;
  z-index: 1;
}
.intro-stat {
  padding: var(--_units---u-24) var(--_units---u-16);
  border-top: 1px solid var(--_colors---base-1000--line);
}
.intro-stat .h3 {
  font-variant-numeric: tabular-nums;
}
@media (max-width: 991px) {
  .intro-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--_units---u-16);
  }
}

/** -------------------------------------------------
 * BUTTONS — pill variants replacing the big circle CTAs
 * ------------------------------------------------- */
.btn.is-solid[hover-btn] {
  --btn-text-c: var(--_colors---base-0--primary);
  --btn-bg-t: 0%;
  --btn-bg-br: 0%;
}
.btn.is-solid[hover-btn]:hover .btn_bg_fill {
  opacity: 0.85;
}
.btn.is-lg {
  height: var(--56px, 3.5rem);
  padding-left: var(--32px);
  padding-right: var(--32px);
  border-radius: var(--56px, 3.5rem);
}
.btn.is-lg .btn_bg {
  border-radius: inherit;
}
@media (max-width: 991px) {
  .btn.is-lg {
    height: 52px;
    padding-left: 28px;
    padding-right: 28px;
    border-radius: 52px;
  }
}

/** -------------------------------------------------
 * SERVICES — 3 x 2 grid
 * ------------------------------------------------- */
.svc-s_head {
  grid-area: 1/3/2/9;
}
.svc-s_head .p1 {
  max-width: 32em;
  margin-left: auto;
  margin-right: auto;
}
.svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--_units---u-48) var(--_special-units---grid-gap);
}
.svc-card {
  display: flex;
  flex-direction: column;
}
.svc-card_img {
  aspect-ratio: 4/3;
  overflow: clip;
  border-radius: var(--8px, 0.5rem);
}
.svc-card_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.svc-card_body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: var(--_units---u-16);
  padding-top: var(--_units---u-24);
}
.svc-card_meta {
  display: flex;
  justify-content: space-between;
  padding-bottom: var(--_units---u-16);
  border-bottom: 1px solid var(--_colors---base-1000--line);
}
.svc-card_body .p1 {
  flex: 1;
  color: var(--_colors---base-1000--gray-text);
}
.svc-card_link {
  align-self: flex-start;
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1px solid currentColor;
  transition: opacity var(--dur-s) var(--ease-out);
}
.svc-card_link:hover {
  opacity: 0.6;
}
@media (max-width: 991px) {
  .svc-s_head {
    grid-area: 1/1/2/5;
  }
  .svc-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .svc-grid {
    grid-template-columns: 1fr;
  }
}

/** -------------------------------------------------
 * "THE DETAILS WE HANDLE" — smaller title + enquiry form
 * ------------------------------------------------- */
.enquiry-s_title_a {
  margin-top: calc(var(--24px) * -1);
  margin-left: var(--_units---u-96);
}
.enquiry-s_lead {
  grid-area: 1/4/2/8;
}
.enquiry-s_form {
  grid-area: 1/3/2/9;
  margin: 0;
}
.enquiry-form_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--_units---u-24) var(--_units---u-32);
}
.enquiry-field {
  display: flex;
  flex-direction: column;
  gap: var(--_units---u-8);
}
.enquiry-field.is-full {
  grid-column: 1 / -1;
}
.enquiry-field_input {
  width: 100%;
  height: auto;
  min-height: 48px;
  margin: 0;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid var(--_colors---base-1000--disabled);
  border-radius: 0;
  background-color: transparent;
  color: var(--_colors---base-1000--primary);
  font-size: max(16px, var(--_fonts---p1--size));
  -webkit-appearance: none;
  appearance: none;
  transition: border-color var(--dur-s) var(--ease-out);
}
select.enquiry-field_input {
  cursor: pointer;
  padding-right: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 6l4.5 4.5L12.5 6' fill='none' stroke='%23455a3a' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
}
.enquiry-field_input.is-area {
  min-height: 112px;
  resize: vertical;
}
.enquiry-field_input::placeholder {
  color: var(--_colors---base-1000--disabled);
}
.enquiry-field_input:focus {
  outline: none;
  border-bottom-color: var(--_colors---base-1000--primary);
}
.enquiry-form_b {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--_units---u-24);
}
.enquiry-form_b .p2 {
  color: var(--_colors---base-1000--gray-text);
}
.enquiry-form_b .text-link {
  text-decoration: underline;
}
.enquiry-form_msg {
  background: transparent;
  padding: var(--_units---u-32) 0;
}
@media (max-width: 991px) {
  .enquiry-s_lead,
  .enquiry-s_form {
    grid-area: 1/1/2/5;
  }
  .enquiry-s_title_a {
    margin-left: var(--_units---u-48);
  }
  .enquiry-form_grid {
    grid-template-columns: 1fr;
  }
  .enquiry-form_b {
    flex-direction: column-reverse;
    align-items: stretch;
    text-align: center;
  }
}

/** -------------------------------------------------
 * OUR TEAM — founder & co-founder
 * ------------------------------------------------- */
.team-leaders {
  grid-area: 1/2/2/10;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--_units---u-64);
}
.leader-card {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: var(--_units---u-24);
  align-items: center;
}
.leader-card_img {
  aspect-ratio: 4/5;
  max-height: 42vh;
  overflow: clip;
  border-radius: var(--8px, 0.5rem);
}
.leader-card_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.leader-card .p1 {
  max-width: 30em;
}
@media (max-width: 991px) {
  .arch-s {
    aspect-ratio: auto;
    min-height: var(--_special-units---100vh);
  }
  .team-leaders {
    grid-area: 1/1/2/5;
    grid-template-columns: 1fr;
    gap: var(--_units---u-48);
    padding-top: var(--_units---u-96);
  }
}

/** -------------------------------------------------
 * TESTIMONIALS — carousel (photo left, text right)
 * ------------------------------------------------- */
.tm {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}
.tm_track {
  display: grid;
}
.tm_slide {
  grid-area: 1/1;
  display: grid;
  grid-template-columns: 3fr 7fr;
  gap: var(--_units---u-48);
  opacity: 0;
  visibility: hidden;
  transform: translateX(var(--24px));
  transition: opacity var(--dur-m) var(--ease-out), transform var(--dur-m) var(--ease-out), visibility 0s linear var(--dur-m);
}
.tm_slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity var(--dur-m) var(--ease-out), transform var(--dur-m) var(--ease-out), visibility 0s;
}
.tm_img {
  aspect-ratio: 4/5;
  overflow: clip;
  border-radius: var(--8px, 0.5rem);
}
.tm_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tm_body {
  display: flex;
  flex-direction: column;
  gap: var(--_units---u-32);
  padding: var(--_units---u-16) 0;
}
.tm_quote {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.tm_event {
  display: flex;
  justify-content: space-between;
  gap: var(--_units---u-16);
  padding-top: var(--_units---u-16);
  border-top: 1px solid var(--_colors---base-1000--line);
}
.tm_btn {
  background: none;
  border: 0;
  color: var(--_colors---base-1000--primary);
  font: inherit;
}
.tm_nav .pag_progress_fill {
  transition: width var(--dur-m) var(--ease-out);
}
@media (max-width: 767px) {
  .tm_slide {
    grid-template-columns: 1fr;
    gap: var(--_units---u-24);
  }
  .tm_img {
    aspect-ratio: 4/3;
  }
}

/** -------------------------------------------------
 * CTA — "Your day, handled"
 * ------------------------------------------------- */
.cta-s_lead {
  max-width: 34em;
  margin-left: auto;
  margin-right: auto;
}
.cta-s_btns {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--_units---u-16);
}
@media (max-width: 767px) {
  .cta-s_btns {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Preloader "Enter to Website" trigger */
.preloader_enter {
  cursor: pointer;
  pointer-events: auto;
}

/* Preloader rings: follow the three-dome palace silhouette instead of a
   rounded arch. Outer layer = 1px line colour, inner layer = bg fill. */
.preloader_bg_arch_is-1,
.preloader_bg_arch_is-2 {
border-radius: 0;
outline: none;
background-color: var(--_colors---base-1000--line);
-webkit-mask: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYwIiBoZWlnaHQ9IjI1OTIiIHZpZXdCb3g9IjAgMCA1NjAgMjU5MiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2IDI1OTJWMzcySDMwVjM1MkMyMiAzMjIgNDQgMjk4IDcwIDI4MkM4MCAyNzUgODQgMjY2IDg0IDI1NlYyMTRMODYgMjAyTDg4IDIxNFYyNTZDODggMjY2IDkyIDI3NSAxMDIgMjgyQzEyOCAyOTggMTUwIDMyMiAxNDIgMzUyVjM3MkgxNzhWMzEySDE3MFYzMDBDMTU4IDI2MiAxOTYgMjEyIDI0NiAxNzhDMjY2IDE2NCAyNzYgMTUwIDI3NyAxMzZWMTIwQzI2OCAxMTggMjY4IDEwNCAyNzggMTAxTDI4MCA2NkwyODIgMTAxQzI5MiAxMDQgMjkyIDExOCAyODMgMTIwVjEzNkMyODQgMTUwIDI5NCAxNjQgMzE0IDE3OEMzNjQgMjEyIDQwMiAyNjIgMzkwIDMwMFYzMTJIMzgyVjM3Mkg0MThWMzUyQzQxMCAzMjIgNDMyIDI5OCA0NTggMjgyQzQ2OCAyNzUgNDcyIDI2NiA0NzIgMjU2VjIxNEw0NzQgMjAyTDQ3NiAyMTRWMjU2QzQ3NiAyNjYgNDgwIDI3NSA0OTAgMjgyQzUxNiAyOTggNTM4IDMyMiA1MzAgMzUyVjM3Mkg1NDRWMjU5MloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=') top center / 100% 100% no-repeat;
mask: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYwIiBoZWlnaHQ9IjI1OTIiIHZpZXdCb3g9IjAgMCA1NjAgMjU5MiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2IDI1OTJWMzcySDMwVjM1MkMyMiAzMjIgNDQgMjk4IDcwIDI4MkM4MCAyNzUgODQgMjY2IDg0IDI1NlYyMTRMODYgMjAyTDg4IDIxNFYyNTZDODggMjY2IDkyIDI3NSAxMDIgMjgyQzEyOCAyOTggMTUwIDMyMiAxNDIgMzUyVjM3MkgxNzhWMzEySDE3MFYzMDBDMTU4IDI2MiAxOTYgMjEyIDI0NiAxNzhDMjY2IDE2NCAyNzYgMTUwIDI3NyAxMzZWMTIwQzI2OCAxMTggMjY4IDEwNCAyNzggMTAxTDI4MCA2NkwyODIgMTAxQzI5MiAxMDQgMjkyIDExOCAyODMgMTIwVjEzNkMyODQgMTUwIDI5NCAxNjQgMzE0IDE3OEMzNjQgMjEyIDQwMiAyNjIgMzkwIDMwMFYzMTJIMzgyVjM3Mkg0MThWMzUyQzQxMCAzMjIgNDMyIDI5OCA0NTggMjgyQzQ2OCAyNzUgNDcyIDI2NiA0NzIgMjU2VjIxNEw0NzQgMjAyTDQ3NiAyMTRWMjU2QzQ3NiAyNjYgNDgwIDI3NSA0OTAgMjgyQzUxNiAyOTggNTM4IDMyMiA1MzAgMzUyVjM3Mkg1NDRWMjU5MloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=') top center / 100% 100% no-repeat;
}
.preloader_bg_arch_is-1::before,
.preloader_bg_arch_is-2::before {
content: '';
position: absolute;
inset: 1px;
background-color: var(--_colors---other--bg);
-webkit-mask: inherit;
mask: inherit;
}

/* Static full logo in header (replaces rotating circle badge) */
.header-logo {
  width: clamp(96px, 11.2vw, 172px);
  aspect-ratio: auto;
  top: 24px;
  justify-content: flex-start;
}
.logo_symbol.header {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
}
/* Header logo: white version over photos/dark, dark version over light sections */
.header-logo .header-logo_img {
  transition: opacity var(--dur-s, .3s) ease;
}
.header-logo .header-logo_img.is-dark {
  position: absolute;
  inset: 0;
  opacity: 0;
}
.header-logo .logo {
  position: relative;
}
.header-logo.theme_on-light .header-logo_img.is-light,
.header-logo.theme_on-brand .header-logo_img.is-light {
  opacity: 0;
}
.header-logo.theme_on-light .header-logo_img.is-dark,
.header-logo.theme_on-brand .header-logo_img.is-dark {
  opacity: 1;
}

/* Header: "Book a call" + hamburger Menu on all screen sizes */
.header-nav:has(.header-nav_list--all) {
  width: auto;
}
.header-nav_list.header-nav_list--all {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 24px;
}
.header-nav_list--all > .u-4 {
  display: none;
}
.header-nav_list--all [data-modal-cta-btn="book-a-call"] {
  padding: 12px 22px;
  border: 1px solid currentColor;
  border-radius: 999px;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.header-nav_list--all [data-modal-cta-btn="book-a-call"]:hover {
  background-color: #d39a5c;
  border-color: #d39a5c;
  color: #fff;
}

/* Smart header (see inline script in index.html) */
.header-logo,
.header-nav,
.header-bar {
  transition: transform .5s cubic-bezier(.2, .7, .2, 1), opacity .3s ease;
}
.header-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1199;
  height: 100px;
  background-color: var(--_colors---other--bg);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
  transform: translateY(-100%);
  pointer-events: none;
}
.tz-header-solid .header-bar {
  transform: translateY(0);
}
.tz-header-hidden .header-logo,
.tz-header-hidden .header-nav {
  transform: translateY(calc(-100% - 60px));
  opacity: 0;
  pointer-events: none;
}

/* Simpler typography: keep the condensed display face for big titles
   (h1-h4), use a simple rounded sans (Nunito) for body, labels and small
   headings & descriptions (h5/h6) */
:root {
  --_fonts---font-body: "Nunito", Arial, sans-serif;
}
h5, h6, .h5, .h6 {
  font-family: "Nunito", Arial, sans-serif;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.2;
}

/* Scrolled-up header: small symbol only instead of the full logo */
.header-logo .header-logo_img.is-icon {
  display: none !important;
}
.header-logo {
  transition: transform .5s cubic-bezier(.2, .7, .2, 1), opacity .3s ease, width .4s ease;
}
.tz-header-solid .header-logo {
  width: 52px;
  top: 24px;
}
.tz-header-solid .header-nav {
  top: 30px;
}
/* white-T symbol on dark/colour bars, green-T symbol on light bars */
.header-logo .header-logo_img.is-icon-light {
  display: none !important;
}
.tz-header-solid .header-logo:not(.theme_on-light):not(.theme_on-brand) .header-logo_img.is-icon {
  display: none !important;
}
.tz-header-solid .header-logo:not(.theme_on-light):not(.theme_on-brand) .header-logo_img.is-icon-light {
  display: block !important;
}
.tz-header-solid .header-logo .header-logo_img.is-light,
.tz-header-solid .header-logo .header-logo_img.is-dark {
  display: none !important;
}
.tz-header-solid .header-logo .header-logo_img.is-icon {
  display: block !important;
}

/* Buttons: keep the label above the background fill, white on solid pills */
.btn .btn_label {
  z-index: 1;
}
.btn.is-solid .btn_label .l1 {
  color: var(--_colors---base-0--primary);
}
@media (max-width: 479px) {
  .leader-card {
    grid-template-columns: 1fr;
  }
  .leader-card_img {
    max-height: none;
  }
}


/** -------------------------------------------------
 * WHAT WE HANDLE (amen) — cleaner slide layout
 * ------------------------------------------------- */
/* darker left/bottom wash so the copy reads over busy photos */
.amen-slide_img::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .25) 45%, rgba(0, 0, 0, 0) 70%),
    linear-gradient(0deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, 0) 45%);
}
.amen-slide_b {
  position: relative;
  z-index: 2;
}
/* eyebrow label: small gold caps with a short rule */
.amen-slide_title {
  grid-area: 1/2/2/7;
}
.amen-slide_title .l1 {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #e0b07a;
  letter-spacing: .18em;
}
.amen-slide_title .u-32 {
  height: var(--_units---u-16);
}
/* description: no odd first-line indent, calmer size, comfortable measure */
.amen-slide_desc {
  grid-area: 2/2/3/7;
}
.amen-slide_desc .red-line {
  display: none;
}
.amen-slide_desc .h5 {
  font-size: clamp(22px, 2vw, 32px);
  font-weight: 500;
  line-height: 1.35;
  max-width: 24em;
}
/* service list: compact single-line items */
.amen-tab .h5 {
  font-size: clamp(16px, 1.25vw, 20px);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  padding: 12px 0 12px 24px;
  letter-spacing: .01em;
}
@media (max-width: 991px) {
  .amen-slide_title,
  .amen-slide_desc {
    grid-area: auto / 1 / auto / 5;
  }
  .amen-tab .h5 {
    padding: 8px 0 8px 16px;
    white-space: normal;
  }
}

/* Services: white background, smaller card titles */
#services {
  --_colors---other--bg: #fff;
  background-color: #fff;
}
.svc-card .h5 {
  font-size: clamp(20px, 1.6vw, 26px);
  line-height: 1.25;
}

/* Service cards redesign: soft cream cards with rounded corners, a shorter
   image with the number badge on it, and a gentle lift on hover */
.svc-grid {
  gap: var(--_units---u-32) var(--_units---u-24);
}
.svc-card {
  position: relative;
  background: #f6f3ec;
  border-radius: 20px;
  overflow: clip;
  transition: transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s ease;
}
.svc-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px -18px rgba(40, 50, 30, .25);
}
.svc-card_img {
  aspect-ratio: 16/10;
  border-radius: 0;
}
.svc-card_img img {
  transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}
.svc-card:hover .svc-card_img img {
  transform: scale(1.05);
}
.svc-card_body {
  padding: var(--_units---u-24) var(--_units---u-24) var(--_units---u-32);
  gap: var(--_units---u-12, 12px);
}
.svc-card_meta {
  border-bottom: 0;
  padding-bottom: 0;
  align-items: center;
}
/* number becomes a small badge pinned on the image */
.svc-card_meta > .l1:first-child {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 1;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(6px);
}
.svc-card_meta .reg {
  color: #c28a4e;
  letter-spacing: .14em;
}
.svc-card_body .p1 {
  font-size: 15.2px;
  line-height: 1.6;
}
.svc-card_link {
  margin-top: var(--_units---u-8, 8px);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid currentColor;
  border-radius: 999px;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.svc-card_link:hover {
  opacity: 1;
  background: #4a5a3c;
  border-color: #4a5a3c;
  color: #fff;
}

/* Enquiry CTA heading */
.enquiry-s_eyebrow {
  color: #c28a4e;
  letter-spacing: .18em;
}
.enquiry-s_lead {
  grid-column: 1 / -1;
  max-width: 28em;
  margin-left: auto;
  margin-right: auto;
}

/* Footer redesign: brand name hero + three tidy info columns */
.tz-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--_units---u-96);
  padding-top: var(--_units---u-96);
  padding-bottom: var(--_units---u-64);
}
.tz-footer_brand {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.tz-footer_name {
  line-height: .9;
}
.tz-footer_tag {
  color: #e0b07a;
  letter-spacing: .24em;
}
.tz-footer_cols {
  width: 100%;
  max-width: 64rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255, 255, 255, .18);
  border-bottom: 1px solid rgba(255, 255, 255, .18);
}
.tz-footer_col {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
  padding: var(--_units---u-48) var(--_units---u-24);
}
.tz-footer_col + .tz-footer_col {
  border-left: 1px solid rgba(255, 255, 255, .18);
}
.tz-footer_label {
  opacity: .65;
  letter-spacing: .16em;
}
.tz-footer_link {
  color: inherit;
  text-decoration: none;
  transition: color .3s ease;
}
.tz-footer_link:hover {
  color: #e0b07a;
}
.tz-footer_btn {
  display: inline-flex;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 999px;
  background: #f6f3ec;
  color: #4a5a3c;
  text-decoration: none;
  transition: background-color .3s ease, color .3s ease;
}
.tz-footer_btn:hover {
  background: #e0b07a;
  color: #fff;
}
@media (max-width: 767px) {
  .tz-footer {
    gap: var(--_units---u-64);
  }
  .tz-footer_cols {
    grid-template-columns: 1fr;
  }
  .tz-footer_col + .tz-footer_col {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, .18);
  }
}

/* Footer fixes: let it grow past one screen, readable links, card columns */
.footer-s {
  height: auto;
  min-height: var(--_special-units---100vh);
}
.tz-footer_cols {
  gap: var(--_units---u-24);
  border: 0;
}
.tz-footer_col,
.tz-footer_col + .tz-footer_col {
  border: 0;
}
.tz-footer_col {
  align-items: flex-start;
  text-align: left;
  gap: 14px;
  padding: var(--_units---u-32);
  border-radius: 20px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .12);
  transition: background-color .3s ease, transform .4s cubic-bezier(.2, .7, .2, 1);
}
.tz-footer_col:hover {
  background: rgba(255, 255, 255, .1);
  transform: translateY(-4px);
}
.tz-footer_ico {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(224, 176, 122, .15);
  color: #e0b07a;
}
.tz-footer .tz-footer_link,
.tz-footer .tz-footer_link.h5,
.tz-footer .tz-footer_link.p1 {
  color: #f6f3ec;
}
.tz-footer .tz-footer_link.p1 {
  line-height: 1.6;
  opacity: .9;
}
.tz-footer .tz-footer_link:hover {
  color: #e0b07a;
}
.tz-footer_label {
  color: #f6f3ec;
}
@media (max-width: 767px) {
  .tz-footer_col + .tz-footer_col {
    border: 1px solid rgba(255, 255, 255, .12);
  }
}

/* Enquiry CTA: title on one line on desktop */
.enquiry-s_title {
  grid-column: 1 / -1;
}
@media (min-width: 992px) {
  .enquiry-s_title .h3 {
    white-space: nowrap;
  }
}

/* Match the angled edge above Services to its new white background */
.loc-w_decor.theme_on-brand {
  --_colors---other--bg: #fff;
}

/* Stats: extra space above the numbers */
.intro-stats {
  margin-top: var(--_units---u-64);
}

/* "Every little detail" panel: full-height image, copy + button centred beside it */
@media (min-width: 992px) {
  .loc-intro-s > .u-48 {
    display: none;
  }
  .loc-intro-s .grid._13-columns.fill {
    height: 100%;
  }
  .loc-intro-s_img {
    align-self: stretch;
    height: var(--_special-units---100vh);
  }
  .loc-intro-s_img .img-w {
    height: 100%;
  }
  .loc-intro-s_img .img {
    width: 100%;
    height: 80%;
    object-fit: cover;
  }
  .loc-intro-s_desc {
    grid-area: 1/10/2/13;
    align-self: center;
  }
}
.loc-intro-s_btn.is-inline {
  grid-area: auto;
  align-items: flex-start;
  align-self: auto;
}

/* Text over the aerial photo: frosted dark panel so it stays readable */
.loc-s_desc > .b-desk {
  position: relative;
  padding: var(--_units---u-32);
  border-radius: 20px;
  background: rgba(20, 24, 16, .55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
}
.loc-s_desc > .b-desk .loc-s_desc_line {
  display: none;
}
.loc-s_desc > .b-desk .l1 {
  color: #e0b07a;
  letter-spacing: .14em;
}
.loc-s_desc > .b-desk .p1 {
  color: #fff;
  font-size: 18px;
}
.loc-s_desc > .b-desk .u-32 {
  height: var(--_units---u-16);
}

@media (min-width: 992px) {
  .loc-intro-s_desc {
    padding-left: var(--_units---u-64);
  }
}

/* Footer cards: phone + email as plain lines, social icons */
.tz-footer_lines {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tz-footer_social {
  display: flex;
  gap: 10px;
  margin-bottom: 6px;
}
.tz-footer_social_link {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #f6f3ec;
  border: 1px solid rgba(246, 243, 236, .25);
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.tz-footer_social_link:hover {
  background: #e0b07a;
  border-color: #e0b07a;
  color: #4a5a3c;
}

/* Our Team: dark overlay on the background photo so the white text reads */
.arch-w .w_bg .img-w::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(15, 12, 8, .55) 0%, rgba(15, 12, 8, .4) 50%, rgba(15, 12, 8, .65) 100%);
}
.arch-w .w_bg .img-w {
  position: relative;
}


/* Footer info row v2: no cards or icons - airy columns with a short gold
   rule above each label and thin dividers between them */
.tz-footer_cols {
  gap: 0;
}
.tz-footer_col,
.tz-footer_col:hover {
  background: none;
  border: 0;
  border-radius: 0;
  transform: none;
}
.tz-footer_col {
  align-items: center;
  text-align: center;
  padding: var(--_units---u-16) var(--_units---u-32);
  gap: 16px;
}
.tz-footer_col + .tz-footer_col {
  border-left: 1px solid rgba(246, 243, 236, .15);
}
.tz-footer_label {
  position: relative;
  padding-top: 20px;
  color: #e0b07a;
  opacity: 1;
  letter-spacing: .2em;
}
.tz-footer_label::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 32px;
  height: 1px;
  background: #e0b07a;
  transform: translateX(-50%);
}
.tz-footer .tz-footer_link.p1 {
  font-size: 17px;
  opacity: 1;
}
.tz-footer_lines {
  align-items: center;
  gap: 6px;
}
.tz-footer_social {
  justify-content: center;
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .tz-footer_col + .tz-footer_col {
    border: 0;
    border-top: 1px solid rgba(246, 243, 236, .15);
  }
  .tz-footer_col {
    padding: var(--_units---u-32) var(--_units---u-16);
  }
}

/* Services v3: compact header on one line + horizontal card carousel */
.svc-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--_units---u-48);
}
.svc-head_eyebrow {
  color: #c28a4e;
  letter-spacing: .18em;
}
.svc-head_title {
  white-space: nowrap;
}
.svc-head_r {
  max-width: 26rem;
  display: flex;
  flex-direction: column;
  gap: var(--_units---u-24);
}
.svc-nav {
  display: flex;
  gap: 12px;
}
.svc-nav_btn {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  border: 1px solid #4a5a3c;
  background: transparent;
  color: #4a5a3c;
  font-size: 20px;
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease, opacity .3s ease;
}
.svc-nav_btn:hover:not(:disabled) {
  background: #4a5a3c;
  color: #fff;
}
.svc-nav_btn:disabled {
  opacity: .3;
  cursor: default;
}
.svc-grid {
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: none;
  grid-auto-columns: calc((100% - 2 * var(--_units---u-24)) / 3);
  column-gap: var(--_units---u-24);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: var(--_units---u-24);
}
.svc-grid::-webkit-scrollbar {
  display: none;
}
.svc-card {
  scroll-snap-align: start;
}
.svc-card:hover {
  transform: none;
}
@media (max-width: 991px) {
  .svc-head {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--_units---u-24);
  }
  .svc-head_title {
    white-space: normal;
  }
  .svc-grid {
    grid-template-columns: none;
    grid-auto-columns: 46%;
  }
}
@media (max-width: 767px) {
  .svc-grid {
    grid-template-columns: none;
    grid-auto-columns: 82%;
  }
}

/* Site-wide spacing trim: the big spacer blocks and the tall vertical
   divider lines left large empty bands between sections */
.u-160 {
  height: var(--_units---u-96);
}
.u-96 {
  height: var(--_units---u-64);
}
.divider {
  height: var(--_units---u-48);
}
.other-s .s_title .l1 {
  white-space: nowrap;
}
@media (max-width: 991px) {
  .u-160 {
    height: var(--_units---u-64);
  }
  .u-96 {
    height: var(--_units---u-48);
  }
}

/* CTA ("Let's begin your wedding story"): fit the content and centre it,
   instead of a very tall fixed shape with empty photo below */
.cta-s {
  aspect-ratio: auto;
  min-height: var(--_special-units---100vh);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: var(--_units---u-64);
  padding-bottom: var(--_units---u-96);
}

/* Services v4 - luxury: arrows only on desktop (no wheel/trackpad capture),
   tall photo cards with text over a soft dark fade, gold accents */
.svc-grid {
  overflow-x: hidden;
  padding-bottom: 0;
}
@media (hover: none) {
  .svc-grid {
    overflow-x: auto;
  }
}
.svc-head_title {
  letter-spacing: .01em;
}
.svc-head_r .p1 {
  color: var(--_colors---base-1000--gray-text);
  line-height: 1.7;
}
.svc-nav_btn {
  border-color: #c28a4e;
  color: #c28a4e;
}
.svc-nav_btn:hover:not(:disabled) {
  background: #c28a4e;
  border-color: #c28a4e;
  color: #fff;
}
.svc-card {
  position: relative;
  aspect-ratio: 3/4;
  border-radius: 4px;
  background: #1f2418;
  box-shadow: none;
  isolation: isolate;
}
.svc-card:hover {
  box-shadow: 0 30px 60px -30px rgba(20, 24, 16, .6);
}
.svc-card::after {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(224, 176, 122, 0);
  z-index: 2;
  pointer-events: none;
  transition: border-color .5s ease, inset .5s ease;
}
.svc-card:hover::after {
  inset: 16px;
  border-color: rgba(224, 176, 122, .7);
}
.svc-card_img {
  position: absolute;
  inset: 0;
  aspect-ratio: auto;
  z-index: 0;
}
.svc-card_img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 18, 12, .15) 0%, rgba(15, 18, 12, .1) 35%, rgba(15, 18, 12, .85) 100%);
}
.svc-card_body {
  position: relative;
  z-index: 1;
  height: 100%;
  justify-content: flex-end;
  padding: var(--_units---u-32);
  gap: 10px;
  color: #f6f3ec;
}
.svc-card_meta {
  position: static;
}
.svc-card_meta > .l1:first-child {
  top: 28px;
  left: 28px;
  min-width: 0;
  height: auto;
  padding: 0;
  background: none;
  backdrop-filter: none;
  color: #e0b07a;
  font-family: var(--_fonts---font-display);
  font-size: 36px;
  letter-spacing: 0;
}
.svc-card_meta .reg {
  color: #e0b07a;
}
.svc-card .h5 {
  color: #fff;
}
.svc-card_body .p1 {
  flex: none;
  color: rgba(246, 243, 236, .82);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.svc-card_link {
  margin-top: 6px;
  padding: 0 0 4px;
  border: 0;
  border-bottom: 1px solid #e0b07a;
  border-radius: 0;
  color: #e0b07a;
  letter-spacing: .16em;
}
.svc-card_link:hover {
  background: none;
  color: #fff;
  border-color: #fff;
}

/* CTA: stronger dark overlay on the photo, tighter tagline spacing */
.cta-w .w_bg .img-w {
  position: relative;
}
.cta-w .w_bg .img-w::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(15, 12, 8, .6) 0%, rgba(15, 12, 8, .5) 50%, rgba(15, 12, 8, .7) 100%);
}
.cta-s_title .c1 {
  letter-spacing: 9px;
}


/* Footer info row v3: compact, left-aligned, small refined type */
.tz-footer_cols {
  max-width: 56rem;
  grid-template-columns: 1fr 1.4fr 1fr;
  gap: var(--_units---u-48);
  padding-top: var(--_units---u-32);
  border-top: 1px solid rgba(246, 243, 236, .15);
}
.tz-footer_col,
.tz-footer_col + .tz-footer_col {
  border: 0;
  align-items: flex-start;
  text-align: left;
  padding: 0;
  gap: 10px;
}
.tz-footer_label {
  padding-top: 0;
  font-size: 11px;
  letter-spacing: .22em;
}
.tz-footer_label::before {
  display: none;
}
.tz-footer .tz-footer_link.p1 {
  font-size: 15px;
  line-height: 1.6;
  opacity: .85;
}
.tz-footer_lines {
  align-items: flex-start;
  gap: 2px;
}
.tz-footer_social {
  justify-content: flex-start;
  gap: 8px;
}
.tz-footer_social_link {
  width: 34px;
  height: 34px;
}
.tz-footer_social_link svg {
  width: 15px;
  height: 15px;
}
@media (max-width: 767px) {
  .tz-footer_cols {
    grid-template-columns: 1fr;
    gap: var(--_units---u-32);
  }
  .tz-footer_col + .tz-footer_col {
    border: 0;
    padding-top: 0;
  }
}

/* Our Team keeps its original spacing (exempt from the site-wide trim) */
.arch-s .u-96 {
  height: var(--_units---u-96);
}
@media (min-width: 992px) {
  .arch-s .u-96 { height: var(--96px); }
}

/* Services v5 - editorial arches: arch-topped photo, centred text below,
   display-font titles, small gold details (overrides v3/v4 card styles) */
.svc-grid {
  grid-auto-columns: calc((100% - 3 * var(--_units---u-32)) / 4);
  column-gap: var(--_units---u-32);
}
.svc-card,
.svc-card:hover {
  aspect-ratio: auto;
  background: none;
  border-radius: 0;
  box-shadow: none;
  transform: none;
  overflow: visible;
}
.svc-card::after {
  display: none;
}
.svc-card_img {
  position: relative;
  inset: auto;
  aspect-ratio: 3/4;
  border-radius: 999px 999px 4px 4px;
  overflow: clip;
}
.svc-card_img::after {
  background: linear-gradient(180deg, rgba(15, 18, 12, 0) 60%, rgba(15, 18, 12, .25) 100%);
}
.svc-card:hover .svc-card_img img {
  transform: scale(1.06);
}
.svc-card_body {
  height: auto;
  justify-content: flex-start;
  align-items: center;
  text-align: center;
  padding: var(--_units---u-24) var(--_units---u-8) 0;
  gap: 10px;
  color: inherit;
}
.svc-card_meta {
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.svc-card_meta > .l1:first-child {
  position: static;
  font-family: var(--_fonts---font-body);
  font-size: 12px;
  letter-spacing: .2em;
  color: #c28a4e;
}
.svc-card_meta > .l1:first-child::before,
.svc-card_meta > .l1:first-child::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 1px;
  margin: 0 10px;
  vertical-align: middle;
  background: currentColor;
}
.svc-card_meta .reg {
  display: none;
}
.svc-card .h5 {
  font-family: var(--_fonts---font-display);
  text-transform: uppercase;
  font-weight: 400;
  font-size: clamp(24px, 1.9vw, 32px);
  line-height: 1.05;
  color: var(--_colors---base-1000--primary);
}
.svc-card_body .p1 {
  color: var(--_colors---base-1000--gray-text);
  font-size: 14px;
  line-height: 1.6;
  -webkit-line-clamp: 3;
}
.svc-card_link {
  color: var(--_colors---base-1000--primary);
  border-bottom-color: #c28a4e;
  font-size: 12px;
}
.svc-card_link:hover {
  color: #c28a4e;
  border-color: #c28a4e;
}
@media (max-width: 991px) {
  .svc-grid {
    grid-auto-columns: 44%;
  }
}
@media (max-width: 767px) {
  .svc-grid {
    grid-auto-columns: 78%;
  }
}

/* Service cards: full description (no "..." cut-off), all centred */
.svc-card_body .p1 {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
  text-align: center;
}
.svc-card_meta {
  display: none;
}

/* Footer brand: full logo, pushed down clear of the CTA image above */
.tz-footer {
  padding-top: calc(var(--_units---u-96) + var(--_units---u-96));
}
.tz-footer_logo {
  display: block;
  width: clamp(180px, 18vw, 280px);
  height: auto;
}

/* Testimonials label: more space above, none of the empty gap below */
.other-s > .u-48:first-child {
  height: var(--_units---u-96);
}
.other-s > .divider,
.other-s > .divider + .u-64 {
  display: none;
}

/* Our Team: half-height scroll spacers (shorter pinned stretch between the
   title and the founder cards) */
.arch-scroll-area > ._100vh.b-desk {
  height: calc(var(--_special-units---100vh) * .5);
}

/* Service cards link to their own pages: whole card clickable */
.svc-card_cover {
  color: inherit;
  text-decoration: none;
}
.svc-card_cover::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
}
.svc-card:hover .h5 {
  color: #c28a4e;
}
.svc-all {
  align-self: flex-start;
  color: #4a5a3c;
  text-decoration: none;
  border-bottom: 1px solid #c28a4e;
  padding-bottom: 3px;
  letter-spacing: .16em;
}
.svc-all:hover {
  color: #c28a4e;
}

/* Buttons: one compact size site-wide (home page) */
.btn,
.btn.is-lg {
  height: 44px;
  padding-left: 24px;
  padding-right: 24px;
  border-radius: 44px;
}
.btn .l1,
.cta-s_btns .btn .l1 {
  font-size: 12px;
  letter-spacing: .14em;
  font-weight: 600;
}
.header-nav_list--all [data-modal-cta-btn="book-a-call"] {
  padding: 10px 20px;
}
.svc-nav_btn {
  width: 44px;
  height: 44px;
  font-size: 16px;
}
@media (max-width: 991px) {
  .btn,
  .btn.is-lg {
    height: 42px;
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* Cookie banner: smaller Accept / Decline on phones */
@media (max-width: 767px) {
  .cookies_card_btn-list .h6 {
    font-size: 16px;
    line-height: 1.2;
  }
}

/* ===== Menu modal redesign: editorial numbered list ===== */
.modal.menu .modal_menu_title .h1 {
  font-size: clamp(3rem, 9vw, 7rem);
  letter-spacing: .02em;
  line-height: .9;
}
.modal.menu .modal_menu_title::after {
  content: "";
  display: block;
  width: 48px;
  height: 1px;
  margin: 20px auto 0;
  background: #d39a5c;
}
.modal.menu .modal_menu_list {
  counter-reset: menu-item;
  gap: 0;
  align-items: stretch;
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  grid-column: 1 / -1;
}
.modal.menu .modal_menu_list > .link {
  counter-increment: menu-item;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 14px 4px;
  border-bottom: 1px solid rgba(245, 241, 232, .14);
  text-decoration: none;
  transition: padding-left .35s ease, color .3s ease;
}
.modal.menu .modal_menu_list > .link:first-child {
  border-top: 1px solid rgba(245, 241, 232, .14);
}
/* gold index number */
.modal.menu .modal_menu_list > .link::before {
  content: counter(menu-item, decimal-leading-zero);
  font-size: 12px;
  letter-spacing: .12em;
  color: #d39a5c;
  min-width: 22px;
}
/* arrow, revealed on hover */
.modal.menu .modal_menu_list > .link::after {
  content: "\2192";
  margin-left: auto;
  color: #d39a5c;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .3s ease, transform .3s ease;
}
.modal.menu .modal_menu_list > .link:hover,
.modal.menu .modal_menu_list > .link:focus-visible {
  padding-left: 12px;
  color: #d39a5c;
}
.modal.menu .modal_menu_list > .link:hover::after,
.modal.menu .modal_menu_list > .link:focus-visible::after {
  opacity: 1;
  transform: none;
}
.modal.menu .modal_menu_list > .link .link_label { text-align: left; }
.modal.menu .modal_menu_list > .link .h6 {
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  text-decoration: none;
  border: 0;
}
/* remove the inconsistent underline lines */
.modal.menu .modal_menu_list > .link .link_label::after,
.modal.menu .modal_menu_list > .link .link_label::before {
  display: none;
}
/* current page marker */
.modal.menu .modal_menu_list > .link.w--current .h6 { color: #d39a5c; }
.modal.menu .modal_menu_list > .link.w--current::after { content: "\2022"; opacity: 1; transform: none; }
/* Book a call as a pill CTA */
.modal.menu .modal_menu_list > .link[data-modal-cta-btn] {
  order: 99;
  justify-content: center;
  margin-top: 28px;
  padding: 14px 24px;
  border: 1px solid #d39a5c;
  border-radius: 999px;
  background: #d39a5c;
  color: #fff;
  counter-increment: none;
}
.modal.menu .modal_menu_list > .link[data-modal-cta-btn]::before,
.modal.menu .modal_menu_list > .link[data-modal-cta-btn]::after { display: none; }
.modal.menu .modal_menu_list > .link[data-modal-cta-btn] .link_label { text-align: center; }
.modal.menu .modal_menu_list > .link[data-modal-cta-btn]:hover {
  padding-left: 24px;
  background: transparent;
  color: #d39a5c;
}
@media (max-width: 767px) {
  .modal.menu .modal_menu_list { max-width: none; padding: 0 16px; }
  .modal.menu .modal_menu_t .u-272 { height: 120px; }
}

/* Floating tip cards: compact height, brand display font for title */
.floating-tip-card {
  aspect-ratio: auto;
  justify-content: flex-start;
  gap: var(--_units---u-16, 16px);
}
.floating-tip-card_t .h5 {
  font-family: var(--_fonts---font-display);
  font-weight: 400;
  text-transform: uppercase;
  line-height: .95;
  letter-spacing: .01em;
}

/* Menu fixes: labels visible, tighter layout */
.modal.menu .modal_menu_list > .link .link_label { flex: 1; overflow: hidden; }
.modal.menu .modal_menu_list > .link .h6 { color: inherit; white-space: nowrap; }
.modal.menu .modal_menu_list > .link[data-modal-cta-btn] .h6 { color: #fff; }
.modal.menu .modal_menu_list > .link[data-modal-cta-btn]:hover .h6 { color: #d39a5c; }
.modal.menu .modal_menu { justify-content: center; gap: 40px; }
.modal.menu .modal_menu_t .u-48,
.modal.menu .modal_menu_t .u-272 { height: 0; }
.modal.menu .modal_menu_c { flex: 0 0 auto; }

/* Hide the JS-injected hover underline inside the menu */
.modal.menu .modal_menu_list .link_line { display: none !important; }

/* Testimonials: keep quote clear of the flower decoration */
.tm_quote .p1 { line-height: 1.6; }
@media (max-width: 991px) { .tm_quote { max-width: none; } }

/* Testimonials (desktop): keep text clear of the flower video */
@media (min-width: 992px) {
  .tm_body {
    max-width: 70%;
  }
}

/* Why Taamzaam: open layout, no card backgrounds */
.why-grid { gap: 48px; }
.why-item {
  background: none;
  border: 0;
  border-top: 1px solid rgba(76, 90, 60, 0.25);
  border-radius: 0;
  padding: 28px 0 0;
  overflow: visible;
  box-shadow: none;
}
.why-item::after {
  top: -1px;
  bottom: auto;
  height: 1px;
}
.why-item:hover {
  transform: none;
  box-shadow: none;
}
.why-item:hover .why-item_title { color: #d39a5c; }
.why-item_title { transition: color .3s ease; }
.why-item_num {
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}
.why-item_num::after { display: none; }
@media (max-width: 991px) {
  .why-grid { gap: 32px 24px; }
  .why-item { padding: 22px 0 0; }
}

/* Services carousel: the card sizes to its content; only the arch photo keeps
   a fixed 3/4 shape, so every card's image is the same height */
.svc-card {
  aspect-ratio: auto;
}
.svc-card_img {
  flex: none;
  width: 100%;
}

/* Cookie banner: size the script "Cookies" title to the card so it never
   spills past the edges */
.cookies_card {
  container-type: inline-size;
}
.cookies_card_title {
  margin-left: 0;
  max-width: 100%;
}
.cookies_card_title .a1 {
  font-size: 38cqi;
  line-height: 1.1;
  white-space: nowrap;
}

/* ===== Type & width fixes =====
   Note: on this build 1rem = 1vw (fluid root size), so rem-based sizes collapse
   on small screens. These overrides use px bounds instead. */
.why-item_title { font-size: clamp(18px, 1.6vw, 24px); }
.why-item_num { font-size: clamp(40px, 3.5vw, 56px); }
.modal.menu .modal_menu_list > .link .h6 { font-size: clamp(20px, 2.2vw, 26px); }
.modal.menu .modal_menu_title .h1 { font-size: clamp(48px, 9vw, 112px); }

/* Sans (Nunito) headings were sized for the narrow display face; bring them
   back to a comfortable size */
.cookies_card_btn-list .h6 { font-size: clamp(16px, 1.3vw, 20px); line-height: 1.3; }
.cookies_card_btn-list { gap: 10px; }
.leader-card_body .h5 { font-size: clamp(22px, 2.1vw, 32px); }
.amen-slide_desc .h5 { font-size: clamp(17px, 1.5vw, 22px); line-height: 1.5; font-weight: 500; }
.loc-intro-s_desc .h5 { font-size: clamp(18px, 1.8vw, 26px); line-height: 1.4; }

@media (max-width: 991px) {
  .why-grid, .tz-footer_cols, .tm, .svc-head_r, .intro-stats {
    max-width: none;
  }
  .input_field.l1 { font-size: 16px; }
}

/* Split text: each line is its own block so lines never run together
   ("planningtoday") when a paragraph wraps */
.split-line-mask,
.split-line {
  display: block;
}

/* Enquiry intro: 28em resolved to ~110px on phones (fluid rem) */
.enquiry-s_lead { max-width: min(560px, 100%); }

/* Bougainvillea beside "From the first call": keep it at the edge, behind the copy */
@media (max-width: 991px) {
  .flower.loc-intro { z-index: 0; left: -38%; bottom: -14%; }
  .loc-intro-s_desc { position: relative; z-index: 2; }
}

/* Amenity tabs over photos: inactive tabs readable, active one stands out */
.amen-tab { opacity: .72; }
.amen-tab .h5 { text-shadow: 0 1px 12px rgba(0, 0, 0, .55); }
.amen-tab.is-active, .amen-tab.w--current { opacity: 1; }

@media (max-width: 991px) {
  /* keep the bougainvillea clear of the heading */
  .flower.loc-intro { left: -52%; bottom: -6%; }
  /* footer: centred stack under the centred logo */
  .tz-footer_cols { text-align: center; justify-items: center; }
  .tz-footer_social { justify-content: center; }
}

/* Curved "Why Taamzaam" title: the SVG already scales with the screen, so give
   the text a fixed size in SVG units (it was scaling twice on tablets/large screens) */
.benefits-intro-s_title_svg.b-mob text { font-size: 37.5px; }
.benefits-intro-s_title_svg.b-desk text { font-size: 57px; }

/* Intro copy columns: 56em was only ~460px on tablets */
.intro-copy_cols { max-width: min(900px, 100%); }
@media (max-width: 767px) {
  .intro-copy_cols { grid-template-columns: minmax(0, 1fr); }
}

/* ===== Responsive type & spacing scale =====
   The base theme sizes everything in vw (designed at 416px and 1600px only),
   so text ballooned on tablets (31px body) and shrank on laptops (8px body).
   Clamp every size/spacing token to sensible px bounds around its design value. */
@media (min-width: 992px) {
  body {
    --_fonts---h1--size: clamp(119px, calc(192rem/var(--_special-units---scale-ratio)), 230.4px);
    --_fonts---h2--size: clamp(84.3px, calc(136rem/var(--_special-units---scale-ratio)), 163.2px);
    --_fonts---h3--size: clamp(59.5px, calc(96rem/var(--_special-units---scale-ratio)), 115.2px);
    --_fonts---h4--size: clamp(39.1px, calc(63rem/var(--_special-units---scale-ratio)), 75.6px);
    --_fonts---h5--size: clamp(24.8px, calc(40rem/var(--_special-units---scale-ratio)), 48px);
    --_fonts---h6--size: clamp(17.4px, calc(28rem/var(--_special-units---scale-ratio)), 33.6px);
    --_fonts---p1--size: clamp(14px, calc(13rem/var(--_special-units---scale-ratio)), 16.3px);
    --_fonts---l1--size: clamp(11px, calc(11rem/var(--_special-units---scale-ratio)), 13.8px);
    --_fonts---p2--size: clamp(12px, calc(11rem/var(--_special-units---scale-ratio)), 13.8px);
    --_fonts---l2--size: clamp(10px, calc(9rem/var(--_special-units---scale-ratio)), 11.3px);
    --_fonts---c1--size: clamp(15.5px, calc(25rem/var(--_special-units---scale-ratio)), 30px);
    --_fonts---a1--size: clamp(119px, calc(192rem/var(--_special-units---scale-ratio)), 230.4px);
    --_fonts---a2--size: clamp(74.4px, calc(120rem/var(--_special-units---scale-ratio)), 144px);
    --_units---u-4: clamp(2.8px, var(--4px), 4.8px);
    --_units---u-8: clamp(5.6px, var(--8px), 9.6px);
    --_units---u-12: clamp(8.4px, var(--12px), 14.4px);
    --_units---u-16: clamp(11.2px, var(--16px), 19.2px);
    --_units---u-24: clamp(16.8px, var(--24px), 28.8px);
    --_units---u-32: clamp(22.4px, var(--32px), 38.4px);
    --_units---u-48: clamp(33.6px, var(--48px), 57.6px);
    --_units---u-64: clamp(44.8px, var(--64px), 76.8px);
    --_units---u-96: clamp(67.2px, var(--96px), 115.2px);
    --_units---u-160: clamp(112px, var(--160px), 192px);
    --_units---u-272: clamp(190.4px, var(--272px), 326.4px);
  }
}
@media (max-width: 991px) {
  body {
    --_fonts---h1--size: clamp(81.6px, calc(96rem/var(--_special-units---scale-ratio)), 139.2px);
    --_fonts---h2--size: clamp(62px, calc(73rem/var(--_special-units---scale-ratio)), 105.8px);
    --_fonts---h3--size: clamp(47.6px, calc(56rem/var(--_special-units---scale-ratio)), 81.2px);
    --_fonts---h4--size: clamp(34px, calc(40rem/var(--_special-units---scale-ratio)), 58px);
    --_fonts---h5--size: clamp(23.8px, calc(28rem/var(--_special-units---scale-ratio)), 40.6px);
    --_fonts---h6--size: clamp(23.8px, calc(28rem/var(--_special-units---scale-ratio)), 40.6px);
    --_fonts---p1--size: clamp(13px, calc(13rem/var(--_special-units---scale-ratio)), 15.6px);
    --_fonts---l1--size: clamp(10.5px, calc(11rem/var(--_special-units---scale-ratio)), 13.2px);
    --_fonts---p2--size: clamp(11px, calc(11rem/var(--_special-units---scale-ratio)), 13.2px);
    --_fonts---l2--size: clamp(9.5px, calc(9rem/var(--_special-units---scale-ratio)), 11.4px);
    --_fonts---c1--size: clamp(16.1px, calc(19rem/var(--_special-units---scale-ratio)), 27.6px);
    --_fonts---a1--size: clamp(81.6px, calc(96rem/var(--_special-units---scale-ratio)), 139.2px);
    --_fonts---a2--size: clamp(61.2px, calc(72rem/var(--_special-units---scale-ratio)), 104.4px);
    --_units---u-4: clamp(3.4px, var(--4px), 5.4px);
    --_units---u-8: clamp(6.8px, var(--8px), 10.8px);
    --_units---u-12: clamp(10.2px, var(--12px), 16.2px);
    --_units---u-16: clamp(13.6px, var(--16px), 21.6px);
    --_units---u-24: clamp(13.6px, var(--16px), 21.6px);
    --_units---u-32: clamp(20.4px, var(--24px), 32.4px);
    --_units---u-48: clamp(27.2px, var(--32px), 43.2px);
    --_units---u-64: clamp(40.8px, var(--48px), 64.8px);
    --_units---u-96: clamp(54.4px, var(--64px), 86.4px);
    --_units---u-160: clamp(81.6px, var(--96px), 129.6px);
    --_units---u-272: clamp(102px, var(--120px), 162px);
  }
}

/* Service cards: every photo fills the 3:4 arch exactly */
.svc-card_img { position: relative; }
.svc-card_img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Hero: "Weddings & Events" script centred under the title, also when it wraps */
.hero-s_logo_a, .hero-s_logo_a .a2 { text-align: center; }
.hero-s_logo_a { width: 100%; }

/* Services carousel on phones: one full card at a time, arrows centred below */
@media (max-width: 767px) {
  .svc-grid { grid-auto-columns: 100%; column-gap: 24px; }
  .svc-head .svc-nav { display: none; }
  .svc-nav--bottom { display: flex; justify-content: center; gap: 12px; margin-top: 28px; }
}
@media (min-width: 768px) {
  .svc-nav--bottom { display: none !important; }
}

/* Closing banner title: smaller on phones */
@media (max-width: 767px) {
  .cta-s_title .h1 { font-size: clamp(54px, 15vw, 72px); line-height: .95; }
}

/* "Planning / Every Little Detail" on phones & tablets: one centred stack
   (small label on top, three centred lines) instead of the staggered desktop layout */
@media (max-width: 991px) {
  .loc-intro-s_cap { grid-area: 1 / 1 / 2 / -1; align-self: start; justify-self: center; text-align: center; }
  .loc-intro-s_title { grid-area: 1 / 1 / 2 / -1; padding-top: 44px; text-align: center; }
  .loc-intro-s_title .h1 { font-size: clamp(64px, 19vw, 120px); line-height: .92; text-align: center; }
  .loc-intro-s_title_line,
  .loc-intro-s_title_line.is-1,
  .loc-intro-s_title_line.is-2 { margin-left: 0; text-align: center; }
  .loc-intro-s_cap .c1 { font-size: 14px; letter-spacing: .5em; margin-right: -.5em; }
}

/* Phones & tablets: no bougainvillea decorations (they left a blank column);
   the "every little detail" photo and text use the full width instead */
@media (max-width: 991px) {
  .flower, .loc-path-w_flower { display: none !important; }
  .loc-intro-s_img { grid-area: 2 / 1 / 3 / -1; }
  .loc-intro-s_desc { grid-area: 3 / 1 / 4 / -1; }
}
/* Services carousel arrows: closer to the card text */
@media (max-width: 767px) {
  .svc-nav--bottom { margin-top: 12px; }
}

/* Mobile menu: never slide under the header (logo / Book a call / Close).
   Start the list below the header bar; the big "MENU" title is redundant there. */
@media (max-width: 991px) {
  .modal.menu .modal_menu { justify-content: flex-start; padding-top: 128px; padding-bottom: 32px; overflow-y: auto; max-height: 100%; }
  .modal.menu .modal_menu_t { display: none; }
}

/* Phones: equal 56px space at the top and bottom of every content section
   (the original spacer blocks at section edges are collapsed) */
@media (max-width: 767px) {
  .tz-edge { display: none !important; }
  .loc-scroll-area, .svc-s, .interior-w, .arch-scroll-area .arch-w, .other-w { padding-top: 56px; padding-bottom: 56px; }
}
@media (max-width: 767px) {
  .interior-w .enquiry-s { padding-top: 0; }
  .benefits-intro-w { padding-bottom: 41px; padding-top: 0; }
  .other-w { padding-bottom: 49px; }
}
/* Space under the curved "Why Taamzaam" ring grows with the ring (it scales with screen width) */
@media (max-width: 991px) { .benefits-intro-w .u-272.b-mob { height: 30vw; } }
@media (min-width: 880px) and (max-width: 991px) { .benefits-intro-w .u-272.b-mob { height: 40vw; } }
/* Mobile menu: keep it scrollable on short screens but hide the scrollbar line */
.modal.menu .modal_menu { scrollbar-width: none; }
.modal.menu .modal_menu::-webkit-scrollbar { display: none; }
