@font-face{
  font-family:Montserrat;
  src:url('/assets/montserrat-regular.ttf') format('truetype');
  font-weight:400;
  font-display:swap
}
@font-face{
  font-family:Montserrat;
  src:url('/assets/montserrat-bold.ttf') format('truetype');
  font-weight:700;
  font-display:swap
}
@font-face{
  font-family:Roboto;
  src:url('/assets/roboto-bold.ttf') format('truetype');
  font-weight:700;
  font-display:swap
}
@font-face{
  font-family:Trocchi;
  src:url('/assets/trocchi-regular.ttf') format('truetype');
  font-weight:400;
  font-display:swap
}
@font-face{
  font-family:SourceSerif;
  src:url('/assets/source-serif-bold.ttf') format('truetype');
  font-weight:700;
  font-display:swap
}
:root{
  --paper:#faf7f4;
  --paper-alt:#f6f1ec;
  --white:#fff;
  --ink:#0e0d0c;
  --muted:#4f4b47;
  --gold:#b47c47;
  --line:#d6ad88;
  --max:100vw;
  --pad:42px;
  --sans:Montserrat,Arial,sans-serif;
  --serif:Trocchi,Georgia,serif
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth;
  scroll-padding-top:82px
}
body{
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  font-size:14px;
  line-height:1.25
}
img{
  display:block;
  max-width:100%
}
a{
  color:inherit
}
.svg-sprite{
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.site-header{
  height:84px;
  border-bottom:1px solid var(--gold);
  background:var(--paper)
}
.header-inner{
  width:min(100%,var(--max));
  height:100%;
  margin:auto;
  padding:8px 20px;
  display:grid;
  grid-template-columns:150px 1fr auto auto;
  align-items:center;
  gap:24px
}
.logo img{
  width:142px;
  height:64px;
  object-fit:cover
}
.site-header nav{
  display:flex;
  gap:24px;
  align-items:center
}
.site-header nav a,.phone{
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap
}
.phone{
  margin-left:auto
}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 24px;
  border-radius:8px;
  color:#fff;
  background:var(--gold);
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  transition:filter .2s,transform .2s
}
.button:hover,.button:focus-visible{
  filter:brightness(.9);
  transform:translateY(-1px)
}
main{
  overflow:hidden
}
.hero{
  position:relative;
  width:min(100%,var(--max));
  height:530px;
  margin:auto
}
.hero-copy{
  position:absolute;
  z-index:2;
  top:0;
  left:0;
  width:45%;
  padding:22px 0 0 var(--pad)
}
.kicker{
  margin:0 0 26px;
  color:var(--gold);
  font-family:SourceSerif,Georgia,serif;
  font-size:13px
}
.kicker::after{
  content:"";
  display:block;
  width:31px;
  height:2px;
  margin-top:11px;
  background:var(--gold)
}
h1{
  margin:0 0 18px;
  font:400 53px/1.13 var(--serif);
  letter-spacing:-1.5px
}
h1 span{
  color:var(--gold)
}
.hero-photo{
  position:absolute;
  top:0;
  right:0;
  width:50%;
  height:570px;
  overflow:hidden;
  border-radius:0 0 0 8px
}
.hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}
.trust-grid{
  position:absolute;
  z-index:3;
  right:56px;
  bottom:19px;
  left:56px;
  height:138px;
  padding:26px 20px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:var(--white);
  box-shadow:0 18px 35px rgba(40,30,20,.16)
}
.trust-grid article{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:12px;
  align-items:start;
  padding:0 18px;
  border-right:1px solid var(--line)
}
.trust-grid article:first-child{
  padding-left:0
}
.trust-grid article:last-child{
  padding-right:0;
  border:0
}
.trust-grid svg{
  width:50px;
  height:50px;
  color:var(--gold);
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round
}
.trust-grid svg.filled{
  fill:currentColor;
  stroke:none
}
.trust-grid h2,.trust-grid p{
  margin:0
}
.trust-grid h2{
  padding-top:3px;
  font:700 12px/1.2 Roboto,var(--sans);
  text-transform:uppercase
}
.trust-grid p{
  margin-top:6px;
  color:#36322f;
  font-size:11px;
  line-height:1.25
}
.section{
  width:min(100%,var(--max));
  margin:auto;
  padding-inline:var(--pad)
}
.section-title{
  margin:0;
  text-align:center;
  font-size:26px;
  line-height:1.08
}
.section-title.serif{
  font:400 29px/1.08 var(--serif)
}
.section-title::after{
  content:"";
  display:block;
  width:32px;
  height:2px;
  margin:12px auto 0;
  background:var(--gold)
}
.how{
  height:247px;
  padding-top:6px
}
.steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:29px;
  margin-top:18px
}
.steps article{
  position:relative;
  text-align:center
}
.steps article:not(:last-child)::after{
  content:"→";
  position:absolute;
  top:77px;
  right:-26px;
  color:var(--gold);
  font:400 37px/1 var(--serif)
}
.steps b{
  display:grid;
  width:39px;
  height:39px;
  margin:0 auto 11px;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--gold);
  font-size:18px
}
.steps h3,.occasion-grid h3,.benefit-grid h3,.process-grid h3{
  margin:0;
  text-transform:uppercase;
  font-size:12px;
  line-height:1.15
}
.steps p{
  max-width:190px;
  margin:9px auto 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.22
}
.occasions{
  height:403px;
  padding-top:8px;
  background:var(--paper-alt)
}
.occasion-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:35px
}
.occasion-grid article{
  text-align:center
}
.occasion-grid img{
  width:100%;
  height:162px;
  object-fit:cover
}
.occasion-grid h3{
  min-height:30px;
  margin-top:12px
}
.occasion-grid p{
  max-width:200px;
  margin:4px auto 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.2
}
.why{
  position:relative;
  height:auto;
  padding-top:82px;
  padding-bottom:92px;
  background:linear-gradient(145deg,#fff 0%,#fbf7f2 52%,#f5ece3 100%);
  overflow:hidden
}
.why::before,.why::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  filter:blur(1px)
}
.why::before{
  width:360px;
  height:360px;
  top:-190px;
  right:-150px;
  background:radial-gradient(circle,rgba(180,124,71,.18),transparent 68%);
  animation:orb-drift 9s ease-in-out infinite alternate
}
.why::after{
  width:220px;
  height:220px;
  bottom:-120px;
  left:-80px;
  border:1px solid rgba(180,124,71,.2);
  animation:orb-spin 22s linear infinite
}
.section-heading{
  position:relative;
  z-index:1;
  max-width:760px;
  margin:0 auto;
  text-align:center
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--gold);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase
}
.eyebrow::before{
  content:"";
  width:24px;
  height:1px;
  background:currentColor
}
.section-heading .section-title{
  margin-top:12px;
  font-size:clamp(28px,3.2vw,45px);
  letter-spacing:-.035em
}
.section-heading .section-title::after{
  display:none
}
.section-heading>p{
  max-width:650px;
  margin:18px auto 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.65
}
.benefit-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:46px auto 0;
  max-width:none
}
.benefit-card{
  position:relative;
  min-height:238px;
  padding:30px 26px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  overflow:hidden;
  border:1px solid rgba(180,124,71,.2);
  border-radius:22px;
  background:rgba(255,255,255,.8);
  box-shadow:0 16px 40px rgba(49,35,22,.07);
  text-align:left;
  isolation:isolate;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s
}
.benefit-card::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:auto -35% -65% 35%;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(180,124,71,.18),transparent 68%);
  transition:transform .55s ease
}
.benefit-card::after{
  content:"";
  position:absolute;
  top:0;
  left:24px;
  width:42px;
  height:3px;
  border-radius:0 0 4px 4px;
  background:var(--gold);
  transform-origin:left;
  transition:width .45s ease
}
.benefit-card:hover{
  transform:translateY(-9px);
  border-color:rgba(180,124,71,.5);
  box-shadow:0 24px 55px rgba(49,35,22,.14)
}
.benefit-card:hover::before{
  transform:scale(1.25) translate(-10px,-10px)
}
.benefit-card:hover::after{
  width:calc(100% - 48px)
}
.benefit-card-featured{
  grid-column:span 2;
  display:grid;
  grid-template-columns:145px 1fr;
  gap:28px;
  align-items:center;
  color:#fff;
  background:linear-gradient(135deg,#191613 0%,#3b2a1d 58%,#80552f 140%);
  border-color:transparent
}
.benefit-card-featured::before{
  inset:-60% -20% auto auto;
  width:280px;
  height:280px;
  background:radial-gradient(circle,rgba(224,169,114,.35),transparent 66%)
}
.benefit-card h3{
  margin:0;
  font-size:13px;
  line-height:1.25;
  letter-spacing:.025em;
  text-transform:uppercase
}
.benefit-card p{
  max-width:none;
  margin:11px 0 0;
  color:#6c625a;
  font-size:12px;
  line-height:1.55
}
.benefit-card-featured p{
  color:#ddd2c8;
  font-size:13px
}
.feature-icon,.rating-icon svg{
  display:block;
  width:58px;
  height:58px;
  margin:0 0 24px;
  color:var(--gold);
  fill:none;
  stroke:currentColor;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
  animation:icon-float 4.5s ease-in-out infinite
}
.feature-icon.filled,.rating-icon svg{
  fill:var(--gold);
  stroke:none
}
.text-icon{
  height:auto;
  color:#d79a60;
  font:700 67px/1 SourceSerif,Georgia,serif;
  letter-spacing:-5px;
  transform:rotate(-4deg);
  animation:icon-float 4.2s ease-in-out infinite
}
.text-icon::after{
  content:"";
  display:block;
  width:92px;
  height:17px;
  margin:-4px auto 0;
  border:5px solid #d79a60;
  border-top:0;
  border-radius:0 0 50% 50%
}
.rating-icon{
  position:relative;
  width:64px;
  height:64px;
  margin-bottom:18px
}
.rating-icon svg{
  height:55px;
  margin:0
}
.rating-icon span{
  position:absolute;
  right:50%;
  bottom:-1px;
  transform:translateX(50%);
  padding:3px 6px;
  border:1px solid var(--gold);
  border-radius:4px;
  color:var(--gold);
  background:#fff;
  font-size:8px;
  font-weight:700;
  letter-spacing:1px;
  white-space:nowrap
}
.benefit-card:nth-child(2n) .feature-icon{
  animation-delay:-1.6s
}
.benefit-card:nth-child(3n) .feature-icon{
  animation-delay:-2.7s
}
.process{
  height:279px;
  padding-top:26px;
  background:var(--paper-alt)
}
.process .section-title::after{
  display:none
}
.process-grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
  margin-top:18px
}
.process-grid::before{
  content:"";
  position:absolute;
  top:13px;
  right:9%;
  left:9%;
  height:1px;
  background:var(--gold)
}
.process-grid article{
  position:relative;
  text-align:center
}
.process-grid b{
  position:relative;
  z-index:1;
  display:grid;
  width:27px;
  height:27px;
  margin:0 auto 15px;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  background:var(--paper-alt);
  font-size:11px
}
.process-grid svg{
  width:39px;
  height:39px;
  margin:0 auto 9px;
  color:var(--gold);
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round
}
.process-grid p{
  margin:8px auto 0;
  color:var(--muted);
  font-size:10.5px;
  line-height:1.2
}
.faq{
  position:relative;
  height:auto;
  margin-top:42px;
  padding:78px clamp(32px,5vw,76px);
  display:grid;
  grid-template-columns:minmax(250px,.78fr) minmax(0,1.22fr);
  gap:clamp(40px,7vw,110px);
  overflow:hidden;
  border-radius:32px;
  color:#fff;
  background:linear-gradient(145deg,#151311 0%,#211a15 58%,#2c1d13 100%);
  box-shadow:0 28px 80px rgba(25,18,12,.22)
}
.faq::before{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  top:-230px;
  left:-180px;
  border:1px solid rgba(212,156,102,.28);
  border-radius:50%;
  box-shadow:0 0 0 45px rgba(212,156,102,.035),0 0 0 90px rgba(212,156,102,.025);
  animation:orb-spin 28s linear infinite
}
.faq::after{
  content:"?";
  position:absolute;
  right:-18px;
  bottom:-105px;
  color:rgba(255,255,255,.025);
  font:700 390px/1 var(--serif);
  transform:rotate(8deg);
  pointer-events:none
}
.faq-intro,.faq-list{
  position:relative;
  z-index:1
}
.faq-intro h2{
  margin:16px 0 20px;
  font:400 clamp(35px,4vw,57px)/1.05 var(--serif);
  letter-spacing:-.035em
}
.faq-intro>p{
  max-width:420px;
  margin:0;
  color:#c6bbb2;
  font-size:13px;
  line-height:1.7
}
.faq-contact{
  margin-top:34px;
  padding:19px 21px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  backdrop-filter:blur(12px)
}
.faq-contact span{
  margin-bottom:5px;
  color:#a9998c;
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase
}
.faq-contact a{
  color:#fff;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
  transition:color .25s,transform .25s
}
.faq-contact a:hover{
  color:#dc9d62;
  transform:translateX(4px)
}
.faq-list{
  width:auto;
  margin:0;
  display:grid;
  gap:11px;
  border:0
}
.faq-list details{
  overflow:hidden;
  border:1px solid rgba(255,255,255,.11);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  transition:background .35s,border-color .35s,transform .35s
}
.faq-list details:hover{
  transform:translateX(5px);
  border-color:rgba(212,156,102,.45);
  background:rgba(255,255,255,.08)
}
.faq-list details[open]{
  border-color:rgba(212,156,102,.5);
  background:rgba(255,255,255,.095)
}
.faq-list summary{
  padding:20px 19px;
  display:grid;
  grid-template-columns:42px 1fr 30px;
  gap:15px;
  align-items:center;
  cursor:pointer;
  font-size:clamp(15px,1.15vw,19px);
  font-weight:700;
  line-height:1.35;
  list-style:none
}
.faq-list summary::-webkit-details-marker{
  display:none
}
.faq-number{
  color:#c98c55;
  font-size:clamp(11px,.75vw,14px);
  letter-spacing:.1em
}
.faq-list summary i{
  position:relative;
  width:28px;
  height:28px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  transition:transform .4s,background .3s
}
.faq-list summary i::before,.faq-list summary i::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:10px;
  height:1px;
  background:#fff;
  transform:translate(-50%,-50%);
  transition:transform .35s
}
.faq-list summary i::after{
  transform:translate(-50%,-50%) rotate(90deg)
}
.faq-list details[open] summary i{
  background:var(--gold);
  transform:rotate(180deg)
}
.faq-list details[open] summary i::after{
  transform:translate(-50%,-50%) rotate(0deg)
}
.faq-answer{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .5s ease,opacity .35s ease
}
.faq-list details[open] .faq-answer{
  max-height:220px;
  opacity:1
}
.faq-answer p{
  margin:0;
  padding:0 58px 24px 76px;
  color:#cfc5bc;
  font-size:clamp(14px,1vw,17px);
  line-height:1.65
}
.cta{
  position:relative;
  width:80vw;
  height:auto;
  margin:56px auto 0;
  padding:60px clamp(34px,6vw,90px);
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:50px;
  align-items:center;
  overflow:hidden;
  border-radius:32px;
  color:#fff;
  text-align:left;
  background:linear-gradient(125deg,#9f6734 0%,#bd824a 55%,#d5a06b 115%);
  box-shadow:0 24px 60px rgba(112,70,33,.24)
}
.cta::before,.cta::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none
}
.cta::before{
  width:310px;
  height:310px;
  right:-80px;
  top:-185px;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 0 0 42px rgba(255,255,255,.05),0 0 0 84px rgba(255,255,255,.035);
  animation:orb-spin 20s linear infinite
}
.cta::after{
  width:150px;
  height:150px;
  left:45%;
  bottom:-120px;
  background:rgba(255,255,255,.12);
  filter:blur(35px);
  animation:cta-pulse 5s ease-in-out infinite
}
.cta-copy,.cta-actions{
  position:relative;
  z-index:1
}
.cta .eyebrow{
  color:#fff
}
.cta-copy h2{
  margin:13px 0 15px;
  font:400 clamp(39px,4.5vw,63px)/.98 var(--serif);
  letter-spacing:-.04em
}
.cta-copy h2 em{
  color:#281a10;
  font-style:normal
}
.cta-copy p{
  max-width:620px;
  margin:0;
  color:#fff7ef;
  font-size:12px;
  line-height:1.65
}
.cta-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:17px
}
.button-light{
  min-height:55px;
  padding-inline:30px;
  color:#211711;
  background:#fff;
  box-shadow:0 12px 28px rgba(60,34,14,.2)
}
.button-light span{
  margin-left:18px;
  font-size:20px;
  transition:transform .3s
}
.button-light:hover span{
  transform:translateX(6px)
}
.cta-phone{
  color:#fff;
  text-decoration:none;
  font-size:10px
}
.cta-phone strong{
  font-size:12px
}
.site-footer{
  position:relative;
  margin-top:54px;
  color:#f6eee7;
  background:#11100e;
  overflow:hidden
}
.site-footer::before{
  content:"";
  position:absolute;
  right:-180px;
  bottom:-260px;
  width:520px;
  height:520px;
  border-radius:50%;
  background: #c6bbb2;
  pointer-events:none
}
.footer-main{
  position:relative;
  width:80vw;
  height:auto;
  margin:auto;
  padding:76px 0 62px;
  display:grid;
  grid-template-columns:1.4fr .7fr 1.15fr .75fr;
  gap:clamp(32px,5vw,82px);
  align-items:start
}
.footer-main h2{
  margin:5px 0 22px;
  color:#bdaea2;
  font-size:9px;
  letter-spacing:.17em;
  text-transform:uppercase
}
.footer-main p,.footer-main a,.footer-main small{
  font-size:11px;
  line-height:1.6
}
.footer-main a{
  display:block;
  color:#fff;
  text-decoration:none;
  transition:color .25s,transform .25s
}
.footer-main a:hover{
  color:#d79a60;
  transform:translateX(4px)
}
.footer-brand{
  text-align:left
}
.footer-brand>a{
  display:inline-block;
  padding:10px 16px;
  margin-bottom:22px;
  border-radius:14px;
  background:#f6f0eb;
  box-shadow:0 12px 28px rgba(0,0,0,.18)
}
.footer-brand>a:hover{
  transform:translateY(-3px)
}
.footer-brand img{
  width:185px;
  height:auto;
  margin:0;
  object-fit:contain
}
.footer-brand p{
  max-width:315px;
  margin:0;
  color:#aa9f96
}
.footer-nav{
  display:flex;
  flex-direction:column;
  gap:9px
}
.footer-nav h2{
  margin-bottom:13px
}
.footer-contact{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px
}
.footer-contact h2{
  margin-bottom:13px
}
.footer-contact .footer-phone{
  font:400 22px/1.2 var(--serif);
  color:#d79a60
}
.footer-contact small{
  margin-top:10px;
  color:#83786f
}
.footer-area p{
  margin:0 0 15px;
  color:#fff
}
.footer-area span{
  display:inline-block;
  padding:7px 10px;
  border:1px solid rgba(215,154,96,.32);
  border-radius:999px;
  color:#d79a60;
  font-size:8px;
  font-weight:700;
  line-height:1.35;
  text-transform:uppercase
}
.footer-bar{
  position:relative;
  width:80vw;
  height:auto;
  margin:auto;
  padding:21px 0;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  border-top:1px solid rgba(255,255,255,.1);
  color:#80776f;
  background:transparent;
  font-size:9px
}
.footer-bar strong{
  color:#c5b8ae;
  font-weight:400;
  letter-spacing:.06em
}
.footer-bar>a{
  justify-self:end;
  color:#d79a60;
  text-decoration:none;
  transition:transform .25s
}
.footer-bar>a:hover{
  transform:translateY(-3px)
}
.button{
  position:relative;
  overflow:hidden;
  isolation:isolate
}
.button::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-50%;
  bottom:-50%;
  left:-75%;
  width:45%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);
  animation:button-shine 4.8s ease-in-out infinite
}
.reveal{
  opacity:1;
  transform:none
}
.js .reveal{
  opacity:0;
  transform:translateY(32px) scale(.985);
  transition:opacity .8s ease var(--reveal-delay,0ms),transform .8s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms)
}
.js .reveal.is-visible{
  opacity:1;
  transform:none
}
:focus-visible{
  outline:3px solid #8d582d;
  outline-offset:3px
}
@media(max-width:1050px){
  .benefit-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .benefit-card-featured{
    grid-column:1/-1
  }
  .faq{
    grid-template-columns:1fr;
    gap:38px
  }
  .faq-intro{
    max-width:650px
  }
  .faq-contact{
    max-width:420px
  }
  .footer-main{
    grid-template-columns:1.25fr .75fr 1fr
  }
  .footer-area{
    grid-column:3
  }
  .footer-contact{
    grid-column:3;
    grid-row:1
  }
  .footer-nav{
    grid-row:1/3
  }
}
@media(max-width:800px){
  :root{
    --pad:24px
  }
  .site-header{
    height:auto
  }
  .header-inner{
    min-height:76px;
    grid-template-columns:120px 1fr auto;
    gap:12px
  }
  .logo img{
    width:115px
  }
  .site-header nav{
    display:none
  }
  .phone{
    font-size:11px
  }
  .site-header .button{
    padding-inline:14px;
    font-size:11px
  }
  .hero{
    height:auto;
    padding-bottom:30px;
    display:grid
  }
  .hero-copy{
    position:relative;
    width:100%;
    padding:25px var(--pad)
  }
  h1{
    font-size:clamp(42px,12vw,61px)
  }
  .hero-photo{
    position:relative;
    width:100%;
    height:55vw;
    max-height:460px;
    border-radius:0
  }
  .trust-grid{
    position:relative;
    right:auto;
    bottom:auto;
    left:auto;
    width:calc(100% - 32px);
    height:auto;
    margin:-20px auto 0;
    padding:18px;
    grid-template-columns:repeat(2,1fr)
  }
  .trust-grid article{
    padding:12px;
    border-bottom:1px solid var(--line)
  }
  .trust-grid article:nth-child(2){
    border-right:0
  }
  .how,.occasions,.process{
    height:auto
  }
  .section{
    padding:42px var(--pad)
  }
  .steps,.occasion-grid{
    grid-template-columns:repeat(2,1fr)
  }
  .steps{
    gap:30px
  }
  .steps article:not(:last-child)::after{
    display:none
  }
  .occasion-grid img{
    height:25vw;
    min-height:125px
  }
  .why{
    padding:64px var(--pad) 72px
  }
  .benefit-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px
  }
  .benefit-card{
    min-height:220px
  }
  .benefit-card-featured{
    grid-column:1/-1
  }
  .process-grid{
    grid-template-columns:repeat(2,1fr);
    gap:30px
  }
  .process-grid::before{
    display:none
  }
  .faq{
    padding:54px 32px;
    border-radius:24px
  }
  .cta{
    grid-template-columns:1fr;
    gap:30px;
    padding:50px 34px
  }
  .footer-main{
    padding:58px 0 44px;
    grid-template-columns:repeat(2,1fr);
    gap:38px
  }
  .footer-nav,.footer-contact,.footer-area{
    grid-column:auto;
    grid-row:auto
  }
  .footer-bar{
    grid-template-columns:1fr auto;
    gap:12px
  }
  .footer-bar strong{
    display:none
  }
}
@media(max-width:520px){
  .header-inner{
    grid-template-columns:1fr auto
  }
  .phone{
    display:none
  }
  .hero-copy{
    padding-top:18px
  }
  .kicker{
    margin-bottom:18px
  }
  .hero-photo{
    height:68vw
  }
  .trust-grid,.steps,.occasion-grid,.benefit-grid,.process-grid{
    grid-template-columns:1fr
  }
  .trust-grid article{
    border-right:0
  }
  .section-title.serif{
    font-size:25px
  }
  .occasion-grid{
    gap:26px
  }
  .occasion-grid img{
    height:55vw
  }
  .process-grid article{
    max-width:300px;
    margin:auto
  }
  .why{
    padding:54px 20px 62px
  }
  .section-heading>p{
    font-size:12px
  }
  .benefit-card{
    min-height:0;
    padding:27px 24px
  }
  .benefit-card-featured{
    grid-column:auto;
    display:flex;
    gap:20px
  }
  .benefit-card-featured .text-icon{
    font-size:55px
  }
  .faq{
    width:80vw;
    padding:42px 20px;
    border-radius:20px
  }
  .faq-intro h2{
    font-size:35px
  }
  .faq-list summary{
    grid-template-columns:32px 1fr 28px;
    padding:17px 12px;
    gap:9px;
    font-size:15px
  }
  .faq-answer p{
    padding:0 42px 20px 53px;
    font-size:14px
  }
  .faq-contact{
    padding:17px
  }
  .cta{
    padding:42px 24px;
    border-radius:22px
  }
  .cta-copy h2{
    font-size:39px
  }
  .button-light{
    width:100%
  }
  .footer-main{
    grid-template-columns:1fr;
    padding:48px 0 38px
  }
  .footer-bar{
    grid-template-columns:1fr;
    gap:9px;
    padding:18px 0;
    text-align:center
  }
  .footer-bar>a{
    justify-self:center
  }
  .footer-brand img{
    width:160px
  }
  .footer-contact .footer-phone{
    font-size:20px
  }
}
@keyframes icon-float{
  0%,100%{
    transform:translateY(0) rotate(0)
  }
  50%{
    transform:translateY(-7px) rotate(2deg)
  }
}
@keyframes orb-drift{
  0%{
    transform:translate3d(0,0,0) scale(1)
  }
  100%{
    transform:translate3d(-38px,42px,0) scale(1.12)
  }
}
@keyframes orb-spin{
  to{
    transform:rotate(360deg)
  }
}
@keyframes cta-pulse{
  0%,100%{
    transform:scale(.8);
    opacity:.45
  }
  50%{
    transform:scale(1.35);
    opacity:.8
  }
}
@keyframes button-shine{
  0%,68%{
    left:-75%
  }
  88%,100%{
    left:135%
  }
}
@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }
  .js .reveal{
    opacity:1;
    transform:none
  }
}
