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

/* doubled class so it beats style.css's centred .eyebrow--gold.eyebrow */
.eyebrow.ts-eyebrow{justify-content:flex-start;}
.ts-eyebrow .dash{margin-left:11px;}

@keyframes ts-float{0%,100%{translate:0 0;}50%{translate:0 -10px;}}
@keyframes ts-twinkle{0%,100%{opacity:0;transform:scale(.4);}50%{opacity:1;transform:scale(1);}}
@keyframes ts-grow{from{transform:scaleX(0);}}

/* ---------- shared bits ---------- */
/* .btn and the flex cards set display, which would otherwise beat the hidden attribute */
.ts-hero [hidden],.ts-stories [hidden],.ts-google [hidden],.ts-wall [hidden]{display:none !important;}

.ts-glogo{display:inline-grid;place-items:center;flex:0 0 auto;width:18px;height:18px;}
.ts-glogo svg{display:block;width:100%;height:100%;}
.ts-glogo--lg{width:42px;height:42px;}
.ts-glogo--xl{width:68px;height:68px;}

/* five stars filled to --rating (0–5), partial fills included */
.ts-stars{
  --rating:5;
  display:inline-block;white-space:nowrap;
  font-size:16px;line-height:1;letter-spacing:2px;
  background:linear-gradient(90deg,#F5A623 calc(var(--rating) / 5 * 100%),#E6DACB calc(var(--rating) / 5 * 100%));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ts-stars--sm{font-size:13px;letter-spacing:1.5px;}
.ts-stars--lg{font-size:23px;letter-spacing:3px;}

.ts-avatar{
  --hue:330;
  flex:0 0 auto;width:46px;height:46px;border-radius:50%;overflow:hidden;
  display:grid;place-items:center;
  font-family:var(--ff-sans);font-size:16px;font-weight:700;color:#fff;
  background:hsl(var(--hue) 52% 40%);
  box-shadow:0 0 0 3px #fff,0 6px 14px rgba(92,10,40,.16);
}
.ts-avatar img{width:100%;height:100%;object-fit:cover;}
.ts-avatar--lg{width:88px;height:88px;font-family:var(--ff-serif);font-size:30px;}

[data-clamp]{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}
.is-expanded > [data-clamp],
.is-expanded [data-clamp]{display:block;-webkit-line-clamp:unset;overflow:visible;}
.ts-more{
  display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:8px;
  font-size:13px;font-weight:600;color:var(--maroon);
}
.ts-more:hover,.ts-more:focus-visible{text-decoration:underline;text-underline-offset:3px;}

.ts-more-wrap{display:flex;justify-content:center;margin-top:30px;}
.ts-btn-google .ts-glogo{width:22px;height:22px;padding:3px;border-radius:50%;background:#fff;}
.ts-btn-soft{
  color:var(--maroon);background:#fff;border:1.5px solid rgba(142,16,67,.2);box-shadow:var(--shadow-sm);
}
.ts-btn-soft:hover{border-color:var(--maroon);box-shadow:var(--shadow-md);}

/* scroll reveal — the class is added by testimonials.js, so nothing hides without JS.
   translate (not transform) keeps the cards' hover lift working. */
.ts-js [data-reveal]{
  opacity:0;translate:0 26px;
  transition:opacity .8s var(--ease),translate .8s var(--ease),transform .5s var(--ease),rotate .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.ts-js [data-reveal].is-in{opacity:1;translate:none;}

/* ==========================================================================
   HERO
   ========================================================================== */
.ts-hero{
  position:relative;overflow:hidden;isolation:isolate;
  min-height:clamp(560px,46vw,700px);display:flex;align-items:center;
  background:#2A0C16;
}
/* shamiana-style scalloped bottom edge */
.ts-hero::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:18px;z-index:3;pointer-events:none;
  background-image:radial-gradient(circle at 18px 18px,var(--cream-2) 17px,transparent 18px);
  background-size:36px 18px;background-repeat:repeat-x;
}
.ts-hero__bg{position:absolute;inset:0;z-index:-3;overflow:hidden;}
.ts-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 35%;transform-origin:50% 50%;will-change:transform;}
.ts-hero__shade{
  position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(circle at 78% 46%,rgba(210,28,114,.28),transparent 48%),
    linear-gradient(90deg,rgba(34,6,16,.96) 0%,rgba(40,8,20,.9) 36%,rgba(46,10,24,.66) 62%,rgba(46,10,24,.48) 100%);
}
.ts-hero__sparks{position:absolute;inset:0;z-index:-1;pointer-events:none;}
.ts-hero__sparks i{
  position:absolute;left:var(--x);top:var(--y);width:5px;height:5px;border-radius:50%;
  background:var(--gold-200);box-shadow:0 0 12px 3px rgba(240,206,126,.6);
  opacity:0;animation:ts-twinkle 3.8s ease-in-out var(--d) infinite;
}

.ts-hero__grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(30px,5vw,80px);align-items:center;
  padding-block:80px 126px;
}

.ts-crumbs{
  display:inline-flex;align-items:center;gap:10px;
  padding:7px 18px;border-radius:999px;margin-bottom:18px;
  font-size:13px;color:#F1DDE3;
  background:rgba(255,255,255,.08);border:1px solid rgba(247,224,166,.28);
  backdrop-filter:blur(6px);
}
.ts-crumbs i{font-size:8px;opacity:.6;}
.ts-crumbs a{transition:color .3s var(--ease);}
.ts-crumbs a:hover{color:var(--gold-300);}
.ts-crumbs span{color:var(--gold-300);}

.ts-hero__mantra{
  font-family:var(--ff-deva);font-weight:600;letter-spacing:2px;
  font-size:clamp(17px,1.6vw,21px);color:var(--gold-300);
  text-shadow:0 3px 14px rgba(0,0,0,.5);
}
.ts-hero__title{
  margin-top:4px;
  font-size:clamp(46px,6vw,86px);font-weight:900;line-height:1.02;letter-spacing:-1px;
  background:linear-gradient(180deg,#fff 30%,var(--gold-200) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 8px 26px rgba(0,0,0,.45));
}
.ts-hero__script{
  margin-top:6px;
  font-family:var(--ff-script);font-weight:700;
  font-size:clamp(24px,2.4vw,36px);line-height:1.2;color:var(--gold-300);
  text-shadow:0 4px 18px rgba(0,0,0,.5);
}
.ts-hero__intro{
  margin-top:16px;max-width:560px;
  font-size:15.5px;line-height:1.8;color:#F1E3E7;text-shadow:0 2px 12px rgba(0,0,0,.5);
}
.ts-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;}

/* ---------- fanned deck of quote cards ---------- */
.ts-deck{position:relative;width:100%;max-width:470px;height:420px;margin-left:auto;}
.ts-deck__card{
  position:absolute;left:8%;right:4%;top:44px;margin:0;
  padding:26px 26px 22px;border-radius:22px;
  background:#FFFDF9;border:1px solid rgba(240,206,126,.55);
  box-shadow:0 30px 60px rgba(0,0,0,.35);
  transform-origin:50% 100%;
  transition:transform .9s var(--ease),opacity .9s var(--ease),filter .9s var(--ease);
}
.ts-deck__card::before{
  content:"";position:absolute;inset:8px;pointer-events:none;
  border:1px solid rgba(201,135,60,.3);border-radius:16px;
}
.ts-deck__card[data-pos="0"]{z-index:3;transform:rotate(-3deg);}
.ts-deck__card[data-pos="1"]{z-index:2;transform:translate(34px,-26px) rotate(5deg) scale(.95);filter:brightness(.9);}
.ts-deck__card[data-pos="2"]{z-index:1;transform:translate(-28px,-44px) rotate(-9deg) scale(.9);filter:brightness(.8);}
.ts-deck__card.is-leaving{transform:translate(-50px,70px) rotate(-16deg) scale(.95);opacity:0;}
.ts-deck__top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;}
.ts-deck__top .ts-glogo{width:24px;height:24px;}
.ts-deck__mark{font-size:26px;color:var(--gold-300);}
.ts-deck__card blockquote{
  margin:0;
  font-family:var(--ff-serif);font-size:18px;font-style:italic;line-height:1.55;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;
}
.ts-deck__card figcaption{display:flex;align-items:center;gap:12px;margin-top:18px;}
.ts-deck__card figcaption span{min-width:0;}
.ts-deck__card figcaption b{display:block;font-size:14.5px;color:var(--ink);}
.ts-deck__card figcaption small{display:block;font-size:12px;color:#8A8690;}

.ts-float{
  position:absolute;z-index:4;
  display:flex;align-items:center;gap:10px;
  padding:9px 18px 9px 9px;border-radius:999px;background:#fff;
  box-shadow:0 16px 34px rgba(0,0,0,.3);
  animation:ts-float 5s ease-in-out infinite;
}
.ts-float b{display:block;font-size:15px;line-height:1.2;color:var(--ink);}
.ts-float b i{font-size:12px;color:#F5A623;}
.ts-float small{display:block;font-size:11.5px;color:#8A8690;}
.ts-float--google{right:-8px;top:0;}
.ts-float--google .ts-glogo{width:36px;height:36px;padding:8px;border-radius:50%;background:#F3F6FC;}
.ts-float--love{left:-12px;bottom:10px;animation-delay:-2.4s;}
.ts-float__ic{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  font-size:14px;color:#fff;background:linear-gradient(145deg,var(--maroon-600),var(--pink));
}

/* ==========================================================================
   PROOF STRIP (overlaps the hero)
   ========================================================================== */
.ts-proof{position:relative;z-index:4;margin-top:-70px;}
.ts-proof__panel{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  padding:10px;border-radius:26px;background:#fff;border:1px solid #F1E4D8;
  box-shadow:0 22px 50px rgba(92,10,40,.14);
}
.ts-proof__item{
  position:relative;display:flex;align-items:center;gap:14px;
  padding:16px 20px;border-radius:18px;
  transition:background .35s var(--ease);
}
.ts-proof__item + .ts-proof__item::before{
  content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:#F0E2D4;
}
.ts-proof__ic{
  flex:0 0 auto;width:52px;height:52px;border-radius:16px;
  display:grid;place-items:center;font-size:20px;color:var(--gold-200);
  background:linear-gradient(145deg,var(--maroon-600),var(--maroon-900));
  box-shadow:0 10px 20px rgba(142,16,67,.22);
}
.ts-proof__item--google .ts-proof__ic{background:#F3F6FC;box-shadow:none;}
.ts-proof__item--google .ts-glogo{width:26px;height:26px;}
.ts-proof__item--google:hover{background:#F8FAFE;}
.ts-proof .ts-proof__item b{
  display:block;font-family:var(--ff-serif);font-size:27px;font-weight:800;line-height:1.1;color:var(--ink);letter-spacing:0;
}
.ts-proof .ts-proof__item b small{font-family:var(--ff-sans);font-size:13px;font-weight:500;color:#8A8690;}
.ts-proof__item div > span{display:block;margin-top:2px;font-size:13px;color:#77747C;}

/* ==========================================================================
   FEATURED STORIES
   ========================================================================== */
.ts-stories{
  position:relative;overflow:hidden;
  padding-block:92px 84px;
  background:linear-gradient(180deg,var(--cream-2) 0%,#FBF3EC 100%);
}
.ts-stories .container{position:relative;z-index:2;}
.ts-stories .deco--leaf-l{opacity:.55;}

.ts-slider{margin-top:40px;}
.ts-storySwiper{overflow:hidden;padding:10px 6px 24px;}

.ts-story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,76px);align-items:center;}

.ts-story__media{position:relative;justify-self:center;width:100%;max-width:470px;padding:22px 28px 30px 20px;}
.ts-story__frame{
  position:absolute;inset:0 0 10px 44px;
  border:1.5px solid rgba(201,135,60,.55);border-radius:260px 260px 26px 26px;
}
.ts-story__dots{
  position:absolute;left:0;bottom:0;width:120px;height:120px;
  background-image:radial-gradient(rgba(142,16,67,.32) 1.6px,transparent 1.8px);background-size:14px 14px;
}
.ts-story__photo{
  position:relative;z-index:1;margin:0;aspect-ratio:4/4.7;overflow:hidden;
  border-radius:240px 240px 22px 22px;
  box-shadow:0 26px 54px rgba(92,10,40,.22);
}
.ts-story__photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 7s linear;}
.swiper-slide-active .ts-story__photo img{transform:scale(1.1);}
.ts-story__seal{
  position:absolute;right:2px;bottom:8px;z-index:2;
  padding:6px;border-radius:50%;
  background:linear-gradient(145deg,var(--gold-200),var(--gold));
  box-shadow:0 14px 30px rgba(92,10,40,.3);
}
.ts-story__seal .ts-avatar{box-shadow:0 0 0 3px #FFF8EC;}
.ts-story__badge{
  position:absolute;left:40px;top:44px;z-index:2;
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px 7px 8px;border-radius:999px;background:#fff;
  font-size:12.5px;font-weight:600;color:var(--ink);box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.ts-story__badge .ts-glogo{width:20px;height:20px;}

.ts-story__top{display:flex;align-items:center;flex-wrap:wrap;gap:14px 18px;margin-bottom:16px;}
.ts-story__count{font-family:var(--ff-serif);font-size:32px;font-weight:800;line-height:1;color:var(--maroon);}
.ts-story__count small{font-size:15px;font-weight:600;color:#B9A89A;}
.ts-story__headline{
  margin-bottom:14px;
  font-size:clamp(25px,2.5vw,36px);font-weight:800;line-height:1.2;letter-spacing:-.3px;
}
.ts-story__quote{position:relative;margin:0;padding-left:46px;}
.ts-story__quote > i{position:absolute;left:0;top:4px;font-size:30px;color:var(--gold-400);}
.ts-story__quote p{
  -webkit-line-clamp:7;
  font-size:clamp(16px,1.3vw,18.5px);line-height:1.85;color:#4A4750;white-space:pre-line;
}
.ts-story__by{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:22px;padding-left:46px;}
.ts-story__name{
  font-family:var(--ff-script);font-size:clamp(30px,2.7vw,38px);font-weight:700;line-height:1.1;color:var(--maroon);
}
.ts-story__event{font-size:13.5px;color:#8A8690;}
.ts-story__event i{margin-right:4px;font-size:12px;color:var(--gold-600);}
.ts-story__link{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:13px;font-weight:600;color:#1A57C4;}
.ts-story__link i{font-size:10.5px;}

/* the copy rises in on the active slide (only once Swiper is running, so nothing hides without it) */
.ts-story__copy > *{transition:opacity .7s var(--ease),translate .7s var(--ease);}
.swiper-initialized .swiper-slide:not(.swiper-slide-active) .ts-story__copy > *{opacity:0;translate:0 18px;}
.swiper-slide-active .ts-story__copy > :nth-child(2){transition-delay:.08s;}
.swiper-slide-active .ts-story__copy > :nth-child(3){transition-delay:.16s;}
.swiper-slide-active .ts-story__copy > :nth-child(4){transition-delay:.24s;}

.ts-slider__nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px;}
.ts-slider__nav .nav-circle{position:static;transform:none;flex:0 0 auto;}
.ts-slider__nav .nav-circle:hover{transform:scale(1.1);}
.ts-thumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;}
.ts-thumb{
  --p:0;
  position:relative;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  opacity:.55;filter:grayscale(.5);
  transition:opacity .35s var(--ease),filter .35s var(--ease),transform .35s var(--ease);
}
/* ring that fills while the slide is showing */
.ts-thumb::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:rgba(142,16,67,.14);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
}
.ts-thumb.is-active::before{background:conic-gradient(var(--maroon) calc(var(--p) * 360deg),rgba(142,16,67,.16) 0);}
.ts-thumb .ts-avatar{width:42px;height:42px;font-size:13px;box-shadow:none;}
.ts-thumb:hover{opacity:.9;filter:none;}
.ts-thumb.is-active{opacity:1;filter:none;transform:scale(1.1);}
.ts-thumb:focus-visible{outline:2px solid var(--maroon);outline-offset:3px;}

/* ==========================================================================
   GOOGLE REVIEWS
   ========================================================================== */
.ts-google{
  position:relative;
  padding-block:92px;
  background:
    radial-gradient(circle at 6% 12%,rgba(66,133,244,.07),transparent 38%),
    radial-gradient(circle at 96% 90%,rgba(251,188,5,.08),transparent 36%),
    linear-gradient(180deg,#FBF3EC 0%,#FDF8F3 100%);
}
.ts-google__grid{
  display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);
  gap:clamp(24px,3vw,40px);align-items:start;margin-top:38px;
}

.ts-gsum{
  position:sticky;top:118px;overflow:hidden;
  padding:28px 26px 26px;border-radius:24px;background:#fff;border:1px solid #ECE3D8;
  box-shadow:0 20px 46px rgba(92,10,40,.1);
}
.ts-gsum::before{
  content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,#4285F4 0 25%,#EA4335 25% 50%,#FBBC05 50% 75%,#34A853 75%);
}
.ts-gsum__brand{display:flex;align-items:center;gap:12px;}
.ts-gsum__brand b{display:block;font-size:17px;color:var(--ink);}
.ts-gsum__brand small{display:block;font-size:12.5px;color:#8A8690;}
.ts-gsum__score{
  display:flex;align-items:center;gap:16px;
  margin:22px 0 4px;padding:18px 0;border-block:1px dashed #EDE2D6;
}
.ts-gsum__score > b{font-family:var(--ff-serif);font-size:60px;font-weight:800;line-height:1;color:var(--ink);}
.ts-gsum__score small{display:block;margin-top:6px;font-size:13px;color:#77747C;}
.ts-gsum__bars{display:flex;flex-direction:column;gap:9px;margin-top:18px;}
.ts-gsum__bars li{
  display:grid;grid-template-columns:36px minmax(0,1fr) 26px;align-items:center;gap:10px;
  font-size:13px;color:#57545C;
}
.ts-gsum__star{white-space:nowrap;}
.ts-gsum__star i{font-size:10px;color:#F5A623;}
.ts-gbar{height:8px;border-radius:99px;overflow:hidden;background:#F1EAE1;}
.ts-gbar b{
  display:block;width:var(--w);height:100%;border-radius:inherit;
  background:linear-gradient(90deg,#F5A623,#FBBC05);
  transform-origin:0 50%;animation:ts-grow 1.4s var(--ease) .3s both;
}
.ts-gsum__n{text-align:right;font-weight:600;}
.ts-gsum__note{margin-top:10px;font-size:11.5px;color:#9A969E;}
.ts-gsum__actions{display:flex;flex-direction:column;gap:12px;margin-top:22px;}
.ts-gsum__btn{justify-content:center;}
.ts-gsum__link{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size:13.5px;font-weight:600;color:#1A57C4;
}
.ts-gsum__link i{font-size:11px;}
.ts-gsum__link:hover{text-decoration:underline;text-underline-offset:3px;}

.ts-greviews__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:18px;align-items:start;}
.ts-gcard{
  position:relative;display:flex;flex-direction:column;
  padding:20px 20px 16px;border-radius:20px;background:#fff;border:1px solid #ECE6DE;
  box-shadow:0 8px 22px rgba(60,40,20,.06);
}
.ts-gcard:hover{transform:translateY(-6px);border-color:#DCE4F2;box-shadow:0 20px 40px rgba(60,40,20,.12);}
.ts-gcard__head{display:flex;align-items:center;gap:12px;}
.ts-gcard__head .ts-avatar{width:42px;height:42px;font-size:15px;box-shadow:none;}
.ts-gcard__head .ts-glogo{width:22px;height:22px;}
.ts-gcard__who{flex:1;min-width:0;}
.ts-gcard__who b{display:block;font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ts-gcard__who span{display:block;font-size:12px;color:#8A8690;}
.ts-gcard__rate{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:14px 0 8px;}
.ts-gcard__tag{padding:2px 10px;border-radius:999px;background:#F6F1EA;font-size:11.5px;font-weight:600;color:#7A6A5C;}
.ts-gcard__text{-webkit-line-clamp:5;font-size:14px;line-height:1.7;color:#4E4B53;white-space:pre-line;}
.ts-gcard__foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:14px;padding-top:12px;border-top:1px solid #F1ECE5;
  font-size:12px;color:#8A8690;
}
.ts-gcard__foot .fa-circle-check{color:#34A853;}
.ts-gcard__foot a{font-weight:600;color:#1A57C4;}
.ts-gcard__foot a i{font-size:10px;}

.ts-gempty{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:54px 30px;border-radius:24px;background:#fff;border:1.5px dashed #D9CFC3;
}
.ts-gempty h3{margin-top:18px;font-size:clamp(22px,2vw,28px);}
.ts-gempty p{max-width:430px;margin:8px auto 22px;font-size:15px;color:#6B686F;}

/* ==========================================================================
   CLIENT STORIES WALL
   ========================================================================== */
.ts-wall{
  position:relative;overflow:hidden;
  padding-block:92px 96px;
  background:linear-gradient(180deg,#FDF8F3 0%,#FBF1E7 100%);
}
.ts-wall__pattern{
  position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(201,135,60,.22) 1.2px,transparent 1.4px);background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);
}
.ts-wall .container{position:relative;z-index:2;}
.ts-wall .deco--leaf-r{opacity:.5;}

.ts-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:26px 0 0;}
.ts-filter{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 8px 8px 18px;border-radius:999px;background:#fff;border:1px solid #EEDFD0;
  font-size:14px;font-weight:600;color:#4A4750;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.ts-filter b{min-width:26px;padding:2px 8px;border-radius:999px;background:#FBF1E6;font-size:12px;color:var(--gold-700);text-align:center;}
.ts-filter:hover{border-color:var(--gold-400);color:var(--maroon);}
.ts-filter:focus-visible{outline:2px solid var(--maroon);outline-offset:2px;}
.ts-filter.is-active{
  color:#fff;border-color:transparent;
  background:linear-gradient(100deg,var(--maroon-800),var(--maroon-600) 60%,var(--pink));
  box-shadow:0 10px 22px rgba(142,16,67,.25);
}
.ts-filter.is-active b{background:rgba(255,255,255,.2);color:#fff;}

/* masonry via CSS columns */
.ts-wall__grid{columns:3 300px;column-gap:28px;margin-top:40px;}
.ts-note{
  --tilt:0deg;
  position:relative;display:block;break-inside:avoid;
  margin:0 0 34px;padding:32px 26px 22px;
  border-radius:6px 22px 6px 22px;background:#FFFDF8;
  box-shadow:0 14px 34px rgba(92,10,40,.1);
  rotate:var(--tilt);
  transition:rotate .5s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease);
}
.ts-note:hover{rotate:0deg;transform:translateY(-6px);box-shadow:0 26px 48px rgba(92,10,40,.16);}
.ts-note[hidden]{display:none;}

/* four paper styles, cycled */
.ts-note--0{--tilt:-1.2deg;}
.ts-note--1{--tilt:1deg;background:linear-gradient(160deg,var(--maroon) 0%,var(--maroon-900) 100%);}
.ts-note--2{--tilt:.6deg;background:#fff;border:1px solid #F0E2D3;}
.ts-note--2::after{
  content:"";position:absolute;right:0;bottom:0;width:90px;height:90px;pointer-events:none;
  background:url("../images/floral-corner.png") right bottom/contain no-repeat;opacity:.3;
}
.ts-note--3{
  --tilt:-.7deg;
  background:
    repeating-linear-gradient(180deg,transparent 0 27px,rgba(201,135,60,.16) 27px 28px) 0 10px,
    linear-gradient(180deg,#FFF6E6,#FCEBD2);
}
.ts-note--3 .ts-note__text{line-height:28px;}

.ts-note__tape{
  position:absolute;left:50%;top:-12px;width:96px;height:26px;translate:-50% 0;rotate:-3deg;
  background:rgba(240,206,126,.72);box-shadow:0 2px 6px rgba(0,0,0,.08);
  clip-path:polygon(4% 0,96% 0,100% 22%,97% 48%,100% 74%,96% 100%,4% 100%,0 76%,3% 50%,0 24%);
}
.ts-note--1 .ts-note__tape{background:rgba(247,224,166,.88);}
.ts-note--2 .ts-note__tape{background:rgba(228,37,127,.26);rotate:4deg;}
.ts-note--3 .ts-note__tape{background:rgba(142,16,67,.2);}

.ts-note__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.ts-note__mark{font-size:26px;color:var(--gold-300);opacity:.85;}
.ts-note__title{margin-bottom:8px;font-size:19px;font-weight:700;line-height:1.3;}
.ts-note__text{-webkit-line-clamp:8;font-size:14.5px;line-height:1.75;color:#4E4B53;white-space:pre-line;}
.ts-note__by{
  display:flex;align-items:center;gap:12px;
  margin-top:18px;padding-top:14px;border-top:1px dashed rgba(201,135,60,.45);
}
.ts-note__by div{min-width:0;}
.ts-note__by b{display:block;font-family:var(--ff-script);font-size:24px;font-weight:700;line-height:1.1;color:var(--maroon);}
.ts-note__by small{display:block;font-size:12px;color:#8A8690;}

/* the maroon card */
.ts-note--1 .ts-stars{background-image:linear-gradient(90deg,var(--gold-300) calc(var(--rating) / 5 * 100%),rgba(255,255,255,.22) calc(var(--rating) / 5 * 100%));}
.ts-note--1 .ts-note__title{color:#fff;}
.ts-note--1 .ts-note__text{color:#F1DFE5;}
.ts-note--1 .ts-note__by{border-top-color:rgba(247,224,166,.3);}
.ts-note--1 .ts-note__by b{color:var(--gold-200);}
.ts-note--1 .ts-note__by small{color:#E3C3CF;}
.ts-note--1 .ts-more{color:var(--gold-200);}
.ts-note--1 .ts-avatar{box-shadow:0 0 0 3px rgba(247,224,166,.5);}

/* ==========================================================================
   SHARE YOUR EXPERIENCE
   ========================================================================== */
.ts-share{padding-block:30px 96px;background:#FBF1E7;}
.ts-share__card{
  position:relative;overflow:hidden;isolation:isolate;
  display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:clamp(24px,4vw,60px);align-items:center;
  padding:clamp(30px,4vw,56px);border-radius:32px;color:#fff;
  background:
    radial-gradient(circle at 92% 8%,rgba(210,28,114,.38),transparent 44%),
    radial-gradient(circle at 0% 100%,rgba(227,177,92,.2),transparent 40%),
    linear-gradient(140deg,#5C0A28 0%,#3A0A1C 100%);
  box-shadow:0 30px 70px rgba(92,10,40,.3);
}
.ts-share__card::before{
  content:"";position:absolute;inset:12px;z-index:-1;pointer-events:none;
  border:1px solid rgba(247,224,166,.28);border-radius:24px;
}
.ts-share__copy h2{margin:4px 0 12px;font-size:clamp(28px,3vw,42px);font-weight:800;line-height:1.15;color:#fff;}
.ts-share__copy h2 em{
  font-style:normal;
  background:linear-gradient(92deg,var(--gold-200),var(--gold-400));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ts-share__copy > p:not(.eyebrow){max-width:520px;font-size:15.5px;line-height:1.8;color:#EAD7DD;}
.ts-share__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px;}

/* love letter peeking out of an envelope */
.ts-share__art{position:relative;height:250px;display:grid;place-items:center;}
.ts-letter{position:relative;width:210px;height:136px;margin-top:60px;animation:ts-float 5.5s ease-in-out infinite;}
.ts-letter__flap{
  position:absolute;left:0;right:0;bottom:100%;height:74px;z-index:0;
  background:linear-gradient(0deg,#C9873C,#E3B15C);
  clip-path:polygon(0 100%,50% 0,100% 100%);
}
.ts-letter__paper{
  position:absolute;left:16px;right:16px;bottom:24px;height:150px;z-index:1;
  padding:22px 18px 0;border-radius:6px;background:#FFFDF8;
  box-shadow:0 -6px 20px rgba(0,0,0,.18);
}
.ts-letter__paper i{display:block;height:6px;margin-bottom:12px;border-radius:6px;background:#EAD9C8;}
.ts-letter__paper i:first-child{width:60%;background:#E4257F;opacity:.45;}
.ts-letter__paper i:last-child{width:80%;}
.ts-letter__body{
  position:absolute;inset:0;z-index:2;border-radius:0 0 12px 12px;
  background:linear-gradient(160deg,#F7E0A6,#E3B15C);
  clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);
  box-shadow:0 20px 40px rgba(0,0,0,.35);
}
.ts-letter__seal{
  position:absolute;left:50%;top:56%;z-index:3;translate:-50% -50%;
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  font-size:17px;color:#fff;
  background:radial-gradient(circle at 35% 30%,var(--pink-2),var(--maroon-900));
  box-shadow:0 0 0 4px rgba(255,255,255,.18),0 8px 18px rgba(0,0,0,.35);
}
.ts-share__spark{
  position:absolute;left:var(--a);top:var(--b);width:14px;height:14px;
  background:var(--gold-300);
  clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);
  animation:ts-twinkle 3.2s ease-in-out infinite;
}
.ts-share__spark:nth-of-type(2){animation-delay:-.8s;}
.ts-share__spark:nth-of-type(3){animation-delay:-1.6s;}
.ts-share__spark:nth-of-type(4){animation-delay:-2.4s;}

/* ==========================================================================
   EMPTY STATE
   ========================================================================== */
.ts-empty-wrap{padding-block:100px 70px;background:var(--cream-2);}
.ts-empty{
  max-width:640px;margin:0 auto;padding:50px 30px;text-align:center;
  border-radius:28px;background:#fff;border:1px solid #F0E2D4;box-shadow:var(--shadow-md);
}
.ts-empty__art{
  display:inline-grid;place-items:center;width:86px;height:86px;margin-bottom:18px;border-radius:50%;
  font-size:32px;color:var(--gold-200);background:linear-gradient(145deg,var(--maroon-600),var(--maroon-900));
}
.ts-empty h2{font-size:clamp(24px,2.4vw,30px);}
.ts-empty p{margin:10px auto 24px;max-width:480px;font-size:15px;color:#6B686F;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  .ts-hero__grid{grid-template-columns:minmax(0,1fr);text-align:center;padding-block:70px 130px;}
  .ts-hero__copy{display:flex;flex-direction:column;align-items:center;}
  .ts-hero__intro{margin-inline:auto;}
  .ts-hero__actions{justify-content:center;}
  .ts-deck{margin:10px auto 0;text-align:left;}

  .ts-story{grid-template-columns:minmax(0,1fr);gap:26px;}
  .ts-story__media{max-width:400px;}

  .ts-google__grid{grid-template-columns:minmax(0,1fr);}
  .ts-gsum{position:relative;top:auto;width:100%;max-width:560px;margin-inline:auto;}

  .ts-share__card{grid-template-columns:minmax(0,1fr);text-align:center;}
  .ts-share__copy > p:not(.eyebrow){margin-inline:auto;}
  .eyebrow.ts-eyebrow{justify-content:center;}
  .ts-share__actions{justify-content:center;}
  .ts-share__art{height:210px;}
}
@media (max-width:760px){
  .ts-hero__grid{padding-block:56px 120px;}
  .ts-deck{height:370px;}
  .ts-deck__card{left:5%;right:5%;padding:22px 20px 18px;}
  .ts-deck__card blockquote{font-size:16px;}
  .ts-float--google{right:0;}
  .ts-float--love{left:0;}

  .ts-proof{margin-top:-60px;}
  .ts-proof__panel{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ts-proof__item{padding:12px;gap:10px;}
  .ts-proof__item + .ts-proof__item::before{display:none;}
  .ts-proof__ic{width:42px;height:42px;font-size:16px;border-radius:13px;}
  .ts-proof .ts-proof__item b{font-size:21px;}

  .ts-stories,.ts-google,.ts-wall{padding-block:70px;}
  .ts-story__quote{padding-left:0;}
  .ts-story__quote > i{position:static;display:block;margin-bottom:8px;font-size:24px;}
  .ts-story__by{padding-left:0;}
  .ts-story__media{padding:16px 20px 24px 14px;}
  .ts-story__frame{left:30px;}

  .ts-wall__grid{columns:1;}
  .ts-note{--tilt:0deg !important;}
  .ts-share{padding-bottom:70px;}
}
@media (max-width:460px){
  .ts-proof__panel{grid-template-columns:minmax(0,1fr);}
  .ts-hero__actions .btn,.ts-share__actions .btn{width:100%;justify-content:center;}
  .ts-greviews__grid{grid-template-columns:minmax(0,1fr);}
  .ts-gsum{padding:24px 20px;}
  .ts-gsum__score > b{font-size:50px;}
  .ts-thumb{width:46px;height:46px;}
  .ts-thumb .ts-avatar{width:36px;height:36px;font-size:12px;}
  .ts-slider__nav{gap:10px;}
  .ts-deck{height:350px;}
  .ts-float{padding:7px 14px 7px 7px;}
}

@media (prefers-reduced-motion:reduce){
  .ts-hero__sparks{display:none;}
  .ts-js [data-reveal]{opacity:1;translate:none;}
}
