/* Public design controls share this stylesheet with the editor's live preview. */
body.cms-design .demo-bar{background:var(--cms-primary);color:var(--cms-on-primary)}
body.cms-design .contact-section{background:var(--cms-primary);color:var(--cms-on-primary);color-scheme:normal}
body.cms-design .contact-section .enquiry-form input,body.cms-design .contact-section .enquiry-form select{color:var(--cms-on-primary);border-color:var(--cms-hero-line);background:transparent}
body.cms-design .enquiry-form input::placeholder{color:var(--cms-on-primary);opacity:.75}
body.cms-design .contact-section .enquiry-form option{background:var(--paper);color:var(--ink)}
body.cms-design .contact-section .enquiry-form .button{background:var(--cms-highlight);color:var(--cms-on-highlight);border-color:var(--cms-highlight)}
body.cms-design .m-hero{background:var(--cms-primary);color:var(--cms-on-primary)}
body.cms-design .m-hero h1,body.cms-design .m-contact,body.cms-design .m-hero-bottom a{color:var(--cms-on-primary)}
body.cms-design .m-hero h1 em{color:var(--cms-hero-accent)}
body.cms-design .m-eyebrow,body.cms-design .m-intro,body.cms-design .m-proof,body.cms-design .m-portrait figcaption,body.cms-design .m-visual-note,body.cms-design .m-hero-bottom{color:var(--cms-hero-muted)}
body.cms-design .m-eyebrow>span{background:var(--cms-hero-accent)}
body.cms-design .m-primary{background:var(--cms-highlight);border-color:var(--cms-highlight);color:var(--cms-on-highlight)}
body.cms-design .m-primary:hover{background:var(--cms-highlight);border-color:var(--cms-highlight);filter:brightness(1.04)}
body.cms-design .m-contact,body.cms-design .m-proof-icon,body.cms-design .m-portrait figcaption,body.cms-design .m-hero-bottom{border-color:var(--cms-hero-line)}
body.cms-design .m-contact:hover{border-color:var(--cms-on-primary)}
body.cms-design .m-proof:hover{color:var(--cms-on-primary)}
body.cms-design .m-portrait figcaption>span{color:var(--cms-hero-muted)}
body.cms-design .m-hero a:focus-visible{outline-color:var(--cms-on-primary)}
body.cms-design .social-typographic{background:var(--cms-primary);color:var(--cms-on-primary)}
body.cms-design .m-photo{background:var(--panel)}
body.cms-design .button,body.cms-design .formation-selector button,body.cms-design .archive-filters button,body.cms-design .enquiry-form input,body.cms-design .enquiry-form select,body.cms-design .menu-toggle{border-radius:var(--cms-radius)}
body.cms-design .m-photo,body.cms-design .classic-photo>img,body.cms-design .service-photo,body.cms-design .gallery-button,body.cms-design .social-reel-cover,body.cms-design .video-poster,body.cms-design .musician>img,body.cms-design .cms-block-figure img{border-radius:var(--cms-radius)}
body.cms-design[data-cms-font=serif] h1,body.cms-design[data-cms-font=serif] h2,body.cms-design[data-cms-font=serif] h3{font-family:var(--display);letter-spacing:-.025em}
body.cms-design[data-cms-font=sans] h1,body.cms-design[data-cms-font=sans] h2,body.cms-design[data-cms-font=sans] h3,body.cms-design[data-cms-font=sans] h1 em,body.cms-design[data-cms-font=sans] h2 em,body.cms-design[data-cms-font=sans] h3 em{font-family:var(--sans);letter-spacing:-.045em}
body.cms-design[data-cms-font=serif] .m-hero h1{font-size:clamp(58px,6.4vw,90px);line-height:.98}
body.cms-design[data-cms-font=sans] .classic-intro h1{font-size:clamp(58px,7vw,94px);line-height:1.03}
body.cms-design .cms-classic-intro{white-space:pre-line}
body.cms-design .cms-classic-hero{padding-bottom:16px}
body.cms-design .classic-photo img{max-height:455px;object-position:50% 20%}
body.cms-design .cms-classic-hero .classic-intro h1{overflow-wrap:anywhere}
body.cms-design .m-hero h1{overflow-wrap:anywhere}
body.cms-design .cms-block{padding-block:62px}
body.cms-design .cms-block-title{font-size:clamp(32px,4vw,50px);margin-bottom:22px;overflow-wrap:anywhere;white-space:pre-line}
body.cms-design .cms-block-body{font-size:16px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere;max-width:820px}
body.cms-design .cms-block[data-align=center]{text-align:center}
body.cms-design .cms-block[data-align=center] .cms-block-body,body.cms-design .cms-block[data-align=center] .cms-block-figure,body.cms-design .cms-block[data-align=center] .cms-faq-list{margin-inline:auto}
body.cms-design .cms-block-figure{max-width:980px}
body.cms-design .cms-block-figure img{width:100%;max-height:680px;object-fit:contain;background:var(--panel)}
body.cms-design .cms-block-figure figcaption{font-size:13px;margin-top:14px}
body.cms-design a.cms-block-button{margin-top:24px}
body.cms-design a.cms-block-button:first-child{margin-top:0}
body.cms-design a.cms-block-button{background:var(--cms-primary);color:var(--cms-on-primary);border-color:var(--cms-primary)}
body.cms-design .cms-block-faq .cms-block-title{margin-bottom:28px}
body.cms-design .cms-faq-list{max-width:880px;text-align:left}
body.cms-design .cms-faq{border-block-end:1px solid var(--line);padding-block:18px}
body.cms-design .cms-faq:first-child{border-block-start:1px solid var(--line)}
body.cms-design .cms-faq summary{cursor:pointer;font-size:17px;line-height:1.6;overflow-wrap:anywhere;padding-right:12px}
body.cms-design .cms-faq .cms-block-body{padding-block:15px 4px;font-size:15px}
body.cms-design .cms-block-divider{padding-block:20px}
body.cms-design .cms-divider{border:0;border-top:1px solid var(--line);margin:0}
@media(max-width:760px){
  body.cms-design .cms-block{padding-block:38px}
  body.cms-design .cms-block-title{margin-bottom:17px}
  body.cms-design .cms-block-body{font-size:14px;line-height:1.8}
  body.cms-design .cms-block-figure figcaption{font-size:12px}
  body.cms-design .cms-faq summary{font-size:16px}
  body.cms-design .cms-faq .cms-block-body{font-size:14px}
  body.cms-design .cms-block-divider{padding-block:15px}
  body.cms-design .classic-photo img{max-height:400px;aspect-ratio:1.35}
  body.cms-design[data-cms-font=serif] .m-hero h1{font-size:clamp(53px,13.2vw,82px)}
  body.cms-design[data-cms-font=sans] .classic-intro h1{font-size:clamp(43px,10vw,72px)}
}

/* Optional homepage layouts. Existing text, links and portraits remain CMS content. */
body.cms-design[data-cms-homepage-variant=proof] .m-hero,
body.cms-design[data-cms-homepage-variant=trust] .m-hero{padding-top:52px}
body.cms-design[data-cms-homepage-variant=proof] .m-hero-grid,
body.cms-design[data-cms-homepage-variant=trust] .m-hero-grid{gap:42px;padding-bottom:42px;grid-template-columns:minmax(0,1.03fr) minmax(0,1fr)}
body.cms-design[data-cms-homepage-variant=proof] .m-intro,
body.cms-design[data-cms-homepage-variant=trust] .m-intro{max-width:530px;font-size:18px;line-height:1.55;margin:24px 0}
body.cms-design[data-cms-homepage-variant=proof] .m-proof,
body.cms-design[data-cms-homepage-variant=trust] .m-proof,
body.cms-design[data-cms-homepage-variant=proof] .m-visual-note,
body.cms-design[data-cms-homepage-variant=trust] .m-visual-note,
body.cms-design[data-cms-homepage-variant=proof] .m-hero-bottom,
body.cms-design[data-cms-homepage-variant=trust] .m-hero-bottom{display:none}
body.cms-design[data-cms-homepage-variant=proof] .m-visual,
body.cms-design[data-cms-homepage-variant=trust] .m-visual{padding-bottom:0}
body.cms-design[data-cms-homepage-variant=proof] .m-actions,
body.cms-design[data-cms-homepage-variant=trust] .m-actions{align-items:stretch;gap:14px}
body.cms-design[data-cms-homepage-variant=proof] .m-actions a,
body.cms-design[data-cms-homepage-variant=trust] .m-actions a{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:15px 20px;font-size:14px;line-height:1.4;border:1px solid var(--cms-hero-line);border-radius:var(--cms-radius);text-decoration:none}
body.cms-design[data-cms-homepage-variant=proof] .m-actions .m-primary{border-color:var(--cms-highlight)}
body.cms-design[data-cms-homepage-variant=trust] .m-actions .m-contact{background:var(--cms-highlight);color:var(--cms-on-highlight);border-color:var(--cms-highlight)}
body.cms-design[data-cms-homepage-variant=trust] .m-actions .m-primary{background:transparent;color:var(--cms-on-primary);border-color:var(--cms-hero-line);font-weight:400}
body.cms-design[data-cms-homepage-variant=trust] .site-nav .nav-contact{background:var(--cms-primary);color:var(--cms-on-primary);border:1px solid var(--cms-primary);padding:13px 18px;border-radius:var(--cms-radius)}
body.cms-design[data-cms-homepage-variant=trust] .m-portrait{padding-top:0}
body.cms-design[data-cms-homepage-variant=trust] .m-photo{aspect-ratio:.56}
body.cms-design .cms-hero-ratings{margin-bottom:29px}
body.cms-design .cms-source-rating{display:block;min-width:0;color:inherit;text-decoration:none;max-width:100%}
body.cms-design .cms-rating-top{display:flex;align-items:center;gap:16px}
body.cms-design .cms-rating-stars{display:inline-flex;gap:3px;color:var(--cms-hero-star);flex-shrink:0}
body.cms-design .cms-rating-stars svg{display:block;width:24px;height:24px;overflow:visible}
body.cms-design .cms-rating-score{font:600 31px/1.1 var(--display);white-space:nowrap}
body.cms-design .cms-rating-source{display:block;font-size:16px;line-height:1.5;margin-top:7px}
body.cms-design .cms-rating-source strong{font-weight:500}
body.cms-design .cms-rating-source .cms-rating-platform{text-decoration:underline;text-underline-offset:4px}
body.cms-design .cms-rating-secondary{display:block;color:inherit;width:fit-content;max-width:100%;font-size:14px;line-height:1.6;margin-top:12px;text-decoration:none;opacity:.9}
body.cms-design .cms-source-rating:hover .cms-rating-platform,
body.cms-design .cms-rating-secondary:hover{text-decoration:underline;text-underline-offset:4px}
body.cms-design .cms-review-aggregate{min-width:0;padding-top:20px;border-top:1px solid var(--line)}
body.cms-design .cms-review-aggregate .cms-rating-top{align-items:flex-start;flex-direction:column;gap:7px}
body.cms-design .cms-review-aggregate .cms-rating-score{font-size:72px;letter-spacing:-.04em;line-height:1}
body.cms-design .cms-review-aggregate .cms-rating-stars{color:var(--cms-paper-star)}
body.cms-design .cms-review-aggregate .cms-rating-stars svg{width:30px;height:30px}
body.cms-design .cms-review-aggregate .cms-rating-source{font-size:14px;margin-top:12px}
body.cms-design .cms-review-aggregate .cms-rating-secondary{font-size:14px}
body.cms-design[data-cms-homepage-variant=proof] .review-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:32px 60px}
body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured{justify-content:center;padding-left:35px;border-left:1px solid var(--line);border-top:0}
body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured blockquote{font:italic 34px/1.25 var(--display);letter-spacing:-.02em;flex:0;margin-bottom:20px}
body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured .rating,
body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured .review-meta,
body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured .review-meta a,
body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured .review-date{font-size:14px}
body.cms-design .cms-trust-rail{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}
body.cms-design .cms-trust-rail-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:75px;padding-block:15px}
body.cms-design .cms-source-rating-rail{display:flex;align-items:center;gap:14px}
body.cms-design .cms-source-rating-rail+.cms-source-rating-rail{border-left:1px solid var(--line);padding-left:24px}
body.cms-design .cms-source-rating-rail .cms-rating-platform{font-size:16px;font-weight:600}
body.cms-design .cms-source-rating-rail .cms-rating-top{gap:12px}
body.cms-design .cms-source-rating-rail .cms-rating-stars{color:var(--cms-paper-star);gap:1px}
body.cms-design .cms-source-rating-rail .cms-rating-stars svg{width:18px;height:18px}
body.cms-design .cms-source-rating-rail .cms-rating-score{font:600 16px/1.3 var(--sans)}
body.cms-design .cms-source-rating-rail .cms-rating-source{font-size:16px;margin:0}
body.cms-design .cms-all-reviews{font-size:16px;text-underline-offset:5px}
body.cms-design .cms-hero-quote{margin:30px 0 0;padding-top:20px;border-top:1px solid var(--cms-hero-line)}
body.cms-design .cms-hero-quote blockquote{margin:0;font:italic 26px/1.25 var(--display);color:var(--cms-on-primary);letter-spacing:-.01em}
body.cms-design .cms-hero-quote figcaption{margin-top:10px;font-size:14px;line-height:1.7;color:var(--cms-hero-muted)}
body.cms-design .cms-hero-quote figcaption a{text-decoration:none}
body.cms-design .cms-hero-quote figcaption a:hover{text-decoration:underline}
body.cms-design .cms-homepage-process{padding-block:52px 56px;border-bottom:1px solid var(--line)}
body.cms-design .cms-process-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:42px;align-items:end}
body.cms-design .cms-process-intro .eyebrow{font-size:10px;margin-bottom:20px}
body.cms-design .cms-process-intro h2{font-size:clamp(35px,3.6vw,50px);line-height:1.03;letter-spacing:-.04em}
body.cms-design .cms-process-intro h2 em{color:var(--cms-paper-star)}
body.cms-design .cms-process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;margin:0;padding:0}
body.cms-design .cms-process-steps li{min-width:0}
body.cms-design .cms-process-number{display:block;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:20px}
body.cms-design .cms-process-steps h3{font:500 16px/1.4 var(--sans);letter-spacing:-.02em;margin:0 0 9px;overflow-wrap:anywhere}
body.cms-design .cms-process-steps p{font-size:13px;line-height:1.7}
@media(min-width:1240px){
  body.cms-design[data-cms-homepage-variant=proof] :is(.site-header,.demo-inner,.m-hero-grid,#recensioni),
  body.cms-design[data-cms-homepage-variant=trust] :is(.site-header,.demo-inner,.m-hero-grid,.cms-trust-rail-inner,.cms-process-inner){width:calc(100% - 112px);max-width:1320px}
  body.cms-design[data-cms-homepage-variant=proof] .m-hero h1,
  body.cms-design[data-cms-homepage-variant=trust] .m-hero h1{font-size:88px}
  body.cms-design[data-cms-homepage-variant=proof] .m-actions a,
  body.cms-design[data-cms-homepage-variant=trust] .m-actions a{flex:1 1 0;min-height:62px;font-size:16px}
}
@media(max-width:1200px){
  body.cms-design .cms-source-rating-rail{display:grid;grid-template-columns:auto auto;gap:5px 14px}
  body.cms-design .cms-source-rating-rail .cms-rating-platform{grid-column:1 / -1}
  body.cms-design .cms-trust-rail-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  body.cms-design .cms-all-reviews{grid-column:1 / -1;width:fit-content}
  body.cms-design[data-cms-homepage-variant=proof] .m-hero-grid,
  body.cms-design[data-cms-homepage-variant=trust] .m-hero-grid{gap:30px}
  body.cms-design .cms-process-inner{gap:28px}
  body.cms-design .cms-process-steps{gap:20px}
}
@media(max-width:760px){
  body.cms-design[data-cms-homepage-variant=proof] .m-hero,
  body.cms-design[data-cms-homepage-variant=trust] .m-hero{padding-top:28px}
  body.cms-design[data-cms-homepage-variant=proof] .m-hero-grid,
  body.cms-design[data-cms-homepage-variant=trust] .m-hero-grid{grid-template-columns:1fr;gap:30px;padding-bottom:30px}
  body.cms-design[data-cms-homepage-variant=proof] .m-eyebrow,
  body.cms-design[data-cms-homepage-variant=trust] .m-eyebrow{margin-bottom:18px}
  body.cms-design[data-cms-homepage-variant=proof] .m-intro,
  body.cms-design[data-cms-homepage-variant=trust] .m-intro{font-size:15px;line-height:1.55;margin:19px 0 22px}
  body.cms-design .cms-hero-ratings{margin-bottom:24px}
  body.cms-design .cms-rating-top{gap:12px}
  body.cms-design .cms-rating-stars svg{width:23px;height:23px}
  body.cms-design .cms-rating-score{font-size:30px}
  body.cms-design .cms-rating-source{font-size:15px}
  body.cms-design .cms-rating-secondary{font-size:14px;margin-top:9px}
  body.cms-design[data-cms-homepage-variant=proof] .m-actions,
  body.cms-design[data-cms-homepage-variant=trust] .m-actions{gap:10px}
  body.cms-design[data-cms-homepage-variant=proof] .m-actions a,
  body.cms-design[data-cms-homepage-variant=trust] .m-actions a{flex:1 1 auto;padding:13px 15px;font-size:14px;min-height:48px}
  body.cms-design[data-cms-homepage-variant=trust] .m-photo{aspect-ratio:.62}
  body.cms-design[data-cms-homepage-variant=proof] .review-grid{grid-template-columns:1fr;gap:28px}
  body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured{padding-left:0;padding-top:22px;border-left:0;border-top:1px solid var(--line)}
  body.cms-design[data-cms-homepage-variant=proof] .cms-review-featured blockquote{font-size:31px}
  body.cms-design .cms-review-aggregate .cms-rating-score{font-size:65px}
  body.cms-design .cms-trust-rail-inner{display:grid;grid-template-columns:1fr;gap:11px;padding-block:16px}
  body.cms-design .cms-source-rating-rail{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 9px;align-items:center}
  body.cms-design .cms-source-rating-rail+.cms-source-rating-rail{padding:10px 0 0;border-left:0;border-top:1px solid var(--line)}
  body.cms-design .cms-source-rating-rail .cms-rating-platform{grid-column:auto;font-size:16px}
  body.cms-design .cms-source-rating-rail .cms-rating-top{grid-column:2;grid-row:1 / span 2;gap:8px}
  body.cms-design .cms-source-rating-rail .cms-rating-stars svg{width:17px;height:17px}
  body.cms-design .cms-source-rating-rail .cms-rating-score{font-size:16px}
  body.cms-design .cms-source-rating-rail .cms-rating-source{font-size:15px}
  body.cms-design .cms-all-reviews{font-size:14px;width:fit-content;margin-top:1px}
  body.cms-design .cms-hero-quote{margin-top:24px;padding-top:17px}
  body.cms-design .cms-hero-quote blockquote{font-size:25px}
  body.cms-design .cms-homepage-process{padding-block:34px 38px}
  body.cms-design .cms-process-inner{grid-template-columns:1fr;gap:27px}
  body.cms-design .cms-process-intro .eyebrow{margin-bottom:14px}
  body.cms-design .cms-process-intro h2{font-size:40px}
  body.cms-design .cms-process-steps{grid-template-columns:1fr;gap:22px}
  body.cms-design .cms-process-number{margin-bottom:12px}
  body.cms-design .cms-process-steps h3{font-size:17px}
  body.cms-design .cms-process-steps p{font-size:14px}
}

/* Search and help use the selected palette, including light custom primaries. */
body.cms-design .site-search,body.cms-design .site-search-dialog{background:var(--paper);color:var(--ink);border-color:var(--line)}
body.cms-design .site-search input::placeholder,body.cms-design .site-search-dialog #site-search-query::placeholder{color:var(--muted)}
body.cms-design .site-search button,body.cms-design .site-search-dialog [data-search-results],body.cms-design .site-search-dialog [data-search-results]>li{border-color:var(--line)}
body.cms-design .site-search-dialog [data-search-close]{color:var(--ink);border-color:var(--line)}
body.cms-design .site-search-dialog [data-search-form]>label,body.cms-design .site-search-dialog [data-search-status],body.cms-design .site-search-result-category,body.cms-design .site-search-result-snippet{color:var(--muted)}
body.cms-design .site-search-dialog #site-search-query{background:var(--paper);color:var(--ink);border-color:var(--line)}
body.cms-design .site-search-dialog [data-search-form] button[type=submit]{background:var(--cms-primary);color:var(--cms-on-primary);border-color:var(--cms-primary)}
body.cms-design .site-search-dialog [data-search-clear]{color:var(--ink)}
body.cms-design .site-search-result{color:var(--ink)!important}
body.cms-design .site-search-result:hover{background:var(--panel)}
body.cms-design .site-search:focus-within{outline-color:var(--cms-on-primary)}
body.cms-design .site-search-dialog :is(input,button,a):focus-visible{outline-color:var(--ink)}
body.cms-design .social-typographic .social-platform{color:var(--cms-on-primary)}
/* Assistant bubbles use the foreground paired with their actual ink background. */
body.cms-design .site-assistant-submit:hover:enabled,body.cms-design .site-assistant-launcher:hover{background:var(--cms-primary);color:var(--cms-on-primary)}

body.cms-design .social-typographic .social-play{color:var(--cms-on-primary);border-color:var(--cms-on-primary);background:transparent}

body.cms-design .site-search-dialog::backdrop{background:#000b}

body.cms-design .site-help-trigger:hover{color:var(--ink)}
body.cms-design .site-help-eyebrow,body.cms-design .site-help-tabs [role=tab]{color:var(--muted)}
body.cms-design .site-help-tabs{border-color:var(--line)}
body.cms-design .site-help-tabs [aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}
body.cms-design .site-help-contact{color:var(--muted)!important;border-color:var(--line)}
body.cms-design .site-help-contact a{color:var(--ink)}

/* Form boundaries need contrast independently of decorative separators. */
body.cms-design .site-search-dialog #site-search-query,body.cms-design .site-assistant-question,body.cms-design .archive-search-field input{border-color:var(--muted)}
body.cms-design .contact-section .enquiry-form :is(input,select){border-color:var(--cms-hero-muted)}
