/* The holding page's October 2026 visual and motion refinement. */
:root {
  --cch-whatsapp-green:#25d366;
  --cch-contact-radius:2rem;
  --cch-gallery-radius:clamp(1.5rem,3vw,2.75rem);
  --cch-mesh:
    linear-gradient(in srgb,rgba(9,22,27,.2),rgba(9,22,27,.2)),
    radial-gradient(ellipse 85% 75% at 46% 38% in srgb,rgba(7,19,25,.25),transparent 80%),
    radial-gradient(ellipse 80% 110% at -5% 105% in srgb,rgba(0,108,121,.75),transparent 68%),
    radial-gradient(ellipse 78% 80% at 100% -5% in srgb,rgba(91,117,22,.85),transparent 74%),
    radial-gradient(ellipse 45% 70% at 110% 110% in srgb,rgba(107,49,109,.7),transparent 75%),
    conic-gradient(from 200deg at 68% 35% in srgb,#042b35 0deg,#1a4523 90deg,#0c384f 180deg,#242045 270deg,#042b35 360deg);
}
body { background-color:#12272b; }
.cch-header::before { background:rgba(12,29,33,.72); border-bottom-color:rgba(228,243,233,.16); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.cch-header-scrolled .cch-header::before { background:rgba(12,29,33,.9); }
.cch-header .wp-block-navigation { font-weight:400; }
.cch-header .wp-block-navigation-item__content[aria-current=page],
.cch-header .wp-block-navigation-item__content:hover {
  background:transparent; border-color:var(--cch-primary); color:var(--cch-primary);
}
.cch-header .wp-block-navigation-item__content:hover { background:rgba(163,230,53,.08); }
.cch-header .wp-block-navigation__responsive-container.is-menu-open { background:#12272b!important; }

/* The outer block is the held plane; its editable inner block carries the copy. */
.cch-hero {
  position:relative; isolation:isolate; width:100%; max-width:none; margin:0;
  padding:clamp(2.75rem,5.5vw,4.75rem) clamp(1.25rem,4vw,3rem) 1.8rem;
  min-height:0; background:transparent;
}
.cch-hero::before {
  content:""; position:absolute; inset:0 0 calc(0px - var(--cch-gallery-radius)); z-index:-1; pointer-events:none; opacity:.026;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='white' filter='url(%23grain)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
}
.cch-hero::after {
  /* One continuous gradient also paints beneath the gallery's rounded corners. */
  content:""; position:absolute; inset:0 0 calc(0px - var(--cch-gallery-radius)); z-index:-2; pointer-events:none;
  background-color:#12272b;
  background-image:
    radial-gradient(ellipse 100% 85% at 100% 0% in srgb,transparent 48%,rgba(156,219,81,.06) 49%,rgba(156,219,81,.02) 54%,transparent 62%),
    radial-gradient(ellipse 70% 100% at 0% 100% in srgb,transparent 40%,rgba(28,206,202,.055) 42%,transparent 60%),
    var(--cch-mesh);
}
.cch-hero-inner { position:relative; max-width:960px; margin:0 auto; transform-origin:center 42%; }
.cch-hero h1 {
  max-width:940px; margin:0 auto 1.6rem; font-family:var(--wp--preset--font-family--display);
  font-size:clamp(2.55rem,6.1vw,4.55rem); line-height:1.06; font-weight:300;
  letter-spacing:.012em; text-transform:uppercase; text-wrap:balance;
}
.cch-hero .cch-lead {
  max-width:850px; margin:0 auto 1.15rem; font-family:var(--wp--preset--font-family--display);
  font-size:clamp(1.22rem,2vw,1.5rem); font-weight:400; line-height:1.5; text-wrap:pretty;
}
.cch-hero .cch-intro-detail {
  max-width:780px; margin:0 auto 1.8rem; font-family:var(--wp--preset--font-family--body);
  font-size:1rem; font-weight:400; line-height:1.7; color:#e6efec; text-wrap:pretty;
}
.cch-hero .cch-service-intro { margin-bottom:1rem; }
.cch-hero .cch-holding-note { font-size:.9rem; color:#c8d8ce; }
.cch-hero .wp-block-buttons { margin:0; }
.wp-element-button,.wp-block-button__link,.wpcf7-submit {
  font-family:var(--wp--preset--font-family--display); font-weight:400;
  font-size:1.1rem; line-height:1.5; letter-spacing:.035em; text-transform:none;
  padding:.95rem clamp(1.2rem,2.4vw,2rem); border-width:1px;
}
.cch-hero .wp-block-button__link { display:inline-flex; gap:.85rem; align-items:center; justify-content:center; box-shadow:0 6px 28px rgba(0,0,0,.16); }
.cch-hero .wp-block-button__link:hover { background:#b6ed68; border-color:#b6ed68; box-shadow:0 10px 36px rgba(0,0,0,.22),0 0 0 5px rgba(163,230,53,.08); }
/* Crop the SVG to its stroke width so transparent side space does not add to button padding.
   Keep its original vertical viewBox and height to preserve the arrow’s visual size. */
.cch-cta-icon {
  display:inline-block; flex:0 0 auto; width:calc(1.1em * 15.5 / 24); height:1.1em; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='4.25 0 15.5 24'%3E%3Cpath d='M12 4v16M5 13l7 7 7-7' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='4.25 0 15.5 24'%3E%3Cpath d='M12 4v16M5 13l7 7 7-7' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.wp-block-button__link:hover .cch-cta-icon { transform:translateY(3px); }
.cch-notice,.cch-hero-inner > .cch-archive-note { max-width:780px; margin-inline:auto; }
.cch-archive-note { background:rgba(6,20,23,.58); border:1px solid rgba(230,239,236,.19); color:#e6efec; font-size:.82rem; border-radius:1rem; }

/* The grid and original images stay intact inside one rising, full-width sheet. */
.cch-gallery-block {
  --cch-gallery-inset:calc(.75rem + 32px);
  position:relative; z-index:2; width:100%; padding:calc(var(--cch-gallery-inset) - 1px) 0 2.5rem;
  border-radius:var(--cch-gallery-radius) var(--cch-gallery-radius) 0 0;
  border-top:1px solid rgba(255,255,255,.8); background:#e8e2d5;
  box-shadow:0 -24px 70px rgba(1,13,18,.25),0 -2px 6px rgba(1,13,18,.08);
}
/* Extend the archive surface under the next panel's rounded corners.
   This changes only the painted background, preserving both sections' spacing. */
.cch-gallery-block:has(+ .cch-contact-section)::after {
  content:""; position:absolute; left:0; right:0; top:calc(100% - 1px);
  height:calc(var(--cch-contact-radius) + 1px); background:inherit; pointer-events:none;
}
/* The earlier nested-container insets, with matching space above the first image. */
@media(min-width:576px) { .cch-gallery-block { --cch-gallery-inset:calc(1.25rem + 32px); } }
@media(min-width:768px) { .cch-gallery-block { --cch-gallery-inset:calc(1.75rem + 32px); } }
@media(min-width:992px) { .cch-gallery-block { --cch-gallery-inset:calc(2.75rem + 32px); } }
@media(min-width:1200px) { .cch-gallery-block { --cch-gallery-inset:calc(3.75rem + 32px); } }
.cch-gallery-block a:focus-visible { outline-color:#244b28; }

/* A dated client voice closes the archive, directly before the footer invitation. */
.cch-testimonial {
  width:calc(100% - var(--cch-gallery-inset) - var(--cch-gallery-inset)); max-width:108rem;
  margin:3rem auto 0; padding:3rem 0 0;
  display:grid; grid-template-columns:minmax(150px,1fr) minmax(0,3.2fr); gap:2rem;
  border-top:1px solid rgba(24,55,49,.24); color:#183731;
}
.cch-testimonial .cch-testimonial-label {
  margin:.45rem 0 0; font-family:var(--wp--preset--font-family--body); font-size:.78rem;
  font-weight:400; line-height:1.6; letter-spacing:.1em; text-transform:uppercase; color:#3e544c;
}
.cch-testimonial .cch-client-quote { margin:0; padding:0; border:0; }
.cch-client-quote .cch-quote-lead {
  margin:0 0 1.25rem; font-family:var(--wp--preset--font-family--display);
  font-weight:300; font-size:clamp(1.65rem,3.1vw,2.5rem); line-height:1.3; text-wrap:pretty;
}
.cch-client-quote .cch-quote-detail {
  max-width:720px; margin:0 0 1.5rem; font-family:var(--wp--preset--font-family--body);
  font-size:1rem; line-height:1.7; color:#35483f;
}
.cch-client-quote cite { display:block; font-family:var(--wp--preset--font-family--body); font-style:normal; font-size:.9rem; line-height:1.7; color:#35483f; }
@media(max-width:767.98px) { .cch-testimonial { grid-template-columns:1fr; gap:1.25rem; } }

.home .cch-footer { margin-top:0; }
.cch-footer { position:relative; z-index:3; }
.cch-footer p,.cch-footer .cch-footer-cta { font-family:var(--wp--preset--font-family--body); font-weight:400; }
.cch-layers .cch-hero { position:sticky; top:var(--cch-hero-top,0px); z-index:1; }
.cch-layers .cch-hero-inner {
  transform:scale(var(--cch-depth-scale,1));
  filter:blur(var(--cch-depth-blur,0px)) brightness(var(--cch-depth-light,1));
}

/* A quiet pointer-following glow and an expanding press wave, behind link text. */
.cch-interactive { position:relative; isolation:isolate; overflow:hidden; }
.cch-interactive,.cch-button-shell {
  transition:background-color .25s,border-color .25s,color .25s,box-shadow .3s,transform .3s cubic-bezier(.22,1,.36,1);
}
.cch-interactive::before {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:-1; opacity:0;
  background:radial-gradient(circle 120px at var(--cch-pointer-x,50%) var(--cch-pointer-y,50%),rgba(255,255,255,.25),transparent 75%);
  transition:opacity .3s;
}
@media(hover:hover) { .cch-interactive:hover::before { opacity:1; } .wp-element-button.cch-interactive:hover { transform:translateY(-2px); } }
.cch-interactive.is-pressing,.wp-element-button.cch-interactive:active { transform:translateY(1px) scale(.975); }
.cch-ripple {
  position:absolute; pointer-events:none; z-index:-1; border-radius:50%;
  background:rgba(255,255,255,.35); border:1px solid rgba(255,255,255,.4);
  transform:translate(-50%,-50%) scale(0); animation:cch-ripple .75s cubic-bezier(.16,1,.3,1) forwards;
}
.cch-button-shell { display:inline-flex; position:relative; isolation:isolate; overflow:hidden; border-radius:3rem; vertical-align:middle; }
/* Keep submit focus on the button; CF7 also places its spinner in this shell. */
.cch-button-shell:focus-within { outline:none; }
.cch-button-shell .wpcf7-submit { margin:0; }
.cch-button-shell .cch-ripple { z-index:1; opacity:.5; }
@keyframes cch-ripple { 0% { transform:translate(-50%,-50%) scale(0); opacity:.65; } 100% { transform:translate(-50%,-50%) scale(1); opacity:0; } }
@keyframes cch-copy-arrive { from { opacity:0; transform:translateY(18px); filter:blur(5px); } to { opacity:1; transform:none; filter:blur(0); } }
@media(prefers-reduced-motion:no-preference) {
  .home .cch-hero-inner > * { animation:cch-copy-arrive .85s cubic-bezier(.22,1,.36,1) both; }
  .home .cch-hero-inner > :nth-child(2) { animation-delay:.08s; }
  .home .cch-hero-inner > :nth-child(3) { animation-delay:.16s; }
  .home .cch-hero-inner > :nth-child(4) { animation-delay:.24s; }
  .home .cch-hero-inner > :nth-child(5) { animation-delay:.32s; }
  .home .cch-hero-inner > :nth-child(6) { animation-delay:.4s; }
}
@media(max-width:767.98px) {
  .cch-hero { padding-block:2.75rem 1.8rem; }
  .cch-hero h1 { font-size:clamp(2.2rem,8.5vw,3.5rem); }
  .cch-hero .cch-intro-detail { font-size:.95rem; }
  .cch-hero .wp-block-button__link { padding-inline:1rem; gap:.65rem; letter-spacing:0; }
}
@media(prefers-reduced-motion:reduce) {
  .cch-layers .cch-hero { position:relative; top:auto; }
  .cch-layers .cch-hero-inner { transform:none; filter:none; }
  .cch-interactive,.cch-interactive:active,.wp-element-button.cch-interactive:hover,.wp-element-button.cch-interactive:active,.wp-block-button__link:hover .cch-cta-icon { transform:none; }
  .cch-ripple { display:none; }
}

/* A quiet secondary action, with verification in a native top-layer dialog. */
.cch-hero-actions {
  --cch-cta-size:calc(3.55rem + 2px);
  display:flex; align-items:center; justify-content:center; flex-wrap:nowrap;
  gap:1.5rem; width:fit-content; max-width:100%; margin:0 auto;
}
.cch-hero-actions > .wp-block-buttons { min-width:0; flex:0 1 auto; }
.cch-hero-actions .wp-block-button { display:flex; min-width:0; }
.cch-hero-actions > .cch-whatsapp-action { display:flex; align-items:center; }
.cch-whatsapp-action { flex:0 0 auto; margin:0; }
.cch-whatsapp-icon.wp-element-button {
  display:inline-flex; align-items:center; justify-content:center;
  width:3.65rem; height:3.65rem; box-sizing:border-box; padding:0;
  border:0; border-radius:.35rem;
  background:transparent; color:var(--cch-whatsapp-green); text-decoration:none; box-shadow:none;
}
.cch-whatsapp-icon.wp-element-button:hover {
  background:transparent; color:var(--cch-whatsapp-green); box-shadow:none;
}
/* Keep the brand glyph bare on hover/press; retain the generous target and focus outline. */
.cch-whatsapp-icon::before,.cch-whatsapp-icon .cch-ripple { display:none; }
.cch-whatsapp-glyph {
  display:inline-block; flex-shrink:0; width:1.75rem; height:1.75rem; background:var(--cch-whatsapp-green);
  -webkit-mask:url('../vendor/fontawesome/svgs/brands/whatsapp.svg') center/contain no-repeat;
  mask:url('../vendor/fontawesome/svgs/brands/whatsapp.svg') center/contain no-repeat;
}
html.cch-whatsapp-open,html.cch-whatsapp-open body { overflow:hidden; }
.cch-whatsapp-dialog {
  box-sizing:border-box; width:calc(100% - 2rem); max-width:460px; max-height:calc(100dvh - 2rem);
  margin:auto; padding:clamp(1.1rem,4vw,1.75rem); overflow:auto; overscroll-behavior:contain;
  border:1px solid rgba(163,230,53,.32); border-radius:1.5rem;
  background:#122d2e; color:#e6efec; box-shadow:0 25px 90px rgba(0,0,0,.5);
  font-family:var(--wp--preset--font-family--body); font-size:1rem; text-align:left;
}
.cch-whatsapp-dialog:not([open]) { display:none; }
.cch-whatsapp-dialog::backdrop { background:rgba(3,16,20,.78); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.cch-whatsapp-dialog-heading { display:flex; align-items:center; gap:.75rem; color:var(--cch-whatsapp-green); }
.cch-whatsapp-dialog-heading h2 { flex:1; margin:0; color:#fff; font-family:var(--wp--preset--font-family--display); font-size:clamp(1.2rem,4vw,1.5rem); font-weight:400; line-height:1.3; }
.cch-whatsapp-close { flex:0 0 44px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid rgba(230,239,236,.4); border-radius:50%; background:transparent; color:#e6efec; font:300 1.75rem/1 var(--wp--preset--font-family--body); cursor:pointer; transition:background .2s,color .2s; }
.cch-whatsapp-close:hover { background:var(--cch-primary); color:var(--cch-on-primary); }
.cch-whatsapp-dialog .cch-whatsapp-panel { margin-top:1.25rem; padding:0; border:0; background:none; font-size:.95rem; line-height:1.6; }
.cch-whatsapp-dialog .cch-whatsapp-widget { margin:1.25rem 0; }
.cch-whatsapp-dialog .cch-whatsapp-status { margin-bottom:1.1rem; font-size:.85rem; }
.cch-whatsapp-dialog .cch-whatsapp-privacy,.cch-whatsapp-dialog .cch-whatsapp-fallback { font-size:.8rem; }
.cch-whatsapp-dialog .cch-whatsapp-fallback { margin-bottom:0; }
.cch-whatsapp-dialog a:not(.wp-element-button) { color:#c4ec93; text-underline-offset:.18em; }
.cch-whatsapp-dialog .cch-whatsapp-continue { font-size:1rem; }
@media(max-width:400px) {
  .cch-whatsapp-icon.wp-element-button { width:3.25rem; height:3.25rem; }
  .cch-whatsapp-dialog-heading { gap:.5rem; }
}

/* Size each bare icon button and glyph to 80% of its neighbouring button.
   Cover removes the Font Awesome SVG's transparent top/bottom padding. */
.cch-hero-actions .cch-whatsapp-icon.wp-element-button,
.cch-header .cch-whatsapp-icon.wp-element-button {
  width:calc(var(--cch-cta-size) * .8); height:calc(var(--cch-cta-size) * .8);
}
.cch-hero-actions .cch-whatsapp-glyph,
.cch-header .cch-whatsapp-glyph {
  width:calc(var(--cch-cta-size) * .8); height:calc(var(--cch-cta-size) * .8);
  -webkit-mask-size:cover; mask-size:cover;
}

/* Give the main action its own full-width row on phones. */
@media(max-width:767.98px) {
  .cch-hero-actions { flex-direction:column; width:100%; }
  .cch-hero-actions > .wp-block-buttons,.cch-hero-actions .wp-block-button { width:100%; }
  .cch-hero-actions .wp-block-button__link { width:100%; box-sizing:border-box; white-space:nowrap; }
}
@media(max-width:400px) {
  .cch-hero-actions .wp-block-button__link { padding-inline:.5rem; gap:.5rem; }
}

/* Contact and a bare WhatsApp action stay together in the header. */
.cch-header .cch-header-links { --cch-cta-size:44px; align-items:center; flex-wrap:nowrap; flex-shrink:0; gap:.5rem; }
.cch-header-links > .cch-whatsapp-action { display:flex; align-items:center; }
.cch-header .cch-contact-nav .wp-block-navigation-item__content { border-color:rgba(163,230,53,.55); color:var(--cch-primary); }
@media(max-width:767.98px) {
  .cch-header { gap:.5rem; padding-inline:1rem; }
  .cch-header .cch-logo { width:clamp(9.25rem,42vw,15.3rem); max-width:calc(100% - 6.5rem); min-width:0; flex-shrink:1; }
  .cch-header .cch-contact-nav .wp-block-navigation-item__content { padding-inline:.75rem; }
}
.cch-contact-section {
  position:relative; z-index:3; margin:0; padding:4.5rem 3rem 5rem; border-radius:var(--cch-contact-radius) var(--cch-contact-radius) 0 0;
  scroll-margin-top:calc(var(--cch-admin-offset,0px) + 6rem); color:#282b22; color-scheme:light;
  background:radial-gradient(ellipse 54% 65% at 3% 78%,rgba(162,189,139,.48),transparent 80%),
    radial-gradient(ellipse 58% 65% at 94% 7%,rgba(248,245,213,.72),transparent 78%),
    linear-gradient(155deg,#e9eddf 8%,#dbe5cc 92%);
  box-shadow:0 -1px 0 rgba(64,83,40,.08); font-family:var(--wp--preset--font-family--body);
}
.cch-contact-section:focus { outline:none; }
.cch-contact-section .cch-page-intro { max-width:80rem; padding:0; margin:0 auto 3rem; }
.cch-contact-section .cch-page-intro h2 {
  max-width:21ch; margin:0; color:#28352b; font-family:var(--wp--preset--font-family--display); font-weight:300;
  font-size:clamp(2.5rem,5vw,4rem); line-height:1.1; text-transform:uppercase; text-wrap:balance;
}
.cch-contact-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr); align-items:start; gap:clamp(3rem,7vw,7rem); max-width:80rem; margin:0 auto; }
.cch-contact-enquiry { grid-column:2; grid-row:1; min-width:0; margin:0; }
.cch-contact-channels { grid-column:1; grid-row:1; min-width:0; margin:0; padding-top:1.5rem; }
.cch-contact-section .cch-form-panel {
  min-width:0; padding:2rem; border:1px solid rgba(224,235,209,.16); border-radius:1.75rem;
  background:#202c23; color:#f5f2e8; color-scheme:dark;
  scroll-margin-top:calc(var(--cch-admin-offset,0px) + 6rem);
  box-shadow:0 1.5rem 3.75rem -2.125rem rgba(26,44,29,.4);
}
.cch-contact-section h3 { margin:0 0 1.25rem; font-family:var(--wp--preset--font-family--body); font-size:1.5rem; font-weight:500; line-height:1.3; }
.cch-contact-section .cch-form-panel h3 { font-size:clamp(1.5rem,2.2vw,2rem); color:#f5f2e8; }
.cch-contact-section [hidden] { display:none!important; }
.cch-contact-options { display:grid; gap:.625rem; }
.cch-contact-option {
  display:grid; grid-template-columns:.5rem minmax(0,1fr) 1rem; align-items:center; gap:.875rem;
  width:100%; margin:0; padding:1.125rem; border:1px solid #809277; border-radius:1rem;
  background:#28352b; color:#f5f2e8; cursor:pointer; text-align:left;
  font:inherit; transition:background-color .2s,border-color .2s,transform .15s;
}
.cch-contact-option:hover { background:#354634; border-color:#b8c7a8; }
.cch-contact-option:active { transform:translateY(1px); background:#3b4c36; }
.cch-contact-dot { width:.35rem; height:.35rem; border-radius:50%; background:#becbb6; }
.cch-contact-option:first-child .cch-contact-dot { background:var(--cch-primary); }
.cch-contact-option strong { display:block; font-size:1rem; font-weight:500; line-height:1.4; }
.cch-contact-option-note { display:block; margin-top:.3rem; color:#d5ddcc; font-size:.82rem; line-height:1.5; }
.cch-contact-option > span:last-child { color:#becbb6; }
.cch-contact-section :is(button,a,input,textarea,select):focus-visible { outline:3px solid #426329; outline-offset:.25rem; }
.cch-contact-section .cch-form-panel :focus-visible { outline-color:var(--cch-primary); }
.cch-contact-section .cch-form-panel .wpcf7-submit:focus-visible { outline:3px solid var(--cch-on-primary); outline-offset:-6px; }
.cch-contact-section :is(#contact-choice-title,#contact-form-title):focus { outline:none; }
.cch-contact-back {
  min-height:2.5rem; padding:0; margin:0 0 1rem; border:0; background:transparent;
  color:#d5ddcc; cursor:pointer; font:inherit; font-size:.85rem; text-decoration:underline; text-underline-offset:.2em;
}
.cch-contact-form-help { margin:0 0 1.5rem; color:#d5ddcc; font-size:.9rem; line-height:1.6; }
.cch-contact-section .cch-contact-form-step { margin:0; }
.cch-contact-section .wpcf7 { font-size:.9rem; }
.cch-contact-section .wpcf7 :is(input:not([type=submit]),textarea,select) {
  background:#2c392e; color:#f5f2e8; border:1px solid #83937b; border-radius:.5rem;
}
.cch-contact-section .wpcf7 :is(input,textarea)::placeholder { color:#becbb6; opacity:1; }
.cch-contact-section .wpcf7 textarea { min-height:8rem; height:9rem; }
.cch-contact-section .wpcf7 label span,.cch-contact-section :is(.cch-form-guidance,.cch-form-privacy,.cch-form-verification-privacy,.cch-form-verification-status) { color:#d5ddcc; }
.cch-contact-section .wpcf7-submit { background:var(--cch-primary); border-color:var(--cch-primary); color:var(--cch-on-primary); font-family:inherit; font-size:1rem; font-weight:400; text-transform:none; letter-spacing:0; }
.cch-contact-section .wpcf7-submit:hover { background:#c4ec93; border-color:#c4ec93; }
.cch-contact-section .cch-form-panel a { color:#c4ec93; }
.cch-contact-next { margin:1.75rem 0 0; padding:1.5rem 2rem 0; border-top:1px solid rgba(57,75,34,.2); }
.cch-contact-section .cch-contact-next h3 { margin:0 0 .6rem; font-size:1.1rem; }
.cch-contact-next p { margin:0; color:#485140; font-size:.95rem; line-height:1.6; max-width:50ch; }
.cch-contact-channel { margin:0; padding:1.75rem 0; border-top:1px solid rgba(57,75,34,.2); }
.cch-contact-channel:first-child { padding-top:0; border:0; }
.cch-contact-section .cch-contact-channel h3 { display:flex; align-items:center; gap:.85rem; margin:0; }
.cch-contact-channel h3 > .fa-solid { width:1.7rem; flex:none; font-size:1.45rem; font-weight:900; text-align:center; color:#485140; }
.cch-contact-channel p { margin:1rem 0 0 2.55rem; max-width:34ch; color:#485140; font-size:.9rem; line-height:1.65; }
.cch-contact-channel a { color:#28352b; text-underline-offset:.2em; }
.cch-contact-channel-actions a { display:inline-flex; align-items:center; gap:.35rem; min-height:2.75rem; }
.cch-contact-section .cch-whatsapp-heading { margin:0; }
.cch-whatsapp-link { display:inline-flex; align-items:center; gap:.85rem; color:inherit; text-decoration:none; font:inherit; min-height:2.75rem; }
.cch-whatsapp-link:hover { text-decoration:underline; text-underline-offset:.2em; }
.cch-whatsapp-link .cch-whatsapp-glyph { width:1.7rem; height:1.7rem; flex:none; }
@media(max-width:991.98px) {
  .cch-contact-layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); gap:2rem; }
  .cch-contact-section .cch-form-panel { padding:1.5rem; }
}
@media(max-width:781px) {
  :root { --cch-contact-radius:1.5rem; }
  .cch-contact-section { padding:3rem 1.5rem; }
  .cch-contact-section .cch-page-intro { margin-bottom:2rem; }
  .cch-contact-layout { display:flex; flex-direction:column; gap:2.5rem; }
  .cch-contact-enquiry,.cch-contact-channels { width:100%; }
  .cch-contact-channels { padding:0; }
  /* Let the enquiry choices and form use the full screen width on phones. */
  .cch-contact-section .cch-form-panel {
    width:calc(100% + 3rem); max-width:none; margin-inline:-1.5rem;
    padding:1.25rem; border-inline:0; border-radius:0;
  }
  .cch-contact-option {
    padding:.9rem .75rem; gap:.3rem .6rem; align-items:start;
    grid-template-columns:minmax(0,1fr) .8rem;
  }
  .cch-contact-dot { display:none; }
  .cch-contact-option > span:nth-child(2) { display:contents; }
  .cch-contact-option strong { grid-column:1; grid-row:1; font-size:.95rem; }
  .cch-contact-option-note { grid-column:1 / -1; grid-row:2; margin-top:0; font-size:.78rem; }
  .cch-contact-option > span:last-child { grid-column:2; grid-row:1; line-height:1.33; }
  .cch-contact-next { padding:1.25rem .5rem 0; }
  .cch-contact-channel p { margin-left:2.55rem; }
}
@media(prefers-reduced-motion:reduce) { .cch-contact-option:active { transform:none; } }

/* Short route-specific starter questions, retaining the full-width mobile panel. */
.cch-contact-section .cch-field-hint { display:block; margin:0 0 .65rem; color:#d5ddcc; font-size:.8rem; line-height:1.5; }
.cch-contact-section .wpcf7 :is(input,select,textarea) { min-width:0; max-width:100%; }
.cch-contact-section .wpcf7 select { text-overflow:ellipsis; }
.cch-contact-back:disabled { opacity:.55; cursor:wait; }

/* Stop compositing the held hero once the opaque gallery has covered it.
   Opacity preserves reverse keyboard focus; the existing focus handler reveals it. */
.cch-layers .cch-hero.cch-hero-covered { opacity:0; pointer-events:none; }
.cch-layers .cch-hero.cch-hero-covered .cch-hero-inner { filter:none; transform:none; }
