/* THO shared action system. Edit this definition, not individual page buttons. */
:root{--tho-forest:#223b27;--tho-ivory:#fffaf2;--tho-linen:#f2ebe1;--tho-sand:#dfceb4;--tho-brass:#90743e;--tho-action-height:48px;--tho-action-font:14px;--tho-action-line:20px;--tho-action-py:13px;--tho-action-px:25px;--tho-action-radius:999px}
.action-button,.service-actions .action-button,.contact .action-button,.step-actions .action-button,#edit-booking.action-button{box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:var(--tho-action-height);padding:var(--tho-action-py) var(--tho-action-px);border:1px solid var(--tho-forest);border-radius:var(--tho-action-radius);background:var(--tho-forest);color:var(--tho-ivory);font-family:Euclid,Arial,sans-serif;font-size:var(--tho-action-font);font-weight:400;line-height:var(--tho-action-line);text-decoration:none;cursor:pointer;text-align:center;max-width:100%;width:fit-content;margin-top:0}
.action-button:hover,.service-actions .action-button:hover{background:#354f38;border-color:#354f38;color:var(--tho-ivory)}
.hero .action-button,.contact .action-button,.button-demo-dark .action-button{background:var(--tho-ivory);color:var(--tho-forest);border-color:var(--tho-ivory)}
.hero .action-button:hover,.contact .action-button:hover,.button-demo-dark .action-button:hover{background:#e7ebdf;border-color:#e7ebdf;color:var(--tho-forest)}
.action-button:focus-visible{outline:2px solid var(--tho-brass);outline-offset:4px}
.action-button:disabled{opacity:.45;cursor:not-allowed}
.step-actions .back-step.action-button{background:transparent;color:var(--tho-forest)}
.contact p>a.action-button[href*="janeapp"],.button-demo-dark .action-button.secondary{background:transparent;color:var(--tho-ivory);border-color:var(--tho-ivory)}
.path .action-button{margin-top:8px}.service-actions{gap:0}.action-button .link-chevrons{display:none}
.guide-launch{min-height:var(--tho-action-height);font-size:var(--tho-action-font);line-height:var(--tho-action-line);padding:var(--tho-action-py) 22px}

/* Gentle rollover feedback across primary, secondary and appointment controls. */
button,.action-button,.outline{transition:scale 180ms ease,background-color 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 180ms ease;transform-origin:center}
@media(hover:hover) and (pointer:fine){
 button:not(:disabled):hover,.action-button:not([aria-disabled="true"]):hover,.outline:hover{scale:1.035}
 button:not(:disabled):hover{background-color:#e3e8d8;color:#223b27;border-color:#819574}
 .action-button:hover,.service-actions .action-button:hover,.step-actions .action-button:hover,#edit-booking.action-button:hover{background:#476247;border-color:#476247;color:#fffaf2;box-shadow:0 4px 12px #223b271a}
 .hero .action-button:hover,.contact .action-button:hover,.button-demo-dark .action-button:hover{background:#d6dfc7;border-color:#d6dfc7;color:#223b27;box-shadow:0 4px 14px #10231524}
 .path:hover .action-button{scale:1.035;background:#476247;border-color:#476247;color:#fffaf2}
 .v1-header .nav-toggle:hover,.v1-header #menu:hover{background:transparent;color:#6b783f}
 .guide-launch:hover{background:#d6dfc7;color:#223b27;border-color:#9eae8f}
 .booking-step .preference-trigger:hover,.preference-panel button:not(:disabled):hover{background:#e3e8d8;color:#223b27;border-color:#819574}
}
@media(prefers-reduced-motion:reduce){
 button,.action-button,.outline{transition:none}
 button:not(:disabled):hover,.action-button:not([aria-disabled="true"]):hover,.outline:hover,.path:hover .action-button{scale:1}
}

/* Shared photography shape. Corner position is deliberate; proportions never vary. */
:root body .tho-photo[data-tho-corner]{--tho-photo-large:130px;--tho-photo-small:18px;border-radius:var(--tho-photo-small) var(--tho-photo-small) var(--tho-photo-large) var(--tho-photo-small)}
:root body .tho-photo[data-tho-corner="tr"]{border-radius:var(--tho-photo-small) var(--tho-photo-large) var(--tho-photo-small) var(--tho-photo-small)}
:root body .tho-photo[data-tho-corner="tl"]{border-radius:var(--tho-photo-large) var(--tho-photo-small) var(--tho-photo-small) var(--tho-photo-small)}
:root body .tho-photo[data-tho-corner="bl"]{border-radius:var(--tho-photo-small) var(--tho-photo-small) var(--tho-photo-small) var(--tho-photo-large)}

/* Shared email preferences: explicit, optional and separate from newsletter. */
.email-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.newsletter-form .email-marketing-choice,.availability-dialog .email-marketing-choice{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-size:14px;line-height:1.5;font-weight:400;text-transform:none;letter-spacing:0}
.email-marketing-choice input[type=checkbox]{width:18px!important;height:18px;min-width:18px;margin:2px 0 0;padding:0;accent-color:#223e29}

.inquiry-email-choices{border:0;padding:0;margin:2rem 0 1rem;min-width:0}.inquiry-email-choices legend{font:inherit;margin-bottom:.75rem}.inquiry-email-choices .email-marketing-choice{align-items:flex-start;max-width:100%;margin:.75rem 0}.inquiry-email-choices input{flex:0 0 auto}.contact-save-message{font-size:inherit}
#booking-form .inquiry-email-choices{display:block}#booking-form .inquiry-email-choices .email-marketing-choice{display:flex;gap:10px;font-size:16px;line-height:1.5;font-weight:400;text-transform:none;letter-spacing:0}
/* THO welcome offer: shared Euclid, forest and ivory; no extra decorative motion. */
.tho-welcome-dialog{box-sizing:border-box;width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:0;border:1px solid #223b2730;border-radius:24px;background:#fffaf2;color:#223b27;box-shadow:0 24px 80px #14241926;font-family:inherit}
.tho-welcome-dialog::backdrop{background:#223b2759}
.welcome-content{padding:44px}.welcome-content h2{font-family:inherit;font-size:clamp(30px,4vw,42px);line-height:1.12;font-weight:400;margin:16px 0 24px;letter-spacing:-.035em}.welcome-content>p:not(.eyebrow){font-size:17px;line-height:1.65;margin-bottom:24px}.welcome-close{position:absolute;right:12px;top:10px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:inherit;font:28px/1 Arial;cursor:pointer}.welcome-content form{display:block}.welcome-content input[type=email]{box-sizing:border-box;width:100%;min-height:52px;margin:8px 0 16px;background:#fffdf7;border:1px solid #bcc4b6;border-radius:12px;color:inherit;font:inherit;padding:12px 16px}.welcome-content form>button{width:100%}.welcome-content .newsletter-consent{font-size:14px;line-height:1.5;margin:16px 0}.welcome-content .newsletter-message{font-size:16px;line-height:1.5}.welcome-dismiss{display:block;margin:20px auto 0;font:inherit;color:inherit;background:none;border:0;border-bottom:1px solid #223b2755;cursor:pointer}.welcome-receipt{margin-top:16px;padding-top:16px;border-top:1px solid #223b2730}.welcome-receipt strong{display:block;font-size:19px;letter-spacing:.035em;overflow-wrap:anywhere}.welcome-receipt p{margin:8px 0 16px;font-size:16px;line-height:1.5}.tho-welcome-dialog :focus-visible{outline:2px solid #90743e;outline-offset:4px}@media(max-width:600px){.welcome-content{padding:40px 24px 28px}.welcome-content h2{font-size:34px}.newsletter-fields{flex-wrap:wrap}.newsletter-fields button{white-space:normal}}

.footer-policy-links{display:inline-flex;flex-wrap:wrap;gap:1rem;margin-left:1rem}.footer-policy-links a{display:inline!important;font-size:inherit}@media(max-width:600px){.footer-policy-links{margin-left:0;width:100%;margin-top:.75rem}}

/* 5 Nov 2026 consistency edition: shared component tokens. */
:root{--tho-card-ground:#fcfaf4;--tho-card-border:#d2d3c1;--tho-card-radius:20px;--tho-panel-ground:#f0f1e8;--tho-panel-radius:24px;--tho-control-radius:12px;--tho-grid-gap:24px;--tho-copy-muted:#5b6656}

/* Shared native select: visible inset chevron and protected text space. */
select:not([multiple]):not([size]){-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23223b27' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:20px 20px;padding-right:48px;min-height:48px;}
@media(forced-colors:active){select:not([multiple]):not([size]){appearance:auto;background-image:none;}}
