/* Measured from the client's 1280px desktop / 390px mobile Figma frames. */
.occasion-ribbon{gap:32px}
.service-price{flex-wrap:nowrap;align-items:flex-end;height:66px;gap:10px}
.service-price>strong{font-size:31px;line-height:37.2px}
.service-price>span:last-child:not(:first-child){flex-basis:auto;white-space:nowrap;line-height:15.4px}
#card-bridal .service-price{gap:19px}
#card-bridal .service-price>strong{line-height:29px}
.price-value{flex-wrap:nowrap;white-space:nowrap;align-items:baseline}
.price-value small{flex-basis:auto}
.price-description{min-width:0}
#bridal .price-value,#party .price-value{min-height:90px;gap:15px}
#bridal .price-value{width:397px}#party .price-value{width:390px}
.lookbook-grid{grid-template-columns:1.08fr .8fr 1fr;gap:28px;align-items:end}
@media(min-width:1051px){.lookbook-grid{grid-template-columns:35.7784% 26.4949% 33.1182%}.about-hero>div:first-child{transform:translateY(50px)}}
.look-item--tall{height:450px}
.look-item--tall img{height:520px;position:absolute;top:50%;transform:translateY(-50%)}
.look-item--short{height:350px;margin-top:80px}
.look-item--medium{height:450px;margin-bottom:0}
@media(hover:hover){.look-item--tall:hover img{transform:translateY(-50%) scale(1.035)}}
.video-layout{grid-template-columns:35.6% 53.36%;gap:11.04%;height:500px;align-items:start}
.video-copy{margin-top:76px}
.video-copy .beauty-line{margin-top:12px}
.video-copy .beauty-line{font-weight:500}
.video-frame{width:100%;height:550px;margin-top:-50px;border-radius:50% 50% 3px 3px}
.about-hero{grid-template-columns:minmax(0,1fr) 39.79%;gap:5%;padding-bottom:65px}
.about-photo{height:489px}
.values-section .section-note{font-size:20px;line-height:22.4px}
.contact-photo{width:421px;max-width:100%;height:379px}
.invitation-flower{width:120px;height:128px;left:10%;top:36%}
.invitation-flower .motif{position:absolute;width:266.192px;height:266.192px;left:-73.1px;top:-72.96px}
.footer-top{grid-template-columns:185px minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,20.94vw,268px);align-items:start}
.footer-top>p{white-space:nowrap}
/* Accessible feedback navigation; swipe is native horizontal snap scrolling. */
.testimonial-slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;min-height:270px}
.testimonial-slides::-webkit-scrollbar{display:none}
.testimonial{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;padding-inline:4px}
.testimonial:not([hidden]){animation:none}
.feedback-navigation{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:20px}
.feedback-navigation .quote-controls{margin:0}
.feedback-arrow,.feedback-pause{background:none;border:1px solid var(--line);color:var(--wine);border-radius:50%;min-width:44px;height:44px;display:grid;place-items:center;padding:0}
.feedback-arrow:first-child svg{transform:rotate(180deg)}
.feedback-pause{font-size:14px;min-width:94px;border-radius:24px;padding:0 12px;margin:12px auto 0}
.feedback-arrow:hover,.feedback-pause:hover{background:var(--blush)}
.feedback-hint{display:none}
.cosmetic-stage{height:600px}
.ritual-inner{min-height:0;align-items:center}
.cosmetic-fallback{inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(12px 30px 20px #28000e55)}
@media(min-width:761px) and (max-width:1050px){
  .footer-top{gap:32px;grid-template-columns:145px 1fr 1fr}.footer-top>p{font-size:31px}
  .video-layout{height:auto;align-items:center;gap:7%;grid-template-columns:.9fr 1.1fr}.video-copy{margin:0}.video-frame{height:470px;margin:0}
  .about-photo{height:450px}.contact-photo{height:350px}
  #card-bridal .service-price{gap:6px}.service-price{padding-inline:10px}.service-price>strong{font-size:26px}
}
@media(max-width:760px){
  .occasion-ribbon{padding:12px 20px;gap:14px;flex-wrap:nowrap;justify-content:center}
  .occasion-ribbon span{font-size:16px;line-height:41.25px}
  .occasion-ribbon .motif{width:24px;height:20px}
  .occasion-ribbon>.motif:last-child{display:block}
  .service-price>strong{font-size:33px;line-height:39.6px}
  #card-bridal .service-price{gap:12px}
  #card-bridal .service-price>strong{font-size:31px;line-height:29px}
  #bridal .price-value,#party .price-value{min-height:78px;gap:13px;max-width:100%;padding-inline:20px}
  #bridal .price-value{width:329px}#party .price-value{width:341px}
  .price-value small{margin-left:auto}
  .lookbook-grid{grid-template-columns:1fr;gap:30px;padding-bottom:30px}
  .look-item--tall{height:315px}.look-item--tall img{height:385px}
  .look-item--short,.look-item--medium{height:210px;margin:0}
  .video-layout{height:auto;grid-template-columns:1fr;gap:36px}
  .video-copy{margin:0}.video-copy .beauty-line{margin-top:0}
  .video-copy .beauty-line{font-weight:400}
  .video-frame{height:auto;aspect-ratio:343.198/403.25;margin:0;width:100%}
  .about-hero{grid-template-columns:1fr;gap:34px;padding-bottom:50px}.about-photo{height:450px}
  .about-hero h1{font-size:64px}.contact-story h1{font-size:64px}
  body[data-page='/about'] .invitation h2{font-size:53px}
  body[data-page='/credits'] .page-intro h1{font-size:60px}
  .values-section .section-note{font-size:14px}
  .look-caption{font-size:24px;line-height:24.75px;padding:28px 10px}
  .invitation-flower{top:20px;left:auto;right:6%;width:65px;height:63px}
  .invitation-flower .motif{position:static;width:65px;height:55px}
  .footer-top{grid-template-columns:1fr 1fr;gap:35px 24px;align-items:center}
  .footer-top>p{font-size:30px;display:block;white-space:normal;line-height:35.1px;min-height:70px;align-content:center}
  .footer-top>p>span{margin-left:.25em}
  body[data-page='/contact'] .footer-top{padding-bottom:38px}
  body[data-page='/contact'] .footer-top>p,body[data-page='/contact'] .footer-bottom>span:nth-child(2){text-align:left}
  body[data-page='/contact'] .footer-top>p br{display:block}
  body[data-page='/contact'] .footer-top>p>span{margin-left:0}
  body[data-page='/contact'] .footer-top nav{align-items:flex-start}
  .cosmetic-stage{height:auto;aspect-ratio:1/1.14;max-height:560px}
  .cosmetic-story{margin-top:0}.ritual-inner{gap:0;padding-bottom:12px}
  .stage-word{bottom:0;line-height:1.2;font-size:32px}
  .ritual-copy h2{font-size:36px;line-height:52.1625px;letter-spacing:-1.7062px}
  .ritual-copy h2 .ritual-bold{font-size:40px;font-style:italic}
  .ritual-bold br{display:none}
  .feedback-navigation{gap:18px;margin-top:9px}
  .feedback-hint{display:block;font-size:14px;color:var(--muted);margin-top:12px}
  .testimonial-slides{min-height:280px}
}
@media(max-width:360px){
  .occasion-ribbon{gap:9px;padding-inline:10px}.occasion-ribbon .motif{width:20px}
  .service-price{padding-inline:12px;gap:7px}#card-bridal .service-price{gap:7px}#card-bridal .service-price>strong{font-size:28px}
  #bridal .price-value,#party .price-value{padding-inline:12px;gap:8px}.price-value strong{font-size:32px}.price-value .from,.price-value small{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.testimonial-slides{scroll-behavior:auto}}
