/* Shared mechanics; colours and proportions remain brand-owned. */
html:not([data-reveals-ready]) :is([data-reveal],.reveal,[data-hero-reveal]){opacity:1!important;transform:none!important;filter:none!important}
/* Copy never depends on a multi-screen section crossing an observer threshold.
   Motion belongs to dedicated image masks and small controls. */
html :is([data-reveal],.reveal,[data-hero-reveal]){opacity:1!important;transform:none!important;filter:none!important}

form[data-demo-form] fieldset{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:22px;margin:0;padding:0;border:0;min-width:0}
form[data-demo-form] fieldset>label{margin:0;font-size:13px;line-height:1.5;letter-spacing:0;text-transform:none}
form[data-demo-form] fieldset>label:nth-of-type(n+3),form[data-demo-form] fieldset>:is(details,div,button,p){grid-column:1/-1}
form[data-demo-form] :is(input,textarea,select){box-sizing:border-box;width:100%;margin-top:8px;padding:14px 16px;border:1px solid #8a8a80;border-radius:3px;background:#ffffff08;color:inherit;min-height:50px;font-family:inherit;font-size:16px;font-weight:400;line-height:1.45;box-shadow:none}
form[data-demo-form] textarea{min-height:150px;resize:vertical}
form[data-demo-form] :is(input,textarea,select):focus{outline:2px solid currentColor;outline-offset:3px;border-color:currentColor}
body[data-concept="span-field"] form[data-demo-form] :is(input,textarea,select){background:#fff;border-color:#8c8b84;color:#1b1c19}
body[data-concept="commonlight"] form[data-demo-form] :is(input,textarea,select){background:#fffcf4;border-color:#8b8172;color:#211a14}
form[data-demo-form] fieldset>button{justify-self:start;margin-top:4px}
@media(max-width:600px){form[data-demo-form] fieldset{grid-template-columns:1fr;gap:20px}form[data-demo-form] fieldset>label{grid-column:1}}
:root{--interaction-ease:cubic-bezier(.22,.61,.36,1)}
:is(.quiet-link,.form-submit,.button,.nav-action,.nav-cta){position:relative;isolation:isolate;overflow:hidden;transition:color .25s,border-color .25s,background-color .25s;}
:is(.quiet-link,.form-submit,.button,.nav-action,.nav-cta)::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--button-hover,#ffffff18);transform:translateY(102%);transition:transform .42s var(--interaction-ease);pointer-events:none;}
body[data-concept="span-field"]{--button-hover:#ffffff24}
body[data-concept="commonlight"]{--button-hover:#ffffff20}
@media(hover:hover){:is(.quiet-link,.form-submit,.button,.nav-action,.nav-cta):hover::before{transform:translateY(0)}
  :is(.text-link,.hero-project-link,.nav-enquire):hover .action-arrow{transform:translateX(4px)}
  :is(.quiet-link,.form-submit,.button):hover .action-arrow{transform:translate(3px,-1px)}
}
.action-arrow{display:inline-block;flex:none;width:19px;height:19px;vertical-align:middle;transition:transform .3s var(--interaction-ease)}
:is(.quiet-link,.form-submit,.button,.nav-action,.nav-cta):active{filter:brightness(.92)}
:is(.text-link,.hero-project-link,.nav-enquire){text-decoration-thickness:1px;text-underline-offset:7px;}
:is(.text-link,.hero-project-link,.nav-enquire):focus-visible{text-decoration:underline}
input,textarea,select{transition:border-color .2s,background-color .2s}
input:focus,textarea:focus,select:focus{border-bottom-color:currentColor}
html[data-motion="reduced"] :is(.quiet-link,.form-submit,.button,.nav-action,.nav-cta)::before{transition:none;transform:none;opacity:0}
html[data-motion="reduced"] :is(.quiet-link,.form-submit,.button,.nav-action,.nav-cta):hover::before{opacity:1}
html[data-motion="reduced"] .action-arrow{transform:none!important;transition:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .action-arrow{transform:none!important;transition:none}}
