/* SwissDice control system. Warm surfaces, deliberate depth, visible states. */
:root{--control-radius:16px;--control-line:#d9d4cb;--control-surface:#fffdf8;--control-ink:#20201e;--control-ease:cubic-bezier(.2,.8,.2,1)}
.sd-controls .button,.sd-showcase .button,.wpcf7 input[type=submit]{min-height:62px;max-width:100%;min-width:0;border:1px solid transparent;border-radius:18px;padding:9px 9px 9px 24px;gap:26px;font-size:16px;line-height:1.35;letter-spacing:-.015em;font-weight:650;white-space:normal;overflow-wrap:anywhere;box-shadow:0 4px 10px #17171708,inset 0 1px 0 #ffffff26;transition:background .22s,color .22s,box-shadow .22s,transform .24s var(--control-ease)}
.sd-controls .button .icon,.sd-showcase .button .icon{width:42px;height:42px;padding:11px;border-radius:12px;background:#ffffff30;flex:0 0 42px;transition:transform .24s var(--control-ease),background .24s}
.sd-controls .button:hover,.sd-showcase .button:hover{transform:translateY(-2px);box-shadow:0 12px 24px #17171717}
.button:hover .icon{transform:translateX(2px);background:#ffffff20}
.sd-controls .button:active,.sd-showcase .button:active{transform:translateY(0);box-shadow:0 2px 6px #17171712}
.sd-controls .button:not(:has(.icon)){padding-inline:24px}
.sd-controls .button-small,.sd-controls .header-cta{min-height:54px;font-size:15px;padding:7px 7px 7px 20px;border-radius:16px;gap:22px}
.sd-controls .button-small .icon,.sd-controls .header-cta .icon{width:38px;height:38px;padding:10px;flex-basis:38px;border-radius:10px}
.button-dark{background:var(--ink);color:var(--paper)}
.button-dark:hover{background:#302e2a;color:var(--paper)}
.closing-cta .button{box-shadow:0 10px 28px #17171714}
.cta-bottom>.button{flex-shrink:0}
.cta-bottom>p{min-width:0}
.nav-trigger{border-radius:12px;transition:background .2s,color .2s}
.nav-trigger:hover,.nav-trigger[aria-expanded=true]{background:#17171707}
.mobile-menu-toggle{width:46px;height:46px;flex:0 0 46px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--white)}
:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent-dark);outline-offset:4px}
.sd-showcase button[role=tab]{min-height:44px;border-radius:12px 12px 5px 5px;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}
.sd-showcase button[role=tab]:hover{box-shadow:inset 0 0 0 1px #17171718}
.sd-showcase button[role=tab][aria-selected=true]{box-shadow:inset 0 1px 0 #ffffff24,0 3px 8px #17171708}
.sd-showcase button[aria-pressed]:not([data-brand-theme]):not([data-art-motion-button]){min-height:44px;border-radius:12px;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}
.sd-showcase button[aria-pressed=true]:not([data-brand-theme]):not([data-art-motion-button]){box-shadow:inset 0 1px 0 #ffffff30,0 3px 8px #1717170a}
.sd-controls .motion-engine__selectors{gap:8px;border-top:0}
.sd-controls .motion-engine__selector{min-height:54px;padding:12px;border:1px solid var(--me-edge);border-radius:12px;background:#ffffff04;font-size:14px;font-weight:550;transition:background .2s,border-color .2s,color .2s}
.sd-controls .motion-engine__selector[aria-pressed=true]{background:#ffffff0d;border-color:#ffffff45}
.sd-controls .motion-engine__selector:hover{background:#ffffff0a}

/* Native controls remain usable before enhancement and when scripts are off. */
main :is(input[type=text],input[type=email],input[type=tel],input[type=search],input[type=number],input[type=url],textarea,select:not([multiple])){border-radius:var(--control-radius);border:1px solid var(--control-line);background:var(--control-surface);color:var(--control-ink);min-height:50px;padding:13px 16px;font-family:var(--body);font-size:16px;line-height:1.4;max-width:100%;transition:border-color .2s,box-shadow .2s,background .2s}
main :is(input[type=text],input[type=email],input[type=tel],input[type=search],input[type=number],input[type=url],textarea):focus{border-color:var(--accent-dark);outline:0;box-shadow:0 0 0 4px #f4512d13;background:#fff}
.sd-controls main :is(input[type=text],input[type=email],input[type=tel],input[type=search],input[type=number],input[type=url],textarea){border-radius:var(--control-radius);font-family:var(--body);font-size:16px}
main :is(input,textarea)::placeholder{color:#70695f;opacity:1}
main input[type=range]{accent-color:var(--accent-dark);cursor:pointer}
main :is(input[type=checkbox],input[type=radio]){accent-color:var(--accent-dark);width:20px;height:20px;flex-shrink:0;cursor:pointer}
main :is(input[type=checkbox],input[type=radio]){appearance:none;display:inline-block;vertical-align:middle;border:1.5px solid #9a9084;background:#fffdf8;border-radius:6px;transition:background .18s,border-color .18s,box-shadow .18s}
main input[type=checkbox]:checked{background:var(--accent-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4.5 10 3.5 3.5 7.5-8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/17px no-repeat;border-color:var(--accent-dark)}
main input[type=radio]{border-radius:50%}
main input[type=radio]:checked{background:var(--accent-dark);border-color:var(--accent-dark);box-shadow:inset 0 0 0 4px #fffdf8}
main :is(input[type=checkbox],input[type=radio]):disabled{opacity:.45;cursor:not-allowed}

/* A select keeps its native value, validation and form submission contract. */
.sd-select-control{position:relative;display:inline-block;vertical-align:middle;width:100%;min-width:0;text-align:left}
main select.sd-select-native{position:absolute!important;inset:0 auto auto 0!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important;opacity:0!important}
.sd-select-control .sd-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-width:0;min-height:50px;padding:13px 15px 13px 17px;border:1px solid var(--control-line);border-radius:var(--control-radius);background:var(--control-surface);color:var(--control-ink);font-family:var(--body);font-size:16px;font-weight:550;line-height:1.35;text-align:left;box-shadow:0 2px 3px #17171703,inset 0 1px 0 #ffffffc0;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
.sd-select-control .sd-select-value{display:block;min-width:0;margin:0;font:inherit;line-height:inherit;color:inherit;overflow-wrap:anywhere;white-space:normal}
.sd-select-control .sd-select-chevron{width:18px;height:18px;margin:0;flex:0 0 18px;line-height:1;color:#69655f;transition:transform .2s}
.sd-select-trigger:hover{border-color:#aaa298;background:#fff}
.sd-select-control .sd-select-trigger[aria-expanded=true]{border-color:var(--accent-dark);background:#fff;box-shadow:0 0 0 4px #f4512d13}
.sd-select-trigger[aria-expanded=true] .sd-select-chevron{transform:rotate(180deg);color:var(--accent-dark)}
.sd-select-trigger[data-placeholder=true]{color:#79756e;font-weight:400}
.sd-select-control .sd-select-trigger[aria-invalid=true]{border-color:#b33120;background:#fff9f6}
.sd-select-control .sd-select-trigger:disabled{opacity:.5;cursor:not-allowed;background:#ece8e1;box-shadow:none}
.sd-select-popup{position:fixed;z-index:1200;min-width:0;max-height:min(360px,calc(100dvh - 32px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c9c1b6 transparent;margin:0;padding:7px;list-style:none;border:1px solid #ddd6c9;border-radius:20px;background:#fffdf8;color:#24231f;box-shadow:0 18px 55px #19150e26,0 3px 12px #19150e0a;isolation:isolate;animation:sd-select-enter .18s var(--control-ease);font-family:var(--body);font-size:16px;line-height:1.4}
.sd-select-option{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:46px;margin:2px 0;padding:12px 13px;border:1px solid transparent;border-radius:12px;cursor:pointer;overflow-wrap:anywhere;font-weight:450}
.sd-select-option[data-active=true]{background:#f1ede5;border-color:#e6dfd3}
.sd-select-option[aria-selected=true]{color:#a22e17;font-weight:650}
.sd-select-option[aria-selected=true]::after{content:'';width:16px;height:16px;flex:0 0 16px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4L19 6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.sd-select-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.sd-select-group{padding:11px 13px 5px;color:#70695f;font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;list-style:none}
@keyframes sd-select-enter{from{opacity:0;transform:translateY(5px) scale(.985)}to{opacity:1;transform:none}}

/* Product-workspace selectors become generous, self-contained controls. */
.component-boundary-board{border-radius:26px;border-color:#e3ddd2;background:#fffdf8;padding:24px;box-shadow:0 18px 60px #17171707}
.component-boundary-row{grid-template-columns:minmax(0,1fr) 154px;gap:20px;border:1px solid #e7e1d7;border-radius:18px;padding:20px;margin-bottom:10px;background:#f7f4ee}
.component-boundary-row:first-child{padding-top:20px}
.component-boundary-row>.sd-select-control{display:block;margin:0}
.component-boundary-row>div:first-child>span{font-size:13px;line-height:1.6;margin-top:6px;color:#68625a}
.component-boundary-summary{padding:20px 4px 3px}
.component-boundary-summary strong{font-size:21px;line-height:1.45}

/* The enquiry panel uses the same surfaces and a clearer field hierarchy. */
.contact-form-panel{border:1px solid #e2dcd1;border-radius:30px;padding:clamp(24px,3vw,44px);background:radial-gradient(ellipse at 100% 0,#f4512d08,transparent 45%),#fffdf8;box-shadow:0 24px 80px #17171708}
.contact-form-panel>h2{font-size:clamp(32px,3vw,42px);letter-spacing:-.045em;margin-bottom:14px}
.contact-form-panel>.eyebrow{font-size:11px;letter-spacing:.1em;margin-bottom:16px}
.contact-form-panel>p{font-size:15px;line-height:1.7;margin-bottom:30px}
.contact-form-panel .form-row{gap:18px;align-items:start}
.wpcf7 label{font-size:14px;font-weight:550;color:#3f3b35;line-height:1.5}
.wpcf7-form-control-wrap{margin-top:10px}
.wpcf7 :is(input[type=text],input[type=email],input[type=tel],textarea),.wpcf7 .sd-select-trigger{min-height:56px;padding:16px 17px;border:1px solid var(--control-line);border-radius:16px;background:#f9f7f2;font-size:16px;line-height:1.4;box-shadow:inset 0 1px 2px #17171703}
.wpcf7 .sd-field-with-icon{position:relative}
.wpcf7 .sd-field-with-icon input{padding-left:47px}
.sd-field-icon{position:absolute;left:16px;top:18px;width:19px;height:19px;color:#91877b;pointer-events:none}
.wpcf7-form-control-wrap:focus-within .sd-field-icon{color:var(--accent-dark)}
.wpcf7 .sd-select-trigger{font-weight:450;padding-right:15px}
.wpcf7 :is(input[type=text],input[type=email],input[type=tel],textarea):focus{border-color:var(--accent-dark);box-shadow:0 0 0 4px #f4512d13;background:#fff}
.wpcf7 textarea.wpcf7-form-control{min-height:170px;padding:17px;resize:vertical}
.wpcf7 :is(input,textarea).wpcf7-not-valid{border-color:#b33120;background:#fff9f6}
.wpcf7-not-valid-tip{font-size:13px;line-height:1.5;margin-top:9px;color:#9c2f1d}
.wpcf7-acceptance label{font-size:13px;line-height:1.7;gap:12px;font-weight:400;color:#68625a}
.wpcf7-acceptance input{width:20px;height:20px;margin-top:2px}
.wpcf7 .form-submit{margin-top:28px}
.sd-submit-shell{position:relative;display:block;width:100%}
.form-submit .sd-submit-shell{margin-top:0}
.wpcf7 .sd-submit-shell input[type=submit]{display:block;width:100%;min-height:62px;padding:18px 70px 18px 23px;text-align:left;cursor:pointer;font-size:16px;color:var(--ink);background:var(--accent);border-radius:18px}
.sd-submit-shell>.wpcf7-spinner{position:absolute;right:60px;top:50%;margin:-12px 0 0}
.sd-submit-shell>.icon{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:42px;height:42px;padding:11px;border-radius:12px;background:#ffffff30;pointer-events:none;transition:background .2s}
.sd-submit-shell:has(input:hover)>.icon{background:#ffffff20;color:var(--paper)}
.wpcf7 .sd-submit-shell input:hover{background:var(--ink);color:var(--paper);box-shadow:0 10px 22px #17171712}
.wpcf7 .sd-submit-shell input:disabled{opacity:.55;cursor:not-allowed;transform:none}
.wpcf7-spinner{margin-top:12px;margin-left:0}
.form-submit>span:not(.sd-submit-shell):not(.wpcf7-spinner),.form-submit>p>span:not(.sd-submit-shell):not(.wpcf7-spinner){font-size:12px;line-height:1.65;margin-top:14px;color:#797065}
.wpcf7-response-output{border-radius:16px;padding:18px 20px!important;line-height:1.65!important}
.enquiry-focus{border-radius:18px;border-color:#e4d6c3;background:#f3eee4;padding:20px}
#cookie-dialog{width:min(540px,calc(100% - 32px));max-width:none;padding:32px;border:1px solid #ded7cb;border-radius:26px;background:#fffdf8;box-shadow:0 28px 100px #17171738}
#cookie-dialog::backdrop{background:#17171766;backdrop-filter:blur(5px)}
#cookie-dialog .cookie-actions{display:flex;flex-wrap:wrap;gap:12px}
#cookie-dialog .cookie-actions .button{flex:1;justify-content:center;min-height:52px;font-size:15px;padding:14px 19px;border-radius:15px}
#cookie-dialog input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent-dark)}
@media(max-width:700px){
  .sd-controls .button,.sd-showcase .button{min-height:58px;font-size:15px;padding:8px 8px 8px 21px;gap:20px;border-radius:17px}
  .sd-controls .button .icon,.sd-showcase .button .icon{width:40px;height:40px;flex-basis:40px}
  .sd-controls .header-cta,.sd-controls .button-small{min-height:48px;font-size:14px;padding:6px 6px 6px 16px;gap:15px;border-radius:14px}
  .sd-controls .header-cta{margin-left:auto}
  .sd-controls .header-cta .icon,.sd-controls .button-small .icon{width:34px;height:34px;flex-basis:34px;padding:9px;border-radius:9px}
  .component-boundary-board{padding:18px;border-radius:23px}
  .component-boundary-row,.component-boundary-row:first-child{grid-template-columns:minmax(0,1fr);gap:16px;padding:18px}
  .component-boundary-row strong{font-size:17px}
  .component-boundary-row .sd-select-trigger{min-height:48px}
  .contact-form-panel{padding:26px 21px;border-radius:25px}
  .contact-form-panel .form-row{gap:22px}
  .sd-select-popup{border-radius:18px}
  #cookie-dialog{padding:26px 22px;border-radius:24px}
  #cookie-dialog .cookie-actions{display:grid;grid-template-columns:1fr}
}
@media(max-width:380px){
  .sd-controls .header-cta{position:relative;min-width:46px;min-height:46px;width:46px;padding:5px;gap:0}
  .sd-controls .header-cta>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
}
@media(prefers-reduced-motion:reduce){.sd-select-popup{animation:none}.sd-controls .button,.sd-showcase .button,.button .icon,.sd-select-trigger,.sd-select-chevron{transition:none;transform:none}}
html[data-motion=off] .sd-select-popup{animation:none}

.sd-controls .button-outline{border-color:var(--control-line);background:transparent;box-shadow:none}
.sd-controls .button-outline:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}
@media(prefers-reduced-motion:reduce){.sd-controls .button,.sd-controls .button .icon{transition:none!important;transform:none!important}}
