/* Contact concept: personal invitation and a browsable topic selection. */
.contact-redesign.is-open { background: #1d3028; }
.contact-redesign .desktop-contact { grid-template-columns: minmax(15rem,.7fr) minmax(0,1.5fr); gap: 2.5rem; }
.contact-redesign .desktop-contact__brand { display: none !important; }
.contact-redesign .desktop-contact__direct { border: 0; background: none; padding: 1rem 0; justify-content: center; }
.contact-redesign .contact-invitation { margin: .5rem 0 1rem; font: 400 clamp(2.2rem,3.2vw,3.7rem)/1.05 'Poiret One',sans-serif; color: #e9f1e9; letter-spacing: -.035em; }
.contact-redesign .desktop-contact__prompt { color: #adc9b8; font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.contact-redesign .desktop-contact__hint { max-width: 23rem; margin: 0 0 1.5rem; font-size: .86rem; line-height: 1.6; color: #b9c7bf; }
.contact-redesign .hero-start__panel .desktop-contact__phone,
.contact-redesign .hero-start__panel .desktop-contact__mail { display: flex !important; align-items: center; justify-content: space-between !important; gap: 1rem; width: 100%; max-width: 25rem; min-height: 4.2rem; margin: 0; padding: .85rem 0; border: 0; border-bottom: 1px solid #ffffff30; border-radius: 0; background: transparent; color: #f1f5ef; font: 500 1.08rem/1.3 'DM Sans',sans-serif; letter-spacing: .01em; text-transform: none; }
.contact-redesign .hero-start__panel .desktop-contact__phone span { color: inherit; }
.contact-redesign .desktop-contact__phone small,
.contact-redesign .desktop-contact__mail small { display: block; margin-bottom: .3rem; color: #a8c7b6; font: 500 .6rem/1.3 'DM Sans',sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.contact-redesign .desktop-contact__phone b,
.contact-redesign .desktop-contact__mail b { font-size: 1.3rem; font-weight: 400; }
.contact-redesign .hero-start__panel .desktop-contact__phone:hover,
.contact-redesign .hero-start__panel .desktop-contact__mail:hover { color: #cce3bc; background: transparent; transform: none; }
.contact-redesign .desktop-contact__quick { background: #14271f; border: 0; border-radius: 1rem; padding: 1.5rem; color: #e9f1e9; }
.contact-redesign .desktop-contact__heading { align-items: center; gap: 1rem; margin-bottom: 1rem; }
.contact-redesign .desktop-contact__heading h2 { color: #243b2f; font-size: 2rem; }
.contact-redesign .desktop-contact__step { display: block; padding: 0; margin-top: .4rem; color: #52675b; font-size: .65rem; letter-spacing: .02em; white-space: normal; }
.contact-redesign .topic-controls { display: flex; gap: .4rem; }
.contact-redesign .hero-start__panel .topic-controls button { display: grid; place-items: center; width: 2.25rem; min-width: 2.25rem; height: 2.25rem; padding: 0; border: 1px solid #24443240; border-radius: 50%; color: #244432; background: transparent; font-size: 1rem; }
.contact-redesign .topic-controls button::after { content: none; }
.contact-redesign .topic-controls button:hover { background: #dce5d7; }
.contact-redesign .topic-controls button:disabled { opacity: .3; cursor: default; }
.contact-redesign .desktop-contact__topics { margin: 0; overflow: hidden; }
.contact-redesign .desktop-contact__topic-scroll { display: grid; grid-template-rows: repeat(2,auto); grid-auto-flow: column; grid-auto-columns: minmax(11.5rem,calc((100% - 1.2rem)/3)); gap: .6rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #829d89 #dde5d9; padding: .2rem .15rem .7rem; }
.contact-redesign .desktop-contact__topic-scroll label { position: relative; scroll-snap-align: start; }
.contact-redesign .desktop-contact__topic-scroll label > span { display: flex; flex-direction: column; justify-content: center; gap: .4rem; min-height: 5.1rem; height: 100%; padding: .8rem 1.6rem .8rem .8rem; border: 1px solid #24443230; border-radius: .6rem; background: #f5f7f1; color: #243b2f; font-size: .77rem; line-height: 1.2; letter-spacing: 0; white-space: normal; }
.contact-redesign .desktop-contact__topic-scroll strong { font-weight: 600; }
.contact-redesign .desktop-contact__topic-scroll small { color: #5b7063; font-size: .63rem; line-height: 1.35; }
.contact-redesign .desktop-contact__topic-scroll label:hover > span { background: #e3ecdd; border-color: #74937e; color: #243b2f; }
.contact-redesign .desktop-contact__topic-scroll input:checked + span { background: #294b38; color: #fff; border-color: #294b38; }
.contact-redesign .desktop-contact__topic-scroll input:checked + span small { color: #d0e0ce; }
.contact-redesign .desktop-contact__topic-scroll input:checked + span::after { content: '✓'; position: absolute; top: .6rem; right: .6rem; color: #d3e9b9; }
.contact-redesign .desktop-contact__topic-scroll input:focus-visible + span { outline: 2px solid #294b38; outline-offset: 2px; }
.contact-redesign .contact-selection { margin: .6rem 0 .7rem; color: #4d6255; font-size: .66rem; line-height: 1.4; }
.contact-redesign .contact-selection strong { font-weight: 600; color: #243b2f; }
.contact-redesign .desktop-contact__message-row { display: flex; flex-wrap: wrap; border: 1px solid #24443230; border-radius: .6rem; background: #fff; min-height: 0; }
.contact-redesign .desktop-contact__message-row textarea { width: 100%; min-height: 5rem; padding: .85rem 1rem; background: transparent; color: #243b2f; font-size: .85rem; }
.contact-redesign .desktop-contact__message-row textarea::placeholder { color: #748075; }
.contact-redesign.hero-start .hero-start__panel .desktop-contact__message-row button { min-width: 0; width: auto; min-height: 2.6rem; margin: 0 .6rem .6rem auto; padding: .7rem 1rem; border: 0; border-radius: 2rem; background: #294b38; color: #fff; font-size: .63rem; gap: 1rem; }
.contact-redesign.hero-start .hero-start__panel .desktop-contact__message-row button:hover { background: #3d654c; }
.contact-redesign .desktop-contact__note { color: #5b7063; margin: .6rem 0 0; font-size: .6rem; line-height: 1.4; }
@media (min-width:901px) {
  .contact-redesign, .contact-redesign.is-open { --contact-center-open-height: min(90svh,36rem); }
  .contact-redesign .hero-start__panel { top: 3.5rem; max-height: calc(90svh - 4.5rem); overflow-y: auto; padding-bottom: 1rem; }
}
@media (max-width:900px) {
  .contact-redesign:not(.is-return).is-open { background: #1d3028; }
  .contact-redesign .desktop-contact { display: flex; flex-direction: column; }
  .contact-redesign .desktop-contact__direct { display: none; }
  .contact-redesign .desktop-contact__quick { padding: 1rem; }
  .contact-redesign .desktop-contact__heading h2 { font-size: 1.8rem; }
  .contact-redesign .desktop-contact__topic-scroll { grid-auto-columns: 74%; }
  .contact-redesign .desktop-contact__message-row { display: flex; }
  .contact-redesign.hero-start .hero-start__panel .desktop-contact__message-row button { width: auto; min-height: 2.6rem; border: 0; }
}

.contact-redesign .desktop-contact__message-row { flex-shrink: 0; }
.contact-redesign.hero-start .hero-start__panel .desktop-contact__message-row button { height: auto; flex: 0 0 auto; }
.contact-redesign.is-open:hover, .contact-redesign.is-open:focus-within { background: #1d3028; }

/* Subtle green frosted glass; retain a solid fallback without backdrop filters. */
.contact-redesign.hero-start:not(.is-return).is-open {
  background: #1d3028;
  border-top-color: rgba(225,243,232,.3);
  box-shadow: 0 -1rem 3rem rgba(8,18,12,.2), inset 0 1px rgba(255,255,255,.08);
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .contact-redesign.hero-start:not(.is-return).is-open {
    background: rgba(24,43,34,.86);
    -webkit-backdrop-filter: blur(22px) saturate(.8);
    backdrop-filter: blur(22px) saturate(.8);
  }
}
.contact-redesign .contact-legal { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: .7rem; padding-top: .6rem; border-top: 1px solid #24443220; }
.contact-redesign .hero-start__panel .contact-legal a { display: inline-flex; min-height: 1.5rem; padding: .15rem 0; border: 0; color: #496052; font-size: .65rem; font-weight: 500; letter-spacing: .015em; text-transform: none; text-decoration: underline; text-underline-offset: .2em; }
.contact-redesign .hero-start__panel .contact-legal a::after { content: none; }
.contact-redesign .hero-start__panel .contact-legal a:hover { color: #172e20; }
.contact-redesign .hero-start__panel .contact-legal a:focus-visible { outline: 2px solid #294b38; outline-offset: 3px; }
@media (min-width:901px) {
  .contact-redesign, .contact-redesign.is-open { --contact-center-open-height: min(90svh,39rem); }
}

/* One invitation, with a three-row topic browser and labelled navigation. */
.contact-redesign .desktop-contact__heading { margin-bottom: .7rem; }
.contact-redesign .desktop-contact__step { margin: 0; font-size: .7rem; }
.contact-redesign .desktop-contact__topic-scroll { grid-template-rows: repeat(3,auto); grid-auto-columns: clamp(11.5rem,18vw,15.5rem); }
.contact-redesign .desktop-contact__topic-scroll label > span { min-height: 4.4rem; }
.contact-redesign .topic-controls { gap: .6rem; }
.contact-redesign .hero-start__panel .topic-controls button { display: inline-flex; justify-content: center; align-items: center; gap: .75rem; width: auto; min-width: 7rem; height: 2.75rem; padding: .7rem 1rem; border: 1px solid #294b38; border-radius: .6rem; font: 600 .7rem/1.2 'DM Sans',sans-serif; letter-spacing: .015em; text-transform: none; color: #294b38; background: #fff; transition: background .2s,color .2s,box-shadow .2s; }
.contact-redesign .hero-start__panel .topic-controls button[data-topic-next] { min-width: 10rem; background: #294b38; color: #fff; }
.contact-redesign .hero-start__panel .topic-controls button:hover:not(:disabled) { background: #dce8d6; color: #203d2b; box-shadow: 0 2px 8px #203d2b18; }
.contact-redesign .hero-start__panel .topic-controls button:focus-visible { outline: 2px solid #294b38; outline-offset: 3px; }
.contact-redesign .hero-start__panel .topic-controls button:disabled { opacity: .4; }
.contact-redesign .topic-controls button span { font-size: 1.1rem; line-height: 1; }
@media (max-width:900px) {
  .contact-redesign .desktop-contact__direct { display: block; padding: .25rem 0 .5rem; }
  .contact-redesign .contact-invitation { margin: .4rem 0 .7rem; font-size: 2rem; }
  .contact-redesign .contact-invitation br { display: none; }
  .contact-redesign .contact-invitation br::after { content: ' '; }
  .contact-redesign .desktop-contact__hint { max-width: none; margin-bottom: 0; font-size: .8rem; }
  .contact-redesign .hero-start__panel .desktop-contact__direct a { display: flex !important; }
  .contact-redesign .desktop-contact__heading { flex-direction: column; align-items: stretch; gap: .6rem; }
  .contact-redesign .topic-controls { display: grid; grid-template-columns: 1fr 1.35fr; }
  .contact-redesign .hero-start__panel .topic-controls button,
  .contact-redesign .hero-start__panel .topic-controls button[data-topic-next] { min-width: 0; padding-inline: .6rem; }
  .contact-redesign .desktop-contact__topic-scroll { grid-auto-columns: 84%; }
}

/* Use the desktop contact composition on mobile, stacked within the viewport. */
@media (max-width: 900px) {
  .contact-redesign.hero-start:not(.is-return).is-open { border-radius: 0; }
  .contact-redesign.hero-start:not(.is-return) .hero-start__panel .hero-start__panel-mobile { display: none; }
  .contact-redesign .desktop-contact__direct { border: 0; background: transparent; }
  .contact-redesign.hero-start:not(.is-return) .hero-start__panel .desktop-contact__phone,
  .contact-redesign.hero-start:not(.is-return) .hero-start__panel .desktop-contact__mail {
    min-height: 4.2rem;
    margin: 0;
    padding: .85rem 0;
    border: 0;
    border-bottom: 1px solid #ffffff30;
    border-radius: 0;
    background: transparent;
    color: #f1f5ef;
    font: 500 1.08rem/1.3 'DM Sans', sans-serif;
    letter-spacing: .01em;
    text-transform: none;
  }
  .contact-redesign .hero-start__panel .desktop-contact__direct a::after { content: none; }
  .contact-redesign .desktop-contact__topic-scroll { grid-auto-columns: minmax(11.5rem, 84%); }
}

/* Dark backing panel; keep topic cards and the message field light. */
.contact-redesign .desktop-contact__step,
.contact-redesign .contact-selection,
.contact-redesign .desktop-contact__note { color: #b9cbbf; }
.contact-redesign .contact-selection strong,
.contact-redesign .desktop-contact__heading h2 { color: #edf4ee; }
.contact-redesign .contact-legal { border-top-color: #ffffff26; }
.contact-redesign .hero-start__panel .contact-legal a { color: #b9cbbf; }
.contact-redesign .hero-start__panel .contact-legal a:hover { color: #fff; }
.contact-redesign .hero-start__panel .contact-legal a:focus-visible,
.contact-redesign .hero-start__panel .topic-controls button:focus-visible { outline-color: #b9dac8; }

/* Both delivery options share the selected topic and message. */
.contact-redesign .desktop-contact__send-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; width: 100%; padding: 0 .6rem .6rem; }
.contact-redesign.hero-start .hero-start__panel .desktop-contact__send-actions button { position: static; margin: 0; min-height: 44px; flex: 0 1 auto; }
@media (max-width: 480px) {
  .contact-redesign.hero-start .hero-start__panel .desktop-contact__send-actions button { flex: 1 1 auto; justify-content: center; }
}
