.elementor-6 .elementor-element.elementor-element-3d80a60{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--justify-content:space-between;--align-items:center;--gap:20px;--flex-wrap:nowrap;--background-transition:0.3s;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-width-top:0px;--border-width-right:0px;--border-width-bottom:1px;--border-width-left:0px;border-color:rgba(var(--it-hairline-rgb),0.28);--border-color:rgba(var(--it-hairline-rgb),0.28);--padding-top:14px;--padding-right:40px;--padding-bottom:14px;--padding-left:40px;--z-index:100;}.elementor-6 .elementor-element.elementor-element-3d80a60:not(.elementor-motion-effects-element-type-background), .elementor-6 .elementor-element.elementor-element-3d80a60 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:rgba(var(--it-bg-rgb),0.97);}.elementor-6 .elementor-element.elementor-element-3d80a60, .elementor-6 .elementor-element.elementor-element-3d80a60::before{--border-transition:0.3s;}.elementor-6 .elementor-element.elementor-element-5f6cd20{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--align-items:center;--gap:12px;--flex-wrap:nowrap;--background-transition:0.3s;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-menu-toggle{margin-left:auto;background-color:rgba(0,0,0,0);border-width:0px;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu .elementor-item{font-family:'Inter Tight', sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.14em;line-height:1.4;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main .elementor-item{color:var(--it-dim);fill:var(--it-dim);padding-left:0px;padding-right:0px;padding-top:6px;padding-bottom:6px;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main .elementor-item:hover,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main .elementor-item:focus{color:var(--it-gold-text);fill:var(--it-gold-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--it-gold-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e{--e-nav-menu-horizontal-menu-item-margin:calc( 28px / 2 );--nav-menu-icon-size:22px;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main:not(.elementor-nav-menu--layout-horizontal) .elementor-nav-menu > li:not(:last-child){margin-bottom:28px;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a, .elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-menu-toggle{color:var(--it-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown{background-color:var(--it-bg);border-style:solid;border-width:0px 0px 1px 0px;border-color:rgba(var(--it-hairline-rgb),0.28);}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a:hover,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a.highlighted,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-menu-toggle:hover{color:var(--it-gold-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a:hover,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a.highlighted{background-color:rgba(var(--it-hairline-rgb),0.18);}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a.elementor-item-active{color:var(--it-gold-text);background-color:rgba(var(--it-hairline-rgb),0.18);}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown .elementor-item, .elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:'Inter Tight', sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:0.14em;line-height:1.4;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown a{padding-left:18px;padding-right:18px;padding-top:17px;padding-bottom:17px;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--dropdown li:not(:last-child){border-style:solid;border-color:rgba(var(--it-hairline-rgb),0.22);border-bottom-width:1px;}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu__container.elementor-nav-menu--dropdown{margin-top:24px !important;}.elementor-6 .elementor-element.elementor-element-9a4b71e div.elementor-menu-toggle{color:var(--it-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e div.elementor-menu-toggle svg{fill:var(--it-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e div.elementor-menu-toggle:hover{color:var(--it-gold-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e div.elementor-menu-toggle:hover svg{fill:var(--it-gold-text);}.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-menu-toggle:hover{background-color:rgba(0,0,0,0);}.elementor-6 .elementor-element.elementor-element-a11c7f3{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--justify-content:flex-end;--align-items:center;--gap:14px;--flex-wrap:nowrap;--background-transition:0.3s;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;}.elementor-6 .elementor-element.elementor-element-76008e0 .elementor-button{font-family:'Inter Tight', sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;fill:var(--it-text);color:var(--it-text);background-color:rgba(0,0,0,0);border-style:solid;border-width:2px;border-color:var(--it-text);border-radius:0;padding:12px 22px 12px 22px;}.elementor-6 .elementor-element.elementor-element-76008e0 .elementor-button:hover, .elementor-6 .elementor-element.elementor-element-76008e0 .elementor-button:focus{color:var(--it-btn-hover-fg);background-color:var(--it-btn-hover-bg);}.elementor-6 .elementor-element.elementor-element-76008e0 .elementor-button:hover svg, .elementor-6 .elementor-element.elementor-element-76008e0 .elementor-button:focus svg{fill:var(--it-text);}@media(min-width:768px){.elementor-6 .elementor-element.elementor-element-5f6cd20{--width:210px;}}@media(max-width:767px){.elementor-6 .elementor-element.elementor-element-3d80a60{--gap:10px;--padding-top:12px;--padding-right:18px;--padding-bottom:12px;--padding-left:18px;}.elementor-6 .elementor-element.elementor-element-5f6cd20{--width:170px;--gap:9px;}}
/* full-bleed dark bands — black in both themes, ivory text, taxi numbers */
.elementor .elementor-element.elementor-element-11a69e0{background-color:var(--it-band);--it-bg:var(--it-band);--it-surface:var(--it-band);--it-surface-2:var(--it-band);--it-wash:var(--it-band);--it-ground:var(--it-band);--it-text:#FEFCF8;--it-text-rgb:254,252,248;--it-text-strong:#FEFCF8;--it-muted:#B7B6B3;--it-dim:#B7B6B3;--it-dim2:#B7B6B3;--it-footer-link:#B7B6B3;--it-gold-text:#FFC400;--it-hairline-rgb:254,252,248;--it-btn-hover-bg:#FEFCF8;--it-btn-hover-fg:#111111;}

/* warm-grey sections — tonal relief against the ivory ground */
.elementor .elementor-element.elementor-element-1b67600.elementor-element-1b67600,.elementor .elementor-element.elementor-element-10f5cd4.elementor-element-10f5cd4,.elementor .elementor-element.elementor-element-76aa400.elementor-element-76aa400,.elementor .elementor-element.elementor-element-2aba114.elementor-element-2aba114,.elementor .elementor-element.elementor-element-4842200.elementor-element-4842200,.elementor .elementor-element.elementor-element-2b31824.elementor-element-2b31824,.elementor .elementor-element.elementor-element-1cc5260.elementor-element-1cc5260{background-color:var(--it-surface-2);--it-bg:var(--it-surface-2);--it-surface:var(--it-ground);}

/* cards that mapped to the page ground — pull them onto the surface tone */
.elementor .elementor-element.elementor-element-1f6c600.elementor-element-1f6c600,.elementor .elementor-element.elementor-element-4a703b0.elementor-element-4a703b0,.elementor .elementor-element.elementor-element-59fd600.elementor-element-59fd600,.elementor .elementor-element.elementor-element-6e2d450.elementor-element-6e2d450,.elementor .elementor-element.elementor-element-5a59d40.elementor-element-5a59d40,.elementor .elementor-element.elementor-element-472d544.elementor-element-472d544,.elementor .elementor-element.elementor-element-70f7360.elementor-element-70f7360,.elementor .elementor-element.elementor-element-273ed60.elementor-element-273ed60,.elementor .elementor-element.elementor-element-2f87ec8.elementor-element-2f87ec8,.elementor .elementor-element.elementor-element-3f4c910.elementor-element-3f4c910,.elementor .elementor-element.elementor-element-550ee10.elementor-element-550ee10,.elementor .elementor-element.elementor-element-ca63140.elementor-element-ca63140,.elementor .elementor-element.elementor-element-7e243e0.elementor-element-7e243e0,.elementor .elementor-element.elementor-element-e345e00.elementor-element-e345e00,.elementor .elementor-element.elementor-element-55ef110.elementor-element-55ef110,.elementor .elementor-element.elementor-element-2a6c600.elementor-element-2a6c600,.elementor .elementor-element.elementor-element-5703b00.elementor-element-5703b00,.elementor .elementor-element.elementor-element-218bbe0.elementor-element-218bbe0,.elementor .elementor-element.elementor-element-4093de0.elementor-element-4093de0,.elementor .elementor-element.elementor-element-9919900.elementor-element-9919900,.elementor .elementor-element.elementor-element-2964fc0.elementor-element-2964fc0{background-color:var(--it-surface);}

/* pale taxi wash — reserved for the closing call to action */
.elementor .elementor-element.elementor-element-5eb85b3.elementor-element-5eb85b3{background-color:var(--it-wash);--it-bg:var(--it-wash);--it-surface:var(--it-wash);}

/* photo strips: frame every cell so adjacent shots are separated */
.elementor .elementor-element.elementor-element-a1f0c21 > *,.elementor .elementor-element.elementor-element-b2e0d31 > *{border:3px solid var(--it-text);border-radius:0;}

/* ---- Ivory Task brand system: structural rules ---- */
.elementor h1,.elementor h2{line-height:1.06;letter-spacing:-0.01em;}
.elementor h3,.elementor h4{line-height:1.15;letter-spacing:-0.01em;}
.elementor h1{font-size:clamp(38px,6vw,64px);}
.elementor h2{font-size:clamp(26px,4vw,40px);}
.elementor p,.elementor .elementor-widget-text-editor{line-height:1.6;}

/* Page data carries a handful of inline `font-family:Space Grotesk` spans
   (the logo wordmark among them); an attribute match is the only way to
   reach them without editing the data. */
[style*="Space Grotesk"],[style*="Playfair Display"],[style*="Marck Script"]{
font-family:'Familjen Grotesk',sans-serif !important;}

/* Signature move: the hero's emphasised words are already <em> spans coloured
   with --it-gold-text. Rebinding that variable locally turns them into the
   yellow highlighter without touching the copy or adding markup. */
.elementor h1 em,.elementor h1 i{--it-gold-text:#111111;background:var(--it-gold);
color:#111111;padding:0 6px;font-style:italic;box-decoration-break:clone;
-webkit-box-decoration-break:clone;}

/* Hard edges everywhere, including widgets whose radius is not in page data. */
.elementor .elementor-button,.elementor img,.elementor .elementor-icon,
.elementor input,.elementor textarea,.elementor select,
.elementor .elementor-field-textual,
.elementor .e-form__indicators__indicator,
.elementor .elementor-menu-toggle{border-radius:0 !important;box-shadow:none !important;}
/* The mobile hamburger is a button, so it wears the button frame and sits square
   next to the theme toggle. Its 3px radius comes from Elementor Pro's nav-menu
   stylesheet and only shows below 1024px; the zero border-width comes from the
   widget's own per-element rule at (0,4,0), which nothing here can outrank on
   specificity — hence !important rather than a longer selector. */
.elementor .elementor-menu-toggle{border:2px solid var(--it-text) !important;
color:var(--it-text);}

/* Buttons. Primary = taxi fill / ink text; secondary = transparent / ink text;
   both wear a 2px ink frame and both invert on hover. */
.elementor .elementor-button:hover,.elementor .elementor-button:focus{
background-color:var(--it-btn-hover-bg);color:var(--it-btn-hover-fg);
border-color:var(--it-text);}
.elementor .elementor-button:hover svg,.elementor .elementor-button:focus svg{
fill:var(--it-btn-hover-fg);}

/* Section dividers are solid ink rules. Elementor's own inline widget CSS is
   printed as an id-less <style> block that no stylesheet filter can reach, so
   its off-system defaults (--divider-color:#0c0d0e, the #69727d/#fff drop cap)
   are overridden here instead. */
.elementor .elementor-widget-divider{--divider-color:var(--it-text);
--divider-border-width:3px;}
.elementor .elementor-divider-separator{border-top-width:3px;border-top-style:solid;
border-top-color:var(--it-text);}
.elementor .elementor-drop-cap{background-color:var(--it-gold) !important;
color:var(--it-on-accent) !important;border-color:var(--it-text) !important;}

/* Stacked icon chips are taxi fill, so their glyph must be ink. */
.elementor .elementor-view-stacked .elementor-icon{color:var(--it-on-accent);
fill:var(--it-on-accent);}
.elementor .elementor-view-stacked .elementor-icon svg{fill:var(--it-on-accent);}

/* Nav: ink links, taxi marker on the active item — a yellow rule rather than
   yellow text, which would fail contrast on ivory. */
.elementor .elementor-nav-menu .elementor-item{font-family:'Inter Tight',sans-serif;
font-weight:500;}
.elementor .elementor-nav-menu--main .elementor-item{position:relative;}
.elementor .elementor-nav-menu--main .elementor-item.elementor-item-active::after,
.elementor .elementor-nav-menu--main .elementor-item:hover::after{content:"";
position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--it-gold);}
.elementor .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor .elementor-nav-menu--main .elementor-item:hover{color:var(--it-text);}
/* The dropdown's active/hover fill was a purple tint, which mapped to a grey
   wash — the one grey the palette doesn't have. Taxi with ink text instead,
   matching the theme-switch row at the foot of the same menu. Elementor writes
   this widget's own rule at (0,5,0), which no reasonable selector here can
   outrank, so !important rather than binding to the widget's id. */
.elementor .elementor-nav-menu--dropdown a.elementor-item-active,
.elementor .elementor-nav-menu--dropdown a.elementor-item:hover,
.elementor .elementor-nav-menu--dropdown a.elementor-item:focus,
.elementor .elementor-nav-menu--dropdown a.elementor-item.highlighted{
background-color:var(--it-gold) !important;color:var(--it-on-accent) !important;
border-left:0;}

/* The skip link is the one "screen-reader only" element that becomes visible —
   on keyboard focus — so it wears the brand rather than the browser default. */
.skip-link,.screen-reader-text,.elementor-screen-only{
font-family:'Inter Tight',sans-serif;}
.skip-link:focus{background:var(--it-gold);color:var(--it-on-accent);
border:2px solid var(--it-text);border-radius:0;box-shadow:none;
font-family:'Inter Tight',sans-serif;font-weight:600;}

/* Sticky header. The sticky element has to be the LOCATION WRAPPER, not the
   container inside it: that container's parent is exactly its own height, so it
   would have zero room to travel and never stick. The wrapper's parent is body,
   which is the full page. */
.elementor-location-header{position:sticky;top:0;z-index:100;}
/* Logged-in admins get a fixed admin bar to clear; below 782px WP stops fixing
   it, so the offset goes away again. */
body.admin-bar .elementor-location-header{top:32px;}
@media screen and (max-width:782px){body.admin-bar .elementor-location-header{top:0;}}

/* The header sits on ivory, so it needs a rule to separate it from the page. */
.elementor .elementor-element.elementor-element-3d80a60{
border-bottom:3px solid var(--it-text);}
/* phones: nothing below the 12px label size */
@media (max-width:767px){.elementor-6 .elementor-element.elementor-element-9a4b71e .elementor-nav-menu .elementor-item,.elementor-6 .elementor-element.elementor-element-76008e0 .elementor-button{font-size:12px;}}

/* ---- Ivory Task brand system: phone layout (<=767px) ---- */

/* Nested containers each inherit Elementor's default 10px of side padding. The
   hero sits five levels deep, so that was 40px a side on top of the section's
   24px gutter — content had 247px of a 375px viewport. Overriding only the
   DEFAULT recovers it: the page gutter and any designed card padding are set
   per element and are untouched. */
@media (max-width:767px){
.elementor{--container-default-padding-left:0px;--container-default-padding-right:0px;}

/* 88px section padding is desktop rhythm; min() only ever reduces, so the
   full-bleed photo and stats bands stay flush at 0. */
.elementor > .e-con{padding-block-start:min(var(--padding-top,0px),56px);
padding-block-end:min(var(--padding-bottom,0px),56px);}

/* CTAs were wrapping into ragged ~145px stubs. Full width reads as intended
   with the hard-edged system. Only width and alignment are set here: Elementor
   writes each button's padding and font-size per element at (0,4,0), which
   nothing at this specificity can change — and at 49px tall they already clear
   the 44px tap target, so there is nothing to fix. */
.elementor .elementor-widget-button{width:100%;}
.elementor .elementor-widget-button .elementor-button{width:100%;
justify-content:center;}

/* Tap targets: footer and list links were 21px tall, the hamburger 38px. */
.elementor .elementor-icon-list-item > a{padding-top:13px;padding-bottom:13px;}
.elementor .elementor-menu-toggle{width:44px;height:44px;}

/* The header is a three-column space-between: logo, nav, actions. With the CTA
   hidden on phones and the theme switch moved into the menu, that third column
   is empty but still claims the right-hand slot — which left the hamburger
   stranded in the middle of the header. Removing it puts the logo left and the
   hamburger hard right, which is where a hamburger belongs. */
.elementor-element.elementor-element-a11c7f3{display:none;}

/* The theme switch moves into the dropdown menu on phones, so the header keeps
   just the logo and the hamburger. The button itself is relocated by the toggle
   JS; this styles it as a menu row matching the nav items above it. */
.elementor-element.it-toggle-widget{display:none;}
.elementor-nav-menu--dropdown .it-toggle-item{
border-top:1px solid rgba(var(--it-hairline-rgb),.18);}
.elementor-nav-menu--dropdown .it-toggle-item button.it-theme-toggle{display:flex;
align-items:center;justify-content:flex-start;gap:12px;width:100%;min-width:0;
height:auto;margin:0;padding:17px 18px;border:0;color:var(--it-text);
font-family:'Inter Tight',sans-serif;font-size:12px;font-weight:600;
letter-spacing:0.14em;text-transform:uppercase;line-height:1.4;}
.elementor-nav-menu--dropdown .it-toggle-item button.it-theme-toggle:hover,
.elementor-nav-menu--dropdown .it-toggle-item button.it-theme-toggle:focus,
.elementor-nav-menu--dropdown .it-toggle-item button.it-theme-toggle:active{
background-color:var(--it-gold);color:var(--it-on-accent);outline:none;}
.elementor-nav-menu--dropdown .it-toggle-text{display:inline;}

/* Home hero stats: the number column is content-sized on phones, so every label
   started at a different x. A fixed column restores the shared edge. The child
   combinator matters — a descendant match also hits the label container's own
   first child and squeezes the label into a 74px column. */
.elementor .elementor-element-3a707c4 > .e-con > .elementor-widget:first-child{
--width:78px;width:78px;flex:0 0 78px;}

/* The lower photo band held its desktop row of three, which at 390px meant
   125x150 thumbnails. Two up, then one full width. */
.elementor .elementor-element-b2e0d31{flex-wrap:wrap;}
.elementor .elementor-element-b2e0d31 > *{--width:calc(50% - 2px);
flex:1 1 calc(50% - 2px);min-height:190px;}
}

/* A highlighted word's background box is ~1.15em tall regardless of
   line-height, so at the brand's 1.06 the yellow blocks on consecutive lines
   overlapped. Only headlines that actually carry a highlight loosen; the
   !important is needed because the hero h1 carries an inline line-height. */
.elementor h1:has(em),.elementor h1:has(i){line-height:1.24 !important;}