/* ==========================================================================
   Sundar Marriage Services (Sundar Events) — Home page
   Loads after style.css and reuses its tokens, buttons and heading kit;
   everything here is prefixed .hm-
   ========================================================================== */

.hm-defs{position:absolute;width:0;height:0;overflow:hidden;}

/* Playfair's old-style figures read "01" as "o1" — use lining numbers across the page */
.hm-hero,.hm-svc,.hm-about,.hm-gallery,.hm-voices,.hm-journal,.hm-cta{font-variant-numeric:lining-nums;}

/* doubled class so it outranks style.css's centred ".eyebrow--gold.eyebrow" */
.eyebrow.hm-eyebrow{justify-content:flex-start;}
/* the dash's end ticks hang 11px outside it, so give them room on both sides */
.hm-eyebrow .dash,.hm-voices .eyebrow .dash{margin-inline:11px;}

/* ---------- shared split heading (title left, note + link right) ---------- */
.hm-head{
  display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;
  gap:18px 60px;margin-bottom:44px;
}
.hm-head > div:first-child{max-width:720px;}
.hm-title,.hm-about__title,.hm-cta__title,.hm-stage__name{text-wrap:balance;}
.hm-title{
  font-size:clamp(30px,3.3vw,48px);font-weight:800;line-height:1.14;letter-spacing:-.4px;
}
.hm-title em{
  font-style:normal;
  background:linear-gradient(92deg,var(--maroon),var(--pink));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hm-head__aside{max-width:420px;font-size:15px;line-height:1.8;color:#6B6870;}
.hm-link{
  display:inline-flex;align-items:center;gap:9px;margin-top:10px;
  font-weight:600;color:var(--maroon);
  border-bottom:1.5px solid rgba(142,16,67,.25);padding-bottom:2px;
  transition:gap .35s var(--ease), border-color .35s var(--ease);
}
.hm-link i{font-size:12px;}
.hm-link:hover{gap:14px;border-color:var(--maroon);}

/* ---------- the cusped (jharokha) arch window, used in the hero and about ---------- */
.hm-arch{position:relative;margin:0;filter:drop-shadow(0 22px 34px rgba(12,2,8,.45));}
.hm-arch__win{
  position:relative;overflow:hidden;aspect-ratio:var(--ar,3/5);
  clip-path:url(#hmArch);background:#4A1026;
}
.hm-arch__win img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.hm-arch:hover .hm-arch__win img{transform:scale(1.07);}
.hm-arch__frame{
  position:absolute;left:-10px;top:-10px;z-index:-1;
  width:calc(100% + 20px);height:calc(100% + 20px);overflow:visible;pointer-events:none;
}
.hm-arch__frame path{
  fill:none;stroke:var(--gold-400);stroke-width:1.4;opacity:.85;
  vector-effect:non-scaling-stroke;
}

/* ==========================================================================
   HERO
   ========================================================================== */
.hm-hero{
  position:relative;overflow:hidden;isolation:isolate;
  background:#2A0A16;color:#fff;
  padding-block:clamp(96px,8.4vw,128px) clamp(104px,9vw,140px);
}
.hm-hero__bg{position:absolute;inset:0;z-index:-3;overflow:hidden;}
.hm-hero__bg img{
  width:100%;height:100%;object-fit:cover;object-position:70% center;
  filter:blur(4px) saturate(1.15);opacity:.42;transform:scale(1.08);
}
.hm-hero__shade{
  position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(ellipse 48% 58% at 76% 56%,rgba(240,206,126,.2),transparent 70%),
    radial-gradient(ellipse 42% 60% at 6% 20%,rgba(210,28,114,.24),transparent 70%),
    linear-gradient(100deg,rgba(34,6,16,.97) 0%,rgba(44,8,21,.9) 44%,rgba(52,10,26,.7) 100%);
}
/* faint jaali lattice, fading out towards the edges */
.hm-hero__jaali{
  position:absolute;inset:0;z-index:-1;opacity:.1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23F0CE7E' stroke-width='1'%3E%3Cpath d='M32 6c6 12 12 20 26 26-14 6-20 14-26 26-6-12-12-20-26-26C20 26 26 18 32 6z'/%3E%3Ccircle cx='32' cy='32' r='5'/%3E%3Ccircle cx='0' cy='0' r='5'/%3E%3Ccircle cx='64' cy='0' r='5'/%3E%3Ccircle cx='0' cy='64' r='5'/%3E%3Ccircle cx='64' cy='64' r='5'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 70% 70% at 30% 50%,#000 10%,transparent 75%);
  mask-image:radial-gradient(ellipse 70% 70% at 30% 50%,#000 10%,transparent 75%);
}

/* fairy lights strung across the top */
.hm-lights{position:absolute;left:0;right:0;top:0;height:100px;z-index:1;pointer-events:none;}
.hm-lights svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.hm-lights path{fill:none;stroke:rgba(247,224,166,.32);stroke-width:1.2;vector-effect:non-scaling-stroke;}
.hm-bulb{
  --c:#FFE6A6;--g:rgba(255,206,110,.7);
  position:absolute;left:var(--x);top:var(--y);
  width:8px;height:11px;margin:1px 0 0 -4px;
  border-radius:50% 50% 50% 50%/40% 40% 60% 60%;
  background:var(--c);
  box-shadow:0 0 6px 1px var(--g),0 0 18px 5px var(--g);
  animation:hm-twinkle 2.8s ease-in-out var(--d) infinite;
}
.hm-bulb::before{
  content:"";position:absolute;left:50%;top:-3px;width:4px;height:4px;margin-left:-2px;
  border-radius:1px;background:#8C6A3A;
}
.hm-bulb:nth-child(3n+2){--c:#FFC3DC;--g:rgba(255,120,180,.6);}
.hm-bulb:nth-child(3n+3){--c:#FFF6E4;--g:rgba(255,240,210,.65);}
@keyframes hm-twinkle{
  0%,100%{opacity:1;}
  50%{opacity:.35;box-shadow:0 0 3px 0 var(--g);}
}

.hm-hero__grid{
  position:relative;z-index:2;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  gap:clamp(34px,5vw,84px);align-items:center;
}

.hm-hero__mantra{
  font-family:var(--ff-deva);font-weight:600;letter-spacing:2px;
  font-size:clamp(15px,1.4vw,19px);color:var(--gold-300);
}
.hm-hero__eyebrow{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px 11px;margin-top:10px;
  font-size:12.5px;font-weight:600;letter-spacing:2.8px;text-transform:uppercase;color:#F1DDE3;
}
.hm-hero__eyebrow i{font-size:6px;color:var(--gold-400);}
/* when the copy column can't hold the eyebrow on one line, the middle diamond becomes a line break,
   giving two even lines instead of one with a diamond dangling at its end */
.hm-hero__copy{container:hm-copy / inline-size;}
@container hm-copy (max-width:470px){
  .hm-hero__eyebrow{row-gap:3px;} /* the break sits between two gaps */
  .hm-hero__eyebrow i:nth-of-type(2){flex-basis:100%;height:0;visibility:hidden;}
}

.hm-hero__title{
  margin-top:16px;color:#fff;
  font-size:clamp(44px,5.3vw,82px);font-weight:900;line-height:1.02;letter-spacing:-1px;
  text-shadow:0 8px 30px rgba(0,0,0,.35);
}
.hm-line{display:block;}
.hm-line--script{position:relative;display:inline-block;margin-top:.08em;padding-right:.18em;}
.hm-script{
  font-family:var(--ff-script);font-weight:700;font-size:1.1em;letter-spacing:0;line-height:1.08;
  background:linear-gradient(92deg,var(--gold-200),var(--gold-400) 50%,var(--gold-600));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:none;
}
.hm-swash{position:absolute;left:4%;bottom:-.1em;width:96%;height:.3em;overflow:visible;}
.hm-swash path{
  fill:none;stroke:var(--gold-400);stroke-width:3;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:hm-draw 1.3s var(--ease) 1.2s forwards;
}
@keyframes hm-draw{to{stroke-dashoffset:0;}}

.hm-hero__text{margin-top:22px;max-width:540px;font-size:16px;line-height:1.85;color:#EBDDE2;}

.hm-hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;margin-top:32px;}
.hm-scroll{display:inline-flex;align-items:center;gap:12px;font-size:14.5px;font-weight:600;color:#fff;}
.hm-scroll__ic{
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  border:1.5px solid rgba(247,224,166,.55);color:var(--gold-300);
  transition:background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.hm-scroll__ic i{animation:hm-bob 2.2s ease-in-out infinite;}
.hm-scroll:hover .hm-scroll__ic{background:var(--gold-300);border-color:var(--gold-300);color:var(--maroon-900);}
@keyframes hm-bob{0%,100%{transform:translateY(-3px);}50%{transform:translateY(4px);}}

.hm-trust{
  display:flex;align-items:center;gap:16px;
  max-width:540px;margin-top:38px;padding-top:26px;
  border-top:1px solid rgba(247,224,166,.16);
}
.hm-faces{display:flex;flex:0 0 auto;}
.hm-faces > span{
  width:46px;height:46px;border-radius:50%;overflow:hidden;
  border:2px solid #3A0D1E;box-shadow:0 0 0 1.5px var(--gold-400);
}
.hm-faces > span + span{margin-left:-13px;}
.hm-faces img{width:100%;height:100%;object-fit:cover;transform:scale(1.24);}
.hm-trust__text{display:flex;flex-direction:column;gap:2px;font-size:13.5px;line-height:1.4;color:#E6D2D8;}
.hm-trust__text b{font-size:16px;font-weight:700;color:#fff;}

/* the palace facade: three arched windows */
.hm-palace{
  position:relative;
  display:grid;grid-template-columns:1fr 1.32fr 1fr;align-items:end;
  gap:clamp(12px,1.6vw,24px);padding:24px 14px 30px;
  --px:0;--py:0;
}
.hm-palace::before{
  content:"";position:absolute;left:-8%;right:-8%;bottom:-6%;height:60%;z-index:-1;
  background:radial-gradient(ellipse 50% 60% at 50% 100%,rgba(240,206,126,.34),transparent 70%);
}
.hm-arch--main{--ar:3/5.1;translate:calc(var(--px) * 6px) calc(var(--py) * 5px);}
.hm-arch--side{--ar:3/4.4;}
.hm-arch--l{translate:calc(var(--px) * -12px) calc(var(--py) * -9px);}
.hm-arch--r{translate:calc(var(--px) * -12px) calc(var(--py) * -9px);}
.hm-arch--side .hm-arch__frame path{opacity:.55;}

.hm-palace__sill{
  position:absolute;left:0;right:0;bottom:6px;
  display:flex;align-items:center;gap:10px;color:var(--gold-400);
}
.hm-palace__sill::before,.hm-palace__sill::after{
  content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-400),transparent);
}
.hm-palace__sill i{font-size:8px;}

.hm-float{
  position:absolute;z-index:4;
  display:flex;align-items:center;gap:12px;
  padding:9px 20px 9px 9px;border-radius:999px;
  background:rgba(255,249,242,.95);color:var(--ink);
  box-shadow:0 18px 40px rgba(20,2,10,.42);
  animation:hm-float 6s ease-in-out infinite;
}
.hm-float > span:last-child{display:flex;flex-direction:column;line-height:1.2;}
.hm-float__ic{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:16px;
  background:linear-gradient(145deg,var(--maroon-600),var(--maroon-900));color:var(--gold-200);
}
.hm-float b{font-family:var(--ff-serif);font-size:19px;font-weight:800;color:var(--maroon-900);}
.hm-float small{font-size:12px;color:#6B6870;}
.hm-float--a{left:-5%;bottom:5%;}
.hm-float--b{right:-3%;top:10%;animation-delay:-3s;}
@keyframes hm-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

/* ==========================================================================
   SERVICE RIBBONS
   ========================================================================== */
.hm-sash{
  position:relative;z-index:5;overflow:hidden;pointer-events:none;
  margin-block:-64px -46px;padding-block:26px;
}
.hm-sash__band{display:flex;width:112%;margin-left:-6%;overflow:hidden;}
.hm-sash__band--gold{
  position:relative;z-index:1;transform:rotate(1.8deg);
  padding-block:11px;color:var(--maroon-900);
  background:linear-gradient(90deg,var(--gold-400),var(--gold-200) 50%,var(--gold-300));
}
.hm-sash__band--maroon{
  position:relative;z-index:2;margin-top:-28px;transform:rotate(-2deg);
  padding-block:14px;color:#fff;
  background:linear-gradient(90deg,var(--maroon-900),var(--maroon) 50%,var(--maroon-800));
  box-shadow:0 16px 34px rgba(60,8,26,.3);
}
.hm-sash__track{
  flex-shrink:0;min-width:100%;
  display:flex;align-items:center;
  animation:hm-marquee 90s linear infinite;
}
.hm-sash__band--gold .hm-sash__track{animation-direction:reverse;animation-duration:110s;}
@keyframes hm-marquee{to{transform:translateX(-100%);}}
.hm-sash__item{
  display:inline-flex;align-items:center;white-space:nowrap;
  font-family:var(--ff-serif);font-style:italic;font-weight:700;
  font-size:clamp(17px,1.8vw,25px);line-height:1.2;
}
.hm-sash__item::after{content:"\2726";margin-inline:24px;font-style:normal;font-size:.62em;color:var(--gold-300);}
.hm-sash__band--gold .hm-sash__item{font-size:clamp(14px,1.4vw,19px);}
.hm-sash__band--gold .hm-sash__item::after{color:var(--maroon);}

/* ==========================================================================
   SERVICES — index list with a live preview
   ========================================================================== */
.hm-svc{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--cream-2) 0%,#FBF3EC 100%);
  padding-block:120px 96px;
}
.hm-svc__leaf{opacity:.55;}
.hm-svc .container{position:relative;z-index:2;}
.hm-svc__grid{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(30px,4vw,64px);align-items:start;
}

.hm-stage{
  position:sticky;top:118px;isolation:isolate;overflow:hidden;
  min-height:580px;display:flex;align-items:flex-end;
  border-radius:28px;background:#3E0B1D;color:#fff;box-shadow:var(--shadow-lg);
}
.hm-stage__media{position:absolute;inset:0;z-index:-1;}
.hm-stage__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.08);
  transition:opacity .7s var(--ease), transform 1.6s var(--ease);
}
.hm-stage__img.is-on{opacity:1;transform:scale(1);}
.hm-stage__veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(40,6,18,.06) 18%,rgba(40,6,18,.5) 52%,rgba(32,5,14,.95) 100%);
}
.hm-stage__no{
  position:absolute;top:22px;left:24px;
  padding:6px 16px;border-radius:999px;font-size:13px;letter-spacing:1px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(8px);
}
.hm-stage__no b{font-family:var(--ff-serif);font-size:16px;color:var(--gold-200);}
.hm-stage__body{width:100%;padding:34px clamp(24px,3vw,42px) 36px;}
.hm-stage__ic{
  width:56px;height:56px;border-radius:18px;margin-bottom:16px;
  display:grid;place-items:center;font-size:21px;
  background:linear-gradient(145deg,var(--gold-200),var(--gold-400));color:var(--maroon-900);
  box-shadow:0 10px 24px rgba(0,0,0,.3);
}
.hm-stage__name{color:#fff;font-size:clamp(30px,3vw,44px);font-weight:800;}
.hm-stage__tag{font-family:var(--ff-script);font-weight:700;font-size:25px;line-height:1.2;color:var(--gold-300);}
.hm-stage__tag:empty{display:none;}
.hm-stage__desc{margin-top:10px;max-width:470px;font-size:15px;line-height:1.75;color:#F0E2E6;}
.hm-stage__actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px;}
.hm-stage__enq{
  display:inline-flex;align-items:center;gap:9px;
  padding:13px 24px;border-radius:999px;font-size:14px;font-weight:600;color:#fff;
  border:1.5px solid rgba(255,255,255,.6);background:rgba(255,255,255,.06);
  transition:background .35s var(--ease), border-color .35s var(--ease);
}
.hm-stage__enq:hover{background:rgba(255,255,255,.18);border-color:#fff;}
.hm-stage.is-swap .hm-stage__body > *{animation:hm-rise .6s var(--ease) both;}
.hm-stage.is-swap .hm-stage__body > *:nth-child(2){animation-delay:.04s;}
.hm-stage.is-swap .hm-stage__body > *:nth-child(3){animation-delay:.08s;}
.hm-stage.is-swap .hm-stage__body > *:nth-child(4){animation-delay:.12s;}
.hm-stage.is-swap .hm-stage__body > *:nth-child(5){animation-delay:.16s;}
@keyframes hm-rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

.hm-idx{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px;
}
.hm-idx li{border-bottom:1px solid #EEDFD2;}
.hm-idx__item{
  position:relative;display:flex;align-items:center;gap:13px;
  padding:12px 4px;color:var(--ink);
  transition:color .35s var(--ease), padding .35s var(--ease);
}
.hm-idx__item::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,var(--gold-400),var(--maroon),var(--pink));
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.hm-idx__thumb{display:none;}
.hm-idx__no{min-width:22px;font-family:var(--ff-serif);font-size:13px;font-weight:700;color:var(--gold-600);}
.hm-idx__ic{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;font-size:14px;color:var(--maroon);
  background:radial-gradient(circle at 30% 30%,#FFF8EE,#F8E4C8);
  box-shadow:inset 0 0 0 1px rgba(201,135,60,.4);
  transition:background .4s var(--ease), color .4s var(--ease), transform .45s var(--ease);
}
.hm-idx__name{flex:1;min-width:0;font-size:15.5px;font-weight:600;line-height:1.3;}
.hm-idx__name small{display:block;font-size:12px;font-weight:500;color:#8A8690;}
.hm-idx__go{font-size:12px;color:var(--maroon);opacity:0;transform:translateX(-8px);transition:opacity .35s var(--ease), transform .35s var(--ease);}

.hm-idx__item:hover,.hm-idx__item:focus-visible,.hm-idx__item.is-current{color:var(--maroon);padding-left:10px;}
.hm-idx__item:hover::after,.hm-idx__item:focus-visible::after,.hm-idx__item.is-current::after{transform:scaleX(1);}
.hm-idx__item:hover .hm-idx__ic,.hm-idx__item:focus-visible .hm-idx__ic,.hm-idx__item.is-current .hm-idx__ic{
  color:var(--gold-200);transform:rotate(-10deg);
  background:linear-gradient(145deg,var(--maroon-600),var(--maroon-900));
}
.hm-idx__item:hover .hm-idx__go,.hm-idx__item:focus-visible .hm-idx__go,.hm-idx__item.is-current .hm-idx__go{opacity:1;transform:none;}
.hm-idx__item:focus-visible{outline:none;background:rgba(227,177,92,.12);}

.hm-idx-more{display:none;}

.hm-custom{
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin-top:28px;padding:20px 22px;border-radius:20px;
  background:linear-gradient(120deg,#FFF6EC,#FBE6D6);border:1px dashed rgba(201,135,60,.55);
}
.hm-custom__ic{
  flex:0 0 auto;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:19px;
  background:linear-gradient(145deg,var(--gold-200),var(--gold-400));color:var(--maroon-900);
}
.hm-custom p{flex:1 1 240px;font-size:14.5px;line-height:1.6;color:#57545C;}
.hm-custom b{display:block;font-family:var(--ff-serif);font-size:18px;color:var(--ink);}

/* ==========================================================================
   ABOUT — "Namaste & welcome"
   ========================================================================== */
.hm-about{
  position:relative;overflow:hidden;isolation:isolate;color:#fff;
  background:
    radial-gradient(circle at 86% 8%,rgba(210,28,114,.26),transparent 44%),
    radial-gradient(circle at 4% 92%,rgba(227,177,92,.16),transparent 40%),
    linear-gradient(160deg,#4A0D22 0%,#3A0A1B 55%,#2A0714 100%);
  padding-top:104px;
}
.hm-about__mark{
  position:absolute;right:-1%;top:34px;z-index:-1;
  font-family:var(--ff-deva);font-weight:700;line-height:1;white-space:nowrap;
  font-size:clamp(130px,18vw,290px);
  color:rgba(240,206,126,.06);
  pointer-events:none;user-select:none;
}
.hm-about__grid{
  display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(40px,6vw,100px);align-items:center;
}

.hm-about__visual{position:relative;width:100%;max-width:520px;padding-bottom:40px;}
.hm-arch--about{width:80%;--ar:4/5.7;}
.hm-arch--about .hm-arch__win img{object-position:center 25%;}
.hm-about__oval{
  position:absolute;right:0;bottom:0;margin:0;overflow:hidden;
  width:44%;aspect-ratio:3/4;border-radius:999px;
  border:6px solid #3A0A1B;box-shadow:0 0 0 1.5px var(--gold-400),0 24px 50px rgba(0,0,0,.45);
}
.hm-about__oval img{width:100%;height:100%;object-fit:cover;object-position:32% center;transition:transform 1s var(--ease);}
.hm-about__oval:hover img{transform:scale(1.08);}
.hm-medal{
  position:absolute;left:64%;top:5%;
  width:122px;height:122px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(145deg,var(--gold-200),var(--gold-400));color:var(--maroon-900);
  box-shadow:0 18px 40px rgba(0,0,0,.4);
}
.hm-medal::before{
  content:"";position:absolute;inset:6px;border-radius:50%;
  border:1.5px dashed rgba(92,10,40,.4);animation:hm-spin 30s linear infinite;
}
@keyframes hm-spin{to{rotate:360deg;}}
.hm-medal .stat__num{font-family:var(--ff-serif);font-size:32px;font-weight:800;line-height:1;color:var(--maroon-900);}
.hm-medal small{max-width:84px;margin-top:4px;font-size:10px;font-weight:600;line-height:1.3;letter-spacing:1.2px;text-transform:uppercase;}

.hm-about .hm-eyebrow{color:var(--gold-300);}
.hm-about__title{
  margin:6px 0 18px;color:#fff;
  font-size:clamp(32px,3.5vw,52px);font-weight:800;line-height:1.14;
}
.hm-about__title em{font-style:normal;color:var(--gold-300);}
.hm-about__title b{
  font-weight:800;
  background:linear-gradient(92deg,var(--pink-2),#F59AC6);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hm-about__text{max-width:600px;font-size:16px;line-height:1.9;color:#E9D9DE;}

.hm-promise{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:28px 0 34px;}
.hm-promise li{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;border-radius:14px;
  font-size:14.5px;font-weight:500;line-height:1.4;color:#F6E9ED;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,224,166,.16);
  transition:background .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease);
}
.hm-promise li:hover{background:rgba(255,255,255,.1);border-color:rgba(247,224,166,.45);transform:translateY(-3px);}
.hm-promise__ic{
  flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:14px;
  background:linear-gradient(145deg,var(--gold-200),var(--gold-400));color:var(--maroon-900);
}

.hm-about__actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 28px;}
.hm-call{display:inline-flex;align-items:center;gap:12px;color:#fff;}
.hm-call__ic{
  position:relative;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:17px;
  border:1.5px solid rgba(247,224,166,.55);color:var(--gold-300);
  transition:transform .4s var(--ease);
}
.hm-call__ic::after{
  content:"";position:absolute;inset:-5px;border-radius:50%;
  border:1.5px solid rgba(247,224,166,.45);animation:ripple 2.4s ease-out infinite;
}
.hm-call:hover .hm-call__ic{transform:rotate(-12deg) scale(1.06);}
.hm-call__text{display:flex;flex-direction:column;font-size:16px;font-weight:700;line-height:1.25;}
.hm-call__text small{font-size:12px;font-weight:500;color:#D9C2CA;}

.hm-counters{
  list-style:none;margin:92px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid rgba(247,224,166,.18);
}
.hm-counter{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 12px 48px;}
.hm-counter + .hm-counter::before{
  content:"";position:absolute;left:0;top:28%;bottom:28%;width:1px;
  background:linear-gradient(180deg,transparent,rgba(247,224,166,.38),transparent);
}
.hm-counter__ic{margin-bottom:12px;font-size:20px;color:var(--gold-400);}
.hm-counter .stat__num{
  font-family:var(--ff-serif);font-size:clamp(40px,4.2vw,60px);font-weight:800;line-height:1;letter-spacing:0;
  background:linear-gradient(180deg,#fff 25%,var(--gold-200));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hm-counter__label{margin-top:10px;font-size:12.5px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;color:#E2C9D1;}

/* ==========================================================================
   GALLERY — drifting photo columns
   ========================================================================== */
.hm-gallery{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#FDF7F0,#FBEFE4);
  padding-block:104px;
}
.hm-gallery__grid{
  display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:clamp(30px,5vw,84px);align-items:start;
}
/* static columns run long, so the intro stays in view beside them... */
.hm-gallery__intro{position:sticky;top:140px;}
/* ...but inside the fixed parallax window it simply sits centred */
.hm-gallery__grid:has(.hm-cols.is-parallax){align-items:center;}
.hm-gallery__grid:has(.hm-cols.is-parallax) .hm-gallery__intro{position:static;}
.hm-gallery__text{margin-top:16px;max-width:440px;font-size:15.5px;line-height:1.85;color:#6B6870;}
.hm-gallery__actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:30px;}
.hm-insta{
  display:inline-flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;color:var(--ink);
  transition:color .3s var(--ease);
}
.hm-insta i{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:15px;color:#fff;
  background:radial-gradient(circle at 30% 107%,#FDD75B 0%,#FB8A3C 25%,#E4257F 50%,#9537B0 75%,#515BD4 100%);
}
.hm-insta:hover{color:var(--maroon);}

.hm-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;}
.hm-col{display:flex;flex-direction:column;gap:16px;}
.hm-col--1{padding-top:64px;}
/* when home.js drives the parallax, the columns scroll inside a fixed window */
.hm-cols.is-parallax{
  height:clamp(620px,58vw,820px);overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);
}
.hm-cols.is-parallax .hm-col{will-change:transform;}

.hm-tile{
  position:relative;display:block;width:100%;padding:0;overflow:hidden;
  border-radius:20px;box-shadow:var(--shadow-md);cursor:zoom-in;
}
.hm-tile img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1s var(--ease), filter .5s var(--ease);}
.hm-tile:nth-child(3n+2) img{aspect-ratio:1/1;}
.hm-tile:nth-child(3n) img{aspect-ratio:3/4;}
.hm-tile__cap{
  position:absolute;left:12px;right:12px;bottom:12px;
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:12px;text-align:left;
  font-size:13px;line-height:1.35;color:#fff;
  background:rgba(60,10,28,.62);backdrop-filter:blur(8px);
  opacity:0;transform:translateY(12px);
  transition:opacity .45s var(--ease), transform .45s var(--ease);
}
.hm-tile__cap i{flex:0 0 auto;font-size:11px;color:var(--gold-300);}
.hm-tile:hover img,.hm-tile:focus-visible img{transform:scale(1.08);filter:saturate(1.1);}
.hm-tile:hover .hm-tile__cap,.hm-tile:focus-visible .hm-tile__cap{opacity:1;transform:none;}
.hm-tile:focus-visible{outline:3px solid var(--gold-400);outline-offset:3px;}

/* ==========================================================================
   TESTIMONIALS — one voice at a time
   ========================================================================== */
.hm-voices{position:relative;overflow:hidden;background:var(--cream-2);padding-block:100px 104px;}
.hm-voices .container{position:relative;z-index:2;}
.hm-voices .sec-head{margin-bottom:0;}
.hm-voices__floral{position:absolute;right:0;bottom:0;width:clamp(140px,16vw,250px);opacity:.9;pointer-events:none;}

.hm-voices__stage{
  position:relative;max-width:1080px;margin:44px auto 0;
  padding:clamp(30px,4vw,56px) clamp(24px,4.4vw,64px) clamp(24px,3vw,34px);
  border-radius:32px;background:#fff;border:1px solid #F3E6DA;box-shadow:var(--shadow-lg);
}
.hm-voices__stage::before{
  content:"";position:absolute;inset:12px;border-radius:24px;pointer-events:none;
  border:1px solid rgba(201,135,60,.3);
}
.hm-voices__mark{
  position:absolute;right:clamp(20px,4vw,56px);top:-20px;
  font-family:var(--ff-serif);font-size:clamp(150px,16vw,230px);font-weight:900;line-height:1;
  color:rgba(201,135,60,.16);pointer-events:none;
}

.hm-voice{
  position:relative;margin:0;
  display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:1fr auto;
  column-gap:clamp(24px,4vw,56px);align-items:center;
}
.hm-voices__panels{display:grid;}
.hm-voices__panels > .hm-voice{grid-area:1 / 1;}
/* inactive quotes still reserve their height; visibility keeps them out of view and the accessibility tree */
.hm-voice[hidden]{display:grid;visibility:hidden;}
.hm-voice.is-active{animation:hm-voice-in .7s var(--ease) both;}
@keyframes hm-voice-in{from{opacity:0;transform:translateX(24px);}to{opacity:1;transform:none;}}
.hm-voice__photo{
  grid-row:1 / span 2;position:relative;
  width:clamp(130px,15vw,180px);aspect-ratio:1;padding:8px;
}
.hm-voice__photo::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:1.5px dashed var(--gold-400);animation:hm-spin 40s linear infinite;
}
.hm-voice__photo > span{display:block;width:100%;height:100%;border-radius:50%;overflow:hidden;box-shadow:0 14px 34px rgba(92,10,40,.22);}
.hm-voice__photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.2);}
.hm-voice__photo > .hm-voice__mono{
  display:grid;place-items:center;
  font-family:var(--ff-serif);font-size:clamp(34px,4vw,48px);font-weight:800;color:var(--gold-200);
  background:linear-gradient(145deg,var(--maroon-600),var(--maroon-900));
}
.hm-voice__text{margin:0;align-self:end;}
.hm-voice__text p{
  font-family:var(--ff-serif);font-style:italic;font-weight:700;
  font-size:clamp(21px,2.3vw,31px);line-height:1.45;color:var(--ink);
}
.hm-voice__meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-top:18px;align-self:start;}
.hm-voice__meta .stars{font-size:14px;}
.hm-voice__name{font-size:15px;font-weight:600;color:var(--maroon);}

.hm-vtabs{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;
  margin-top:34px;padding-top:22px;border-top:1px dashed #EEDCCD;
}
.hm-vtab{
  position:relative;display:flex;align-items:center;gap:10px;
  padding:8px 10px 16px;border-radius:14px;text-align:left;
  transition:background .3s var(--ease);
}
.hm-vtab:hover{background:var(--cream);}
.hm-vtab:focus-visible{outline:2px solid var(--gold-400);outline-offset:1px;}
.hm-vtab__mono{
  flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--maroon);background:#FBEFE6;
  transition:background .35s var(--ease), color .35s var(--ease);
}
.hm-vtab__name{font-size:13px;font-weight:600;line-height:1.3;color:#7A7680;transition:color .35s var(--ease);}
.hm-vtab__bar{position:absolute;left:10px;right:10px;bottom:5px;height:3px;border-radius:3px;overflow:hidden;background:#F3E6DA;}
.hm-vtab__bar i{
  display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--gold-400),var(--maroon));
}
.hm-vtab[aria-selected="true"] .hm-vtab__mono{background:linear-gradient(145deg,var(--maroon-600),var(--maroon-900));color:var(--gold-200);}
.hm-vtab[aria-selected="true"] .hm-vtab__name{color:var(--ink);}
.hm-vtab[aria-selected="true"] .hm-vtab__bar i{animation:hm-progress 7s linear forwards;}
.hm-voices__stage.is-paused .hm-vtab__bar i,
.hm-voices__stage.is-offscreen .hm-vtab__bar i{animation-play-state:paused;}
@keyframes hm-progress{to{transform:scaleX(1);}}

/* ==========================================================================
   JOURNAL
   ========================================================================== */
/* clipped so AOS's off-screen "fade-left" start can't widen the page */
.hm-journal{overflow:hidden;background:linear-gradient(180deg,#FBF3EC,var(--cream-2));padding-block:96px 104px;}
.hm-journal__grid{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-auto-rows:auto;gap:24px;
}
.hm-post{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  border-radius:22px;background:#fff;border:1px solid #F1E4D8;box-shadow:var(--shadow-sm);
  transition:translate .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
/* "translate", not "transform", so AOS's fade-in transform doesn't cancel the lift */
.hm-post:hover{translate:0 -6px;box-shadow:var(--shadow-md);border-color:rgba(201,135,60,.45);}
.hm-post--lead{grid-row:span 2;}
.hm-post:not(.hm-post--lead){flex-direction:row;}

.hm-post__media{position:relative;overflow:hidden;}
.hm-post--lead .hm-post__media{aspect-ratio:16/9;}
.hm-post:not(.hm-post--lead) .hm-post__media{flex:0 0 40%;}
.hm-post__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.hm-post:hover .hm-post__media img{transform:scale(1.07);}
.hm-post__date{
  position:absolute;left:14px;top:14px;
  display:flex;flex-direction:column;align-items:center;min-width:52px;padding:6px 8px;border-radius:12px;
  font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;line-height:1.1;color:#F6DCE6;
  background:linear-gradient(145deg,var(--maroon-600),var(--maroon-900));box-shadow:0 8px 18px rgba(60,8,26,.35);
}
.hm-post__date b{font-family:var(--ff-serif);font-size:21px;font-weight:800;letter-spacing:0;color:var(--gold-200);}

.hm-post__body{flex:1;display:flex;flex-direction:column;gap:10px;padding:22px 24px;}
.hm-post--lead .hm-post__body{padding:28px 30px 30px;}
.hm-post__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:#8A8690;}
.hm-post__meta i{margin-right:4px;}
.hm-post__cat{font-weight:600;color:var(--maroon);}
.hm-post__title{font-size:18.5px;line-height:1.35;}
.hm-post--lead .hm-post__title{font-size:clamp(22px,2.1vw,29px);}
.hm-post__title a{transition:color .3s var(--ease);}
.hm-post__title a::after{content:"";position:absolute;inset:0;z-index:1;}
.hm-post:hover .hm-post__title a{color:var(--maroon);}
.hm-post__title a:focus-visible{outline:none;}
.hm-post:has(.hm-post__title a:focus-visible){outline:3px solid var(--gold-400);outline-offset:3px;}
.hm-post__excerpt{
  font-size:14.5px;line-height:1.7;color:#6B6870;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
}
.hm-post:not(.hm-post--lead) .hm-post__excerpt{-webkit-line-clamp:3;}
.hm-post--lead .hm-post__excerpt{-webkit-line-clamp:3;font-size:15px;}
.hm-post__more{
  margin-top:auto;padding-top:4px;display:inline-flex;align-items:center;gap:8px;
  font-size:14px;font-weight:600;color:var(--maroon);transition:gap .35s var(--ease);
}
.hm-post__more i{font-size:12px;}
.hm-post:hover .hm-post__more{gap:13px;}

/* ==========================================================================
   CTA — "Save the Date" planner
   ========================================================================== */
.hm-cta{position:relative;overflow:hidden;isolation:isolate;background:#1E0A1A;color:#fff;padding-block:104px;}
.hm-cta__bg{position:absolute;inset:0;z-index:-2;overflow:hidden;}
.hm-cta__bg img{width:100%;height:100%;object-fit:cover;will-change:transform;}
.hm-cta__shade{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(90deg,rgba(26,8,22,.93) 0%,rgba(30,9,24,.8) 45%,rgba(30,9,24,.5) 100%),
    linear-gradient(180deg,rgba(20,6,16,.4),transparent 30%);
}
.hm-cta__grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);
  gap:clamp(34px,5vw,90px);align-items:center;
}
.hm-cta__mantra{
  font-family:var(--ff-deva);font-weight:600;letter-spacing:1px;
  font-size:clamp(20px,2vw,26px);color:var(--gold-300);text-shadow:0 3px 16px rgba(0,0,0,.5);
}
.hm-cta__title{
  margin-top:10px;color:#fff;
  font-size:clamp(36px,4.2vw,62px);font-weight:900;line-height:1.08;letter-spacing:-.5px;
}
.hm-cta__title em{
  display:inline-block;font-style:normal;font-family:var(--ff-script);font-weight:700;font-size:1.1em;letter-spacing:0;
  color:var(--gold-300);
}
.hm-cta__text{margin-top:18px;max-width:520px;font-size:16px;line-height:1.8;color:#EADDE2;}

.hm-ways{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;}
.hm-way{
  display:inline-flex;align-items:center;gap:12px;
  padding:8px 22px 8px 8px;border-radius:999px;
  background:rgba(255,255,255,.08);border:1px solid rgba(247,224,166,.3);backdrop-filter:blur(6px);
  transition:background .35s var(--ease), transform .35s var(--ease), border-color .35s var(--ease);
}
.hm-way:hover{background:rgba(255,255,255,.16);border-color:rgba(247,224,166,.6);transform:translateY(-3px);}
.hm-way__ic{
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:16px;
  background:linear-gradient(145deg,var(--gold-200),var(--gold-400));color:var(--maroon-900);
}
.hm-way--wa .hm-way__ic{background:#25D366;color:#fff;font-size:20px;}
.hm-way > span:last-child{display:flex;flex-direction:column;line-height:1.25;}
.hm-way small{font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:#D9C2CA;}
.hm-way b{font-size:15px;font-weight:600;}

.hm-plan{
  position:relative;isolation:isolate;
  padding:clamp(30px,3.2vw,44px);border-radius:26px;color:var(--ink);
  background:
    radial-gradient(circle at 100% 0%,rgba(240,206,126,.35),transparent 40%),
    linear-gradient(160deg,#FFFBF5,#FBEEDF);
  box-shadow:0 34px 80px rgba(0,0,0,.5);
}
.hm-plan::before,.hm-plan::after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:18px;}
.hm-plan::before{inset:10px;border:1.5px solid rgba(201,135,60,.55);}
.hm-plan::after{inset:15px;border:1px solid rgba(201,135,60,.25);border-radius:14px;}
.hm-plan__kicker{font-family:var(--ff-script);font-weight:700;font-size:32px;line-height:1;color:var(--maroon);}
.hm-plan__title{margin-top:6px;font-size:clamp(22px,2vw,28px);font-weight:800;}

.hm-plan__group{display:block;margin:22px 0 0;padding:0;border:0;min-width:0;}
.hm-plan__group legend,.hm-plan__date > span{
  display:block;margin-bottom:10px;padding:0;
  font-size:12.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold-700);
}
.hm-plan__date small{font-weight:500;letter-spacing:.4px;text-transform:none;color:#9A97A0;}
.hm-occ{display:flex;flex-wrap:wrap;gap:8px;}
.hm-occ input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.hm-occ label{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:9px 16px;border-radius:999px;
  font-size:14px;font-weight:600;color:#3E3B44;background:#fff;border:1px solid #EEDCCD;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.hm-occ label i{font-size:12.5px;color:var(--gold-600);transition:color .3s var(--ease);}
.hm-occ label:hover{border-color:var(--gold-400);transform:translateY(-2px);}
.hm-occ input:checked + label{
  color:#fff;border-color:transparent;
  background:linear-gradient(100deg,var(--maroon-800),var(--maroon-600) 60%,var(--pink));
  box-shadow:0 8px 18px rgba(142,16,67,.28);
}
.hm-occ input:checked + label i{color:var(--gold-200);}
.hm-occ input:focus-visible + label{outline:2px solid var(--gold-400);outline-offset:2px;}

.hm-plan__date input{
  width:100%;height:52px;padding:0 16px;border-radius:14px;
  font:inherit;font-size:15px;color:var(--ink);
  background:#fff;border:1px solid #EEDCCD;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.hm-plan__date input:focus{outline:none;border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(227,177,92,.25);}
.hm-plan__go{width:100%;justify-content:center;margin-top:26px;padding:16px 24px;font-size:15px;}
.hm-plan__note{margin-top:12px;text-align:center;font-size:12.5px;color:#8A8690;}
.hm-plan__note i{margin-right:5px;color:var(--maroon);}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1200px){
  .hm-float--a{left:-2%;}
  .hm-float--b{right:0;}
  .hm-idx{column-gap:20px;}
}

/* ---------- small laptops & landscape tablets: still two columns, just tighter ---------- */
@media (max-width:1080px){
  .hm-float{padding:7px 16px 7px 7px;gap:10px;}
  .hm-float__ic{width:38px;height:38px;font-size:14px;}
  .hm-float b{font-size:17px;}
  .hm-float small{font-size:11px;}
  .hm-float--a{left:-1%;bottom:4%;}
  .hm-float--b{right:-1%;top:4%;}

  /* services: the preview panel steps aside and each row carries its own photo */
  .hm-svc__grid{grid-template-columns:1fr;}
  .hm-stage{display:none;}
  .hm-idx{column-gap:16px;row-gap:12px;}
  .hm-idx li{border-bottom:0;}
  .hm-idx__item{
    height:100%;padding:8px 14px 8px 8px;border-radius:16px;
    background:#fff;border:1px solid #F1E2D2;box-shadow:0 6px 16px rgba(92,10,40,.06);
  }
  .hm-idx__item::after{display:none;}
  .hm-idx__item:hover,.hm-idx__item:focus-visible,.hm-idx__item.is-current{padding-left:8px;}
  .hm-idx__item.is-current:not(:hover) .hm-idx__ic{color:var(--maroon);transform:none;background:radial-gradient(circle at 30% 30%,#FFF8EE,#F8E4C8);}
  .hm-idx__item.is-current:not(:hover) .hm-idx__go{opacity:0;}
  .hm-idx__item.is-current:not(:hover){color:var(--ink);}
  .hm-idx__thumb{display:block;flex:0 0 auto;width:64px;height:64px;border-radius:12px;overflow:hidden;}
  .hm-idx__thumb img{width:100%;height:100%;object-fit:cover;}
  .hm-idx__no{display:none;}
  .hm-idx__ic{display:none;}

  /* long lists collapse behind "Show all" (home.js adds the classes; the row count is set per width below) */
  .hm-idx-more{
    align-items:center;justify-content:center;gap:10px;
    margin-top:16px;padding:13px 26px;border-radius:999px;
    font-size:14.5px;font-weight:600;color:var(--maroon);
    background:#fff;border:1.5px solid rgba(142,16,67,.25);
    transition:border-color .3s var(--ease), background .3s var(--ease);
  }
  .hm-idx-more:hover{border-color:var(--maroon);background:#FFF7F1;}
  .hm-idx-more:focus-visible{outline:2px solid var(--gold-400);outline-offset:2px;}
  .hm-idx-more i{font-size:12px;transition:transform .35s var(--ease);}
  .hm-idx-more[aria-expanded="true"] i{transform:rotate(180deg);}
}

@media (min-width:681px) and (max-width:1080px){
  /* two columns of cards: show six rows */
  .hm-idx.is-collapsible-md:not(.is-expanded) li:nth-child(n+13){display:none;}
  .hm-idx.is-collapsible-md + .hm-idx-more{display:flex;width:min(100%,380px);margin-inline:auto;}
}

@media (min-width:901px) and (max-width:1080px){
  /* the promise pills share a narrower column beside the photo */
  .hm-promise{gap:10px;}
  .hm-promise li{gap:10px;padding:10px 12px;font-size:13.5px;}
  .hm-promise__ic{width:32px;height:32px;font-size:12.5px;}
}

/* ---------- portrait tablets: hero, about, gallery and planner stack ---------- */
@media (max-width:900px){
  .hm-hero__grid{grid-template-columns:1fr;}
  .hm-hero__copy{max-width:680px;}
  .hm-palace{width:100%;max-width:640px;margin-inline:auto;}
  .hm-float--a{left:0;bottom:12%;}
  .hm-float--b{right:0;top:2%;}

  .hm-about__grid{grid-template-columns:1fr;}
  .hm-about__visual{margin-inline:auto;max-width:480px;}

  .hm-gallery__grid{grid-template-columns:1fr;}
  .hm-gallery__intro{position:static;max-width:640px;}
  .hm-gallery__actions{flex-direction:row;flex-wrap:wrap;align-items:center;}

  .hm-cta__grid{grid-template-columns:1fr;}
}

/* ---------- journal on tablets: the lead story runs full width, the others pair up below ---------- */
@media (min-width:681px) and (max-width:960px){
  .hm-journal__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hm-post--lead{grid-column:1 / -1;grid-row:auto;flex-direction:row;}
  .hm-post--lead .hm-post__media{flex:0 0 52%;aspect-ratio:auto;min-height:300px;}
  .hm-post:not(.hm-post--lead){flex-direction:column;}
  .hm-post:not(.hm-post--lead) .hm-post__media{flex:none;aspect-ratio:16/10;}
  /* a story left without a partner takes the whole row */
  .hm-post:not(.hm-post--lead):nth-child(even):last-child{grid-column:1 / -1;flex-direction:row;}
  .hm-post:not(.hm-post--lead):nth-child(even):last-child .hm-post__media{flex:0 0 44%;aspect-ratio:auto;}
  .hm-post__body,.hm-post--lead .hm-post__body{padding:24px 26px 26px;}
}

@media (max-width:860px){
  .hm-counters{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:70px;}
  .hm-counter:nth-child(3)::before{display:none;}
  .hm-counter:nth-child(n+3){border-top:1px solid rgba(247,224,166,.12);}
  .hm-voice{grid-template-columns:1fr;grid-template-rows:auto;text-align:center;justify-items:center;}
  .hm-voice__photo{grid-row:auto;margin-bottom:22px;}
  .hm-voice__meta{justify-content:center;}
}

@media (max-width:760px){
  .hm-hero{padding-block:92px 110px;}
  .hm-head{margin-bottom:32px;}
  .hm-svc{padding-block:100px 72px;}
  .hm-about{padding-top:80px;}
  .hm-gallery,.hm-voices,.hm-journal,.hm-cta{padding-block:76px;}
  .hm-cols{gap:10px;}
  .hm-col{gap:10px;}
  .hm-col--1{padding-top:36px;}
  .hm-tile{border-radius:14px;}
  .hm-tile__cap{display:none;}
  .hm-vtabs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-8px;padding-inline:8px;scrollbar-width:none;}
  .hm-vtabs::-webkit-scrollbar{display:none;}
  .hm-vtab{flex:0 0 auto;scroll-snap-align:start;}
}

@media (max-width:680px){
  .hm-idx{grid-template-columns:1fr;}
  /* one column of cards: show eight */
  .hm-idx.is-collapsible:not(.is-expanded) li:nth-child(n+9){display:none;}
  .hm-idx.is-collapsible + .hm-idx-more{display:flex;width:100%;margin-top:14px;}

  .hm-journal__grid{grid-template-columns:1fr;gap:20px;}
  .hm-post--lead{grid-row:auto;}
  .hm-post__body,.hm-post--lead .hm-post__body{padding:22px 24px 24px;}
  .hm-medal{width:100px;height:100px;left:auto;right:4%;}
  .hm-medal .stat__num{font-size:26px;}
  .hm-medal small{font-size:9px;}
}

@media (max-width:560px){
  .hm-hero__title{font-size:clamp(40px,11vw,54px);}
  .hm-hero__eyebrow{letter-spacing:2px;font-size:11.5px;}
  .hm-hero__actions .btn{flex:1 1 100%;justify-content:center;}
  .hm-palace{grid-template-columns:1fr 1.3fr 1fr;gap:8px;padding-inline:6px;}
  .hm-arch__frame{left:-6px;top:-6px;width:calc(100% + 12px);height:calc(100% + 12px);}
  .hm-float--b{display:none;}
  .hm-sash{margin-block:-56px -40px;}
  /* every photo flows into two staggered columns */
  .hm-cols{display:block;columns:2;column-gap:10px;}
  .hm-col{display:contents;}
  .hm-tile{margin-bottom:10px;break-inside:avoid;}
  /* a ninth photo would leave the columns 5 and 4 — it closes the grid across both instead */
  .hm-col--2 > .hm-tile:nth-child(3){column-span:all;margin-bottom:0;}
  .hm-col--2 > .hm-tile:nth-child(3) img{aspect-ratio:16/10;}
  .hm-promise{grid-template-columns:1fr;}
  .hm-about__actions .btn,.hm-gallery__actions .btn,.hm-custom .btn{width:100%;justify-content:center;}
  .hm-counter{padding:30px 8px 34px;}
  .hm-voices__stage{border-radius:24px;}
  .hm-voices__stage::before{inset:8px;border-radius:18px;}
  .hm-voice__text p{font-size:19px;}
  .hm-way{flex:1 1 100%;}
}

@media (max-width:480px){
  .hm-post:not(.hm-post--lead){flex-direction:column;}
  .hm-post:not(.hm-post--lead) .hm-post__media{flex:none;aspect-ratio:16/10;}
}

/* ---------- reduced motion: keep everything still ---------- */
@media (prefers-reduced-motion:reduce){
  .hm-bulb{animation:none;}
  .hm-swash path{stroke-dashoffset:0;animation:none;}
  .hm-sash__band{justify-content:center;}
  .hm-sash__track{animation:none;}
  .hm-sash__track + .hm-sash__track{display:none;}
  .hm-float{animation:none;}
}
