/* =========================================================
   v4.1.0 PRICING PAGE
   ========================================================= */
.pricing-page h1,
.pricing-page h2,
.pricing-page h3{
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-weight:500;
}
.pricing-hero{
  padding:110px 0 96px;
  border-bottom:1px solid rgba(25,88,67,.15);
}
.pricing-hero-grid,
.pricing-two-column{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:80px;
  align-items:start;
}
.pricing-hero h1{
  margin:18px 0 0;
  font-size:clamp(44px,5vw,68px);
  line-height:1.35;
}
.pricing-hero-copy h2{
  margin:0 0 24px;
  color:var(--green);
  font-size:clamp(30px,3.2vw,44px);
  line-height:1.55;
}
.pricing-hero-copy p,
.pricing-two-column p{
  margin:0;
  color:#625f56;
  font-size:16px;
  line-height:2;
}
.pricing-plans,
.pricing-comparison,
.pricing-spot,
.pricing-addons{
  padding:100px 0;
}
.pricing-comparison,
.pricing-addons{
  background:rgba(214,220,202,.28);
}
.pricing-heading{
  grid-template-columns:.72fr 1fr 1.2fr;
  align-items:start;
}
.pricing-heading h2{
  margin:0;
}
.pricing-heading>p:last-child{
  margin:8px 0 0;
  color:#625f56;
  line-height:1.9;
}
.pricing-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.pricing-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:38px 30px 30px;
  background:#fffdf7;
  border:1px solid rgba(24,73,57,.18);
  border-top:4px solid rgba(24,73,57,.32);
}
.pricing-card--featured{
  border-color:var(--green);
  border-top-width:7px;
  box-shadow:0 18px 42px rgba(31,86,67,.12);
}
.pricing-recommendation{
  position:absolute;
  top:-18px;
  right:22px;
  margin:0;
  padding:8px 14px;
  background:var(--green);
  color:#fff;
  font:700 13px "Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  letter-spacing:.08em;
}
.pricing-plan-name{
  margin:0 0 12px;
  color:var(--green);
  font:700 17px "Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
}
.pricing-amount{
  display:flex;
  align-items:baseline;
  gap:4px;
  margin:0 0 24px;
  color:var(--ink);
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  white-space:nowrap;
}
.pricing-amount strong{
  color:var(--green);
  font-size:clamp(38px,3.4vw,52px);
  line-height:1;
  letter-spacing:-.03em;
}
.pricing-amount span{
  font-size:14px;
  font-weight:700;
}
.pricing-card h3{
  min-height:4.7em;
  margin:0 0 24px;
  color:#234d3f;
  font-size:22px;
  line-height:1.55;
}
.pricing-card ul{
  margin:0 0 24px;
  padding:22px 0 22px 1.3em;
  border-top:1px solid rgba(24,73,57,.14);
  border-bottom:1px solid rgba(24,73,57,.14);
  color:#45483f;
  line-height:1.9;
}
.pricing-card li::marker{
  color:var(--green2);
}
.pricing-card-copy{
  margin:0 0 26px;
  color:#625f56;
  font-size:14px;
  line-height:1.9;
}
.pricing-card-button{
  width:100%;
  min-height:58px;
  margin-top:auto;
  padding:13px 10px;
  background:var(--green);
  color:#fff;
  text-align:center;
  line-height:1.5;
}
.pricing-card-button:hover{
  background:#164634;
}
.pricing-notes{
  margin-top:28px;
  padding:22px 26px;
  background:rgba(255,255,255,.54);
  border-left:3px solid var(--green2);
  color:#4f524a;
  font-size:15px;
  line-height:1.85;
}
.pricing-notes p{
  margin:0;
}
.pricing-table-wrap{
  max-width:100%;
}
.pricing-table{
  width:100%;
  border-collapse:collapse;
  background:#fffdf7;
  color:#343830;
}
.pricing-table th,
.pricing-table td{
  padding:19px 18px;
  border:1px solid rgba(24,73,57,.16);
  text-align:left;
  line-height:1.6;
}
.pricing-table thead th{
  background:var(--green);
  color:#fff;
  font:700 14px "Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
}
.pricing-table tbody th{
  font-weight:600;
}
.pricing-table--comparison td{
  text-align:center;
  font-size:14px;
}
.pricing-check{
  display:inline-grid;
  width:23px;
  height:23px;
  margin-right:3px;
  place-items:center;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-weight:700;
}
.pricing-spot h2,
.pricing-addons h2{
  margin:14px 0 24px;
  color:var(--green);
  font-size:clamp(34px,4vw,52px);
  line-height:1.55;
}
.pricing-table--spot td{
  width:35%;
  font-weight:700;
  white-space:nowrap;
}
.pricing-table-note{
  margin-top:18px!important;
  font-size:14px!important;
  line-height:1.8!important;
}
.pricing-addons-copy{
  padding:34px 38px;
  background:#fffdf7;
  border-left:4px solid var(--green);
}
.pricing-addons-copy p+p{
  margin-top:16px;
}
.pricing-flow{
  background:var(--cream);
}
.pricing-final-cta h2{
  font-size:clamp(34px,4vw,52px);
  line-height:1.55;
}
.pricing-free-consultation{
  display:inline-block;
  margin:22px 0 0!important;
  padding:10px 16px;
  border:1px solid rgba(255,255,255,.55);
  color:#fff!important;
  font-weight:700;
  letter-spacing:.04em;
}
.services-pricing-link{
  margin-top:20px;
}
.pricing-page a:focus-visible,
.pricing-page button:focus-visible{
  outline:3px solid #d8a836;
  outline-offset:4px;
}

@media(max-width:1080px){
  .pricing-card-grid{
    gap:12px;
  }
  .pricing-card{
    padding:34px 22px 26px;
  }
  .pricing-card h3{
    font-size:20px;
  }
}

@media(max-width:900px){
  .pricing-hero{
    padding:80px 0 72px;
  }
  .pricing-hero-grid,
  .pricing-two-column,
  .pricing-heading{
    grid-template-columns:1fr;
    gap:34px;
  }
  .pricing-card-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .pricing-card{
    padding:36px 30px 30px;
  }
  .pricing-card h3{
    min-height:0;
  }
  .pricing-amount strong{
    font-size:48px;
  }
  .pricing-plans,
  .pricing-comparison,
  .pricing-spot,
  .pricing-addons{
    padding:76px 0;
  }
}

@media(max-width:600px){
  .pricing-hero{
    padding:64px 0 58px;
  }
  .pricing-hero h1{
    font-size:39px;
  }
  .pricing-hero-copy h2{
    font-size:31px;
  }
  .pricing-hero-copy p br{
    display:none;
  }
  .pricing-card{
    padding:34px 22px 24px;
  }
  .pricing-card--featured{
    margin-top:8px;
  }
  .pricing-amount strong{
    font-size:43px;
  }
  .pricing-notes{
    padding:19px 18px;
    font-size:14px;
  }
  .pricing-table--comparison thead{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
  }
  .pricing-table--comparison,
  .pricing-table--comparison tbody,
  .pricing-table--comparison tr,
  .pricing-table--comparison th,
  .pricing-table--comparison td{
    display:block;
    width:100%;
  }
  .pricing-table--comparison{
    background:transparent;
  }
  .pricing-table--comparison tr{
    margin-bottom:16px;
    background:#fffdf7;
    border:1px solid rgba(24,73,57,.16);
  }
  .pricing-table--comparison tbody th{
    padding:16px 18px;
    border:0;
    border-bottom:1px solid rgba(24,73,57,.16);
    background:var(--green);
    color:#fff;
  }
  .pricing-table--comparison td{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    min-height:54px;
    padding:13px 18px;
    border:0;
    border-bottom:1px solid rgba(24,73,57,.12);
    text-align:right;
  }
  .pricing-table--comparison td:last-child{
    border-bottom:0;
  }
  .pricing-table--comparison td::before{
    content:attr(data-label);
    margin-right:auto;
    padding-right:14px;
    color:#435248;
    font-weight:700;
    text-align:left;
  }
  .pricing-table--spot th,
  .pricing-table--spot td{
    padding:15px 12px;
    font-size:14px;
  }
  .pricing-table--spot td{
    width:39%;
    white-space:normal;
  }
  .pricing-addons-copy{
    padding:28px 22px;
  }
  .pricing-final-cta h2{
    font-size:32px;
  }
}


@media(min-width:901px){
  .pricing-page h1,
  .pricing-page h2,
  .pricing-page h3{
    text-wrap:balance;
    line-break:strict;
    overflow-wrap:normal;
  }

  .pricing-hero-grid,
  .pricing-two-column{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }

  .pricing-hero h1{
    font-size:clamp(44px,3.8vw,56px);
    white-space:nowrap;
  }

  .pricing-hero-copy h2 br,
  .pricing-hero-copy p br,
  .pricing-spot h2 br,
  .pricing-final-cta h2 br{
    display:none;
  }

  .pricing-spot h2,
  .pricing-addons h2,
  .pricing-final-cta h2{
    font-size:clamp(38px,3.35vw,48px);
  }
}
.dx-page .pricing-table { table-layout:fixed; }
.dx-page .pricing-table th { width:25%; }
.dx-page .pricing-table td { width:75%; white-space:normal; text-align:left; overflow-wrap:anywhere; }
.dx-page #dx-pricing { scroll-margin-top:120px; }
@media(max-width:600px){
  .dx-page .pricing-hero h1 { font-size:clamp(27px,7.3vw,39px); overflow-wrap:anywhere; }
  .dx-page .pricing-table thead { display:none; }
  .dx-page .pricing-table, .dx-page .pricing-table tbody, .dx-page .pricing-table tr, .dx-page .pricing-table th, .dx-page .pricing-table td { display:block; width:100%; }
  .dx-page .pricing-table th { background:var(--green); color:white; }
  .dx-page .pricing-table td { padding:20px; }
}
