/* A successfully loaded head initializer opts in before body paint.
   With JavaScript unavailable or blocked, all three cards remain a readable list. */
.services-page .intro-aside > p { font-size: 15px; }
.pricing-carousel .card-top .eyebrow { font-size: 12px; letter-spacing: .1em; }
.pricing-carousel .card-top { min-height: 34px; }
.pricing-carousel .card-description { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.6; }
.pricing-carousel .price-label { font-size: 12px; letter-spacing: .1em; }
.pricing-carousel .price s { font-size: 16px; }
.pricing-carousel .package-saving { font-size: 13px; }
.pricing-carousel .package-inclusions { font-size: 15px; line-height: 1.6; }
.pricing-carousel .package-inclusions li { display: flex; align-items: flex-start; gap: 12px; padding-left: 0; margin-bottom: 12px; }
.pricing-carousel .package-inclusions li::before { content: none; }
/* Bespoke line drawings share one ink colour and optical scale with the type. */
.pricing-carousel .package-icon { display: block; flex: 0 0 28px; width: 28px; height: 28px; color: var(--ink); }
.pricing-carousel .package-symbol { overflow: visible; transform-box: fill-box; transform-origin: center; }
.pricing-carousel .card-description .package-icon { width: 34px; height: 34px; flex-basis: 34px; margin-top: -3px; }
.pricing-carousel .package-recommendation { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 99px; background: var(--ink); color: var(--paper); font-size: 12px; font-weight: 600; line-height: 1.4; white-space: nowrap; }
.pricing-carousel .package-recommendation .package-icon { flex-basis: 17px; width: 17px; height: 17px; color: inherit; }
.services-page .pricing-notes { font-size: 13px; line-height: 1.7; }
.services-page .request-action > p, .services-page .request-action noscript p { font-size: 13px; }
.price-amount .price-asterisk { align-self: flex-start; margin: 2px 1px 0 -11px; padding: 3px 3px 8px; font: 400 26px/1 var(--serif); }
.pricing-notes { justify-content: center; text-align: center; }
.pricing-ready .pricing-carousel .price-grid { display: grid; grid-template-columns: minmax(0, 520px); justify-content: center; gap: 0; padding: 40px 18% 44px; overflow: hidden; isolation: isolate; perspective: 1200px; touch-action: pan-y pinch-zoom; }
.pricing-ready .pricing-carousel .price-card { grid-area: 1 / 1; position: relative; display: flex; flex-direction: column; min-width: 0; padding: 34px 38px; background-color: var(--muted); border: 1px solid rgba(243, 242, 233, .4); box-shadow: 0 20px 50px rgba(0, 0, 0, .14); transform-origin: center; touch-action: pan-y pinch-zoom; }
.pricing-carousel.is-enhanced .price-card { cursor: pointer; transition: transform .65s cubic-bezier(.2, .75, .25, 1), background-color .4s ease, box-shadow .4s ease; }
.pricing-ready .pricing-carousel .price-card[data-position="active"] { z-index: 3; background-color: var(--paper); transform: translate(0, -6px) scale(1); box-shadow: 0 26px 48px rgba(0, 0, 0, .25), 0 5px 12px rgba(0, 0, 0, .12); }
.pricing-ready .pricing-carousel .price-card[data-position="previous"] { z-index: 1; transform: translate(-57%, 15px) rotate(-3deg) scale(.86); }
.pricing-ready .pricing-carousel .price-card[data-position="next"] { z-index: 1; transform: translate(57%, 15px) rotate(3deg) scale(.86); }
/* This is the same first frame used by editorial.js. The head initializer opts
   in before the body paints; WAAPI takes over before this pose is released. */
.pricing-ready.pricing-arrival-pending .pricing-carousel .price-card { translate: 0px 96px; rotate: 1 0 0 20deg; scale: .78; }
.pricing-ready.pricing-arrival-pending .pricing-carousel .price-card[data-position="previous"] { translate: 92px 96px; rotate: 1 0 -.65 20deg; }
.pricing-ready.pricing-arrival-pending .pricing-carousel .price-card[data-position="next"] { translate: -92px 96px; rotate: 1 0 .65 20deg; }
.pricing-ready .pricing-carousel .price-card:focus-visible { outline: 2px solid var(--paper); outline-offset: 5px; }
.pricing-ready .pricing-carousel .card-top { margin-bottom: 22px; flex-wrap: wrap; gap: 10px; }
.pricing-ready .pricing-carousel .price-card h2 { font-size: clamp(39px, 4vw, 53px); min-height: 2.15em; margin-bottom: 13px; }
.pricing-ready .pricing-carousel .card-description { min-height: 72px; max-width: none; font-size: 15px; }
.pricing-ready .pricing-carousel .price { border: 0; padding: 23px 0 25px; }
.pricing-ready .pricing-carousel .price strong { font-size: 64px; }
.pricing-ready .pricing-carousel .package-inclusions { margin-top: auto; padding-top: 20px; min-height: 168px; font-size: 15px; }
.pricing-carousel .delivery-highlight { align-items: center; margin: 6px -12px -3px; padding: 10px 12px; border-radius: 10px; background: rgba(61, 0, 0, .065); }
.pricing-carousel + .pricing-notes { margin-top: 10px; }
@media (hover: hover) {
  .pricing-ready .pricing-carousel .price-card:not([data-position="active"]):hover { background-color: var(--paper); box-shadow: 0 20px 50px rgba(0, 0, 0, .24); }
}
@media (min-width: 701px) {
  /* Keep the right-hand package identifiable in the half the centre card leaves exposed. */
  .pricing-ready .pricing-carousel .price-card[data-position="next"] h2,
  .pricing-ready .pricing-carousel .price-card[data-position="next"] .price { width: 50%; margin-left: auto; text-align: right; }
  .pricing-ready .pricing-carousel .price-card[data-position="next"] .price-amount { justify-content: flex-end; }
}
@media (max-width: 900px) {
  .pricing-ready .pricing-carousel .price-grid { padding-inline: 15%; }
  .pricing-ready .pricing-carousel .price-card { padding: 30px; }
  .pricing-ready .pricing-carousel .price-card h2 { font-size: 45px; }
}
@media (max-width: 700px) {
  /* Leave at least 48px of each rear card exposed for direct touch selection. */
  .pricing-ready .pricing-carousel .price-grid { grid-template-columns: minmax(0, 1fr); padding: 40px 48px 40px; margin-inline: calc(12px - 7vw); }
  .pricing-ready .pricing-carousel .price-card { padding: 27px 22px; }
  .pricing-ready .pricing-carousel .price-card[data-position="previous"] { transform: translate(-42%, 10px) rotate(-2deg) scale(.9); }
  .pricing-ready .pricing-carousel .price-card[data-position="next"] { transform: translate(42%, 10px) rotate(2deg) scale(.9); }
  .pricing-ready.pricing-arrival-pending .pricing-carousel .price-card { translate: 0px 68px; }
  .pricing-ready.pricing-arrival-pending .pricing-carousel .price-card[data-position="previous"] { translate: 42px 68px; }
  .pricing-ready.pricing-arrival-pending .pricing-carousel .price-card[data-position="next"] { translate: -42px 68px; }
  .pricing-ready .pricing-carousel .price-card h2 { font-size: clamp(33px, 9vw, 46px); }
  .pricing-ready .pricing-carousel .card-description { min-height: 96px; }
  .pricing-ready .pricing-carousel .card-top { min-height: 64px; align-content: flex-start; }
  .pricing-ready .pricing-carousel .price-amount { gap: 10px; }
  .pricing-ready .pricing-carousel .price strong { font-size: 56px; }
}
@media (max-width: 380px) {
  .pricing-ready .pricing-carousel .price-card { padding-inline: 16px; }
  .pricing-ready .pricing-carousel .price strong { font-size: 50px; }
}
@media (prefers-reduced-motion: reduce) {
  .pricing-ready .pricing-carousel .price-card { transition: none; }
  .pricing-ready.pricing-arrival-pending .pricing-carousel .price-card[data-position] { translate: none; rotate: none; scale: none; }
}

/* On phones, readable packages form a native horizontal rail. The same radio
   group and original order remain intact, with the recommended second selected. */

  .pricing-ready .pricing-carousel .price-grid { position: relative; display: flex; justify-content: flex-start; align-items: stretch; gap: 14px; padding: 16px 24px 24px; margin-inline: -24px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 24px; scrollbar-width: none; overscroll-behavior-x: contain; perspective: none; touch-action: auto; }
  .pricing-ready .pricing-carousel .price-grid::-webkit-scrollbar { display: none; }
  .pricing-ready .pricing-carousel .price-card[data-position] { flex: 0 0 calc(100% - 16px); grid-area: auto; width: auto; min-width: 0; padding: 27px 24px; border: 1px solid transparent; border-radius: 15px; background-color: var(--paper); transform: none; translate: none; rotate: none; scale: none; box-shadow: none; scroll-snap-align: center; scroll-snap-stop: always; touch-action: auto; transition: border-color .2s ease, background-color .2s ease; }
  .pricing-ready .pricing-carousel .price-card[data-position="active"] { border-color: var(--muted); box-shadow: 0 0 0 2px var(--muted); }
  .pricing-ready .pricing-carousel .card-top { min-height: 56px; align-content: flex-start; align-items: flex-start; gap: 8px; margin-bottom: 16px; }
  .pricing-carousel .card-top .eyebrow { font-size: 11px; }
  .pricing-carousel .package-recommendation { font-size: 11px; padding: 6px 9px; }
  .pricing-ready .pricing-carousel .price-card h2 { min-height: 2.1em; width: auto; margin: 0 0 16px; font-size: clamp(37px, 10vw, 48px); line-height: 1.02; text-align: left; }
  .pricing-ready .pricing-carousel .card-description { min-height: 72px; font-size: 14px; line-height: 1.6; gap: 10px; }
  .pricing-ready .pricing-carousel .price { width: auto; margin: 0; padding: 20px 0; text-align: left; }
  .pricing-ready .pricing-carousel .price-amount { justify-content: flex-start; gap: 14px; }
  .pricing-ready .pricing-carousel .price strong { font-size: 59px; }
  .pricing-ready .pricing-carousel .package-inclusions { min-height: 180px; padding-top: 14px; font-size: 14px; line-height: 1.6; }
  .pricing-carousel .package-inclusions li { gap: 10px; margin-bottom: 13px; }
  .pricing-carousel .package-icon { flex-basis: 25px; width: 25px; height: 25px; }
  .pricing-carousel + .pricing-notes { margin-top: 0; font-size: 12px; }

@media (max-width: 360px) {
  .pricing-ready .pricing-carousel .price-grid { margin-inline: -20px; padding-inline: 20px; scroll-padding-inline: 20px; }
  .pricing-ready .pricing-carousel .price-card[data-position] { padding-inline: 20px; flex-basis: calc(100% - 12px); }
  .pricing-ready .pricing-carousel .price strong { font-size: 54px; }
}
@media (min-width: 701px) and (max-width: 1000px) and (pointer: coarse) {
  .pricing-ready .pricing-carousel .price-grid { padding-inline: calc((100% - 420px) / 2); scroll-padding-inline: calc((100% - 420px) / 2); }
  .pricing-ready .pricing-carousel .price-card[data-position] { flex-basis: 420px; }
}
.mobile-package-hint { display: none; }

  .services-section { display: flex; flex-direction: column; }
  .services-section > .page-intro { order: 0; }
  .services-section > .package-offer { order: 1; }
  .services-section > .mobile-package-hint { order: 2; }
  .services-section > .pricing-carousel { order: 3; min-width: 0; }
  .services-section > .pricing-notes { order: 4; }
  .services-section > .package-value-intro { order: 5; margin-top: 32px; }
  .pricing-ready .mobile-package-hint { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 11px; line-height: 1.6; letter-spacing: .015em; padding-block: 2px 2px; }
  .mobile-package-hint > span { font-size: 23px; line-height: 1; }

