/* Tampa waterfront closing and the shared public directory. */
.ims-coast-close,.ims-footer.ims-coast-footer{
  --coast-aqua:#44eff9;--coast-text:#f3f8ff;--coast-soft:#dae6f1;--coast-rule:#165273;
  background:#001326;color:var(--coast-text);font-family:var(--body);text-align:left
}
.ims-coast-shell{width:90%;max-width:2040px;margin-inline:auto}
.ims-coast-close :is(h2,h3,p),.ims-coast-footer :is(h2,h3,p){margin:0}
.ims-coast-close :is(h2,h3),.ims-coast-footer :is(h2,h3){color:var(--coast-text);font-family:var(--display);text-transform:none}
.ims-coast-close a,.ims-coast-footer a{color:inherit;text-decoration:none}
.ims-coast-close a:is(:hover,:focus-visible,:active),.ims-coast-footer a:is(:hover,:focus-visible,:active){text-decoration:none}
.ims-coast-close :is(a,button):focus-visible,.ims-coast-footer :is(a,button):focus-visible{outline:3px solid #8cfaff;outline-offset:3px}
.ims-coast-close{isolation:isolate;position:relative;overflow:hidden;background:linear-gradient(110deg,#011326,#04223b 68%,#0a335c)}
.ims-coast-photo{position:absolute;inset:0 0 0 auto;width:100%;height:100%;z-index:-3;display:block}
.ims-coast-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 5%}
.ims-coast-close::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(1,18,35,.32),transparent 58%),linear-gradient(0deg,#03172b,transparent 16px);pointer-events:none}
.ims-coast-hero::before{content:"";position:absolute;inset:0 0 -18px;z-index:-2;background:linear-gradient(90deg,rgba(1,20,40,.82),rgba(1,20,40,.73) 36%,rgba(1,20,40,.52) 49%,rgba(1,20,40,.16) 65%,transparent 82%);mask-image:linear-gradient(#000 calc(100% - 46px),transparent)}
.ims-coast-close::after{content:"";position:absolute;inset:0 0 auto auto;width:clamp(122px,11.1vw,244px);aspect-ratio:207/235;background:url('../images/ims-palm-canopy.webp') right top/contain no-repeat;pointer-events:none;z-index:-1}
.ims-coast-hero{position:relative}
.ims-coast-hero .ims-coast-shell{padding-block:clamp(28px,2.2vw,48px) clamp(24px,2vw,40px)}
.ims-coast-kicker{font-size:clamp(11px,.68vw,14px);font-weight:750;line-height:1.45;letter-spacing:.17em;text-transform:uppercase;color:var(--coast-aqua)}
.ims-coast-hero h2{margin:8px 0 9px;font-size:clamp(36px,2.55vw,58px);line-height:1.08;letter-spacing:-.04em;font-weight:780}
.ims-coast-hero h2 span{color:var(--coast-aqua)}
.ims-coast-deck{max-width:min(51%,85ch);font-size:clamp(14px,.82vw,18px);line-height:1.48;letter-spacing:.018em;color:#f0f6fa}
.ims-coast-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:14px}
.ims-coast-hero a.ims-coast-hero-action{display:inline-flex;align-items:center;gap:14px;min-height:42px;padding:8px 21px;border:1px solid #47f1f9;border-radius:2px;background:#001323cc;color:var(--coast-aqua);font:700 15px/1.3 var(--body)}
.ims-coast-hero-action svg,.ims-coast-actions svg,.ims-coast-estimate svg{width:19px;height:19px;flex:none}
.ims-coast-hero a.ims-coast-hero-action:is(:hover,:focus-visible){color:var(--coast-aqua);box-shadow:0 0 14px #0ec4ee38}
.ims-coast-services{position:relative;isolation:isolate;padding:0 0 clamp(52px,5.5vw,104px)}
.ims-coast-shore{position:absolute;inset:auto 0 -1px;width:100%;height:clamp(14px,1.25vw,24px);display:block;pointer-events:none}
.ims-coast-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,.55vw,14px)}
.ims-coast-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(10px,.88vw,19px);align-items:start;padding:clamp(12px,.7vw,15px);border:1px solid #48839a;border-radius:7px;background:rgba(1,18,35,.75);box-shadow:inset 0 1px #9cefff30,0 4px 12px #0004}
.ims-coast-card:focus-within,.ims-coast-card:hover{border-color:#49b9d2}
.ims-coast-card #social-media{position:absolute;top:0}
.ims-coast-badge{display:block;flex:none;box-sizing:border-box;width:clamp(36px,2.3vw,49px);height:clamp(36px,2.3vw,49px);padding:9px;border:1px solid #29e2f4;border-radius:50%;stroke:var(--coast-aqua);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;background:#001323}
.ims-coast-card__copy{display:flex;flex-direction:column;align-self:stretch;min-width:0}
.ims-coast-card h3{margin:2px 0 6px;font-size:clamp(16px,.94vw,21px);font-weight:740;line-height:1.19;letter-spacing:-.025em}
.ims-coast-card p{font-size:clamp(13px,.72vw,15px);line-height:1.42;color:#e2eef8}
.ims-coast-actions{display:flex;align-items:center;flex-wrap:wrap;gap:0 9px;padding-top:4px;margin-top:auto}
.ims-coast-actions a{display:inline-flex;align-items:center;gap:6px;min-height:24px;color:var(--coast-aqua);font-size:clamp(13px,.73vw,15px);font-weight:700;white-space:nowrap}
.ims-coast-actions a+a::before{content:"";height:13px;width:1px;background:#32778d;margin-right:3px}
.ims-coast-actions a:is(:hover,:focus-visible){color:#fff}
.ims-coast-actions svg{width:16px;height:16px}
.ims-footer.ims-coast-footer{position:relative;isolation:isolate;overflow:hidden;margin:0;padding:0;border:0;background:linear-gradient(115deg,#03172b,#001020 53%,#041b30)}
.ims-footer.ims-coast-footer::before,.ims-footer.ims-coast-footer::after{content:none}
.ims-coast-footer>.ims-coast-shell{width:91%;max-width:2060px}
.ims-coast-directory{display:grid;grid-template-columns:minmax(105px,1.4fr) minmax(85px,.83fr) minmax(150px,1.6fr) minmax(0,4.55fr) minmax(200px,1.63fr);gap:clamp(12px,1.12vw,26px);align-items:start;padding-top:clamp(12px,.84vw,19px);padding-bottom:9px}
.ims-coast-directory>*{min-width:0}
.ims-coast-directory ul{list-style:none;margin:0;padding:0}
.ims-coast-brand img{display:block;width:clamp(125px,10vw,204px);height:auto;max-width:100%}
.ims-coast-tagline {
  container-type: inline-size;
  text-align: center;
  color: var(--coast-text);
  font: 780 20px/1.12 var(--display);
  letter-spacing: -.035em;
}
.ims-coast-tagline > span { display: block; font-size: clamp(16px, 7.6cqi, 38px); }
.ims-coast-tagline strong { color: var(--coast-aqua); font-weight: inherit; }
.ims-coast-tagline > span:last-child strong { color: #ffb83d; }
.ims-coast-directory .ims-coast-catalog{border-inline:1px solid var(--coast-rule);padding-inline:clamp(7px,.8vw,17px) 5px}
.ims-coast-footer .ims-coast-directory h2{display:block;margin:0;font:730 clamp(15px,.81vw,18px)/1.22 var(--display);letter-spacing:-.012em;color:#f1f8ff;text-transform:none}
.ims-coast-directory h2::after,.ims-coast-row h2 span::after{content:"";display:block;flex:none;width:32px;height:2px;margin:5px 0 7px;background:#26dfed}
.ims-coast-directory :is(.ims-coast-company,.ims-coast-catalog) li{line-height:1.17}
.ims-coast-directory :is(.ims-coast-company,.ims-coast-catalog) li a{display:flex;align-items:center;min-height:24px;width:fit-content;color:var(--coast-soft);padding:.5px 0;font:450 clamp(12px,.63vw,13.5px)/1.3 var(--body)}
.ims-coast-footer nav a:is(:hover,:focus-visible),.ims-coast-contact-link:is(:hover,:focus-visible) span,.ims-coast-touch a.ims-footer__social-item:is(:hover,:focus-visible){color:var(--coast-aqua)}
.ims-coast-markets{align-self:stretch;display:flex;flex-direction:column;justify-content:start;gap:13px}
.ims-coast-row{padding:0;border:0}
.ims-coast-footer .ims-coast-row h2{display:flex;align-items:center;gap:12px}
.ims-coast-footer .ims-coast-row h2::after{content:none}
.ims-coast-row h2 span::after{margin:5px 0 0}
.ims-coast-row .ims-coast-badge{width:36px;height:36px;padding:8px}
/* Cities and counties share the same tracks, including the Other Service Areas group. */
.ims-coast-counties{--area-columns:4;display:grid;grid-template-columns:repeat(var(--area-columns),minmax(min-content,max-content));justify-content:space-between;column-gap:clamp(4px,.6vw,12px);margin-top:5px}
.ims-coast-counties>div,.ims-coast-counties ul{grid-column:1/-1;display:grid;grid-template-columns:repeat(var(--area-columns),minmax(0,1fr));grid-template-columns:subgrid}
.ims-coast-counties>div+div{margin-top:9px}
.ims-coast-footer .ims-coast-counties h3{grid-column:1/-1;margin:0 0 3px;font:670 clamp(13px,.71vw,15px)/1.37 var(--display);color:var(--coast-aqua);text-transform:none!important}
.ims-coast-counties ul+ul{margin-top:6px}
.ims-coast-counties ul{row-gap:3px}
.ims-coast-counties a{display:inline-block;color:var(--coast-soft);font:450 clamp(12px,.63vw,14px)/1.45 var(--body);padding-block:3px}
.ims-coast-cases{border-top:1px solid var(--coast-rule);padding-top:6px}
.ims-coast-cases{container:footer-cases / inline-size}
.ims-coast-cases ul{display:grid;grid-template-columns:1fr;gap:0 clamp(10px,1vw,21px)}
.ims-coast-cases li{border-bottom:1px solid var(--coast-rule)}
.ims-coast-cases li:last-child{border-bottom:0}
.ims-coast-cases a{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:31px;padding:4px 0;color:#e2edf7;font-size:clamp(12px,.65vw,14px);line-height:1.35}
/* Keep complete project names on one line whenever the available column can hold them. */
@container footer-cases (min-width:490px){
  .ims-coast-cases ul{grid-template-columns:minmax(max-content,1.18fr) minmax(max-content,1fr)}
  .ims-coast-cases li:nth-last-child(-n+2){border-bottom:0}
}
@container footer-cases (min-width:560px){
  .ims-coast-cases ul{grid-template-columns:minmax(max-content,1.6fr) minmax(max-content,.75fr) minmax(max-content,1fr)}
  .ims-coast-cases li:nth-last-child(-n+3){border-bottom:0}
}
.ims-coast-touch{position:relative;align-self:stretch;padding:clamp(12px,.76vw,18px) clamp(13px,1vw,23px);margin-top:-10px;margin-bottom:-9px;border:1px solid #1d8ac0;border-radius:12px;background:radial-gradient(ellipse at 90% 0%,#0a3555,transparent 65%),linear-gradient(125deg,#062139,#001326 80%);box-shadow:inset 0 1px #74d9ff40,0 0 14px #0376a62e}
.ims-coast-touch__intro{font:650 clamp(8px,.47vw,10px)/1.45 var(--body);letter-spacing:.13em;text-transform:uppercase;color:#cfe8f5}
.ims-coast-contact-link{display:flex;align-items:center;gap:9px;margin-top:9px;color:white;font-size:clamp(12px,.73vw,16px);line-height:1.35;overflow-wrap:anywhere}
.ims-coast-contact-link>svg{flex:none;width:clamp(30px,1.9vw,41px);height:clamp(30px,1.9vw,41px);padding:7px;fill:none;stroke:white;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;border:1px solid #32cbdc;border-radius:50%}
.ims-coast-contact-link small{display:block;color:var(--coast-aqua);text-transform:uppercase;font:750 9px/1.4 var(--body);letter-spacing:.14em}
.ims-coast-contact-link strong{font:760 clamp(18px,1.15vw,25px)/1.18 var(--display);letter-spacing:-.025em}
.ims-coast-footer .ims-coast-estimate{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:34px;margin:9px 0 7px;padding:6px 10px;border:1px solid #ffcc57;border-radius:5px;color:#121b22;background:linear-gradient(#ffd349,#ffb81b);box-shadow:0 0 12px #ffbc2b4d;font:800 clamp(12px,.73vw,16px)/1.25 var(--display);cursor:pointer}
.ims-coast-footer .ims-coast-estimate:hover{background:#ffdc6a}
.ims-coast-touch .ims-footer__follow{border-top:1px solid var(--coast-rule);margin:0;padding-top:4px}
.ims-coast-touch .ims-footer__follow h3{margin:0 0 4px;font:550 12px/1.4 var(--body);color:#dfedf6}
.ims-coast-touch .ims-footer__social{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:0;padding:0}
.ims-coast-touch .ims-footer__social-item{display:grid;place-items:center;min-width:0;min-height:0;width:clamp(29px,1.72vw,37px);height:clamp(29px,1.72vw,37px);padding:5px;background:#001222;border:1px solid #3ac9df;border-radius:50%;color:var(--coast-aqua)}
.ims-coast-touch .ims-footer__social-item svg{width:17px;height:17px}
.ims-coast-touch .ims-footer__social-item.is-inactive{opacity:.73}
.ims-coast-legal{border-top:1px solid #197497;background:#00101f;color:#dbe5ef}
.ims-coast-legal>.ims-coast-shell{width:91%;max-width:2060px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;min-height:41px;padding-block:7px}
.ims-coast-legal :is(p,small,a){font:normal clamp(12px,.65vw,14px)/1.5 var(--body)}
.ims-coast-legal p{display:flex;align-items:center;gap:clamp(15px,3vw,64px)}
.ims-coast-legal p::before,.ims-coast-legal p::after{content:"";width:clamp(22px,5.8vw,124px);height:1px;background:#19546b}
.ims-coast-legal .ims-footer__legal{justify-self:end;display:flex;align-items:center;gap:9px}
@media(min-width:1800px){.ims-coast-hero .ims-coast-shell{min-height:15.5vw}.ims-coast-card{min-height:6.7vw}}
@media(min-width:1150px){
  .ims-coast-directory { grid-template-areas: 'brand company catalog markets touch' 'tagline tagline catalog markets touch'; grid-template-rows: auto 1fr; }
  .ims-coast-brand { grid-area: brand; }
  .ims-coast-company { grid-area: company; }
  .ims-coast-tagline { grid-area: tagline; }
  .ims-coast-catalog { grid-area: catalog; }
  .ims-coast-markets { grid-area: markets; }
  .ims-coast-touch { grid-area: touch; }
  .ims-coast-brand{margin-inline-start:calc(0px - clamp(8px,.75vw,16px))}
  .ims-coast-brand img{width:clamp(165px,14.3vw,280px)}
  .ims-coast-counties li:not(:nth-child(4n+1)){padding-left:clamp(6px,.5vw,11px);border-left:1px solid var(--coast-rule)}
}
@media(min-width:1150px) and (max-width:1649px){
  .ims-coast-shell,.ims-coast-footer>.ims-coast-shell,.ims-coast-legal>.ims-coast-shell{width:94%}
  .ims-coast-directory{gap:12px;grid-template-columns:1.34fr .76fr 1.57fr minmax(0,3.63fr) minmax(194px,1.62fr)}
  .ims-coast-cases ul{margin-left:0}
  .ims-coast-card{gap:10px;padding:13px}
  .ims-coast-actions{gap:0 5px}.ims-coast-actions a{gap:3px}
}
@media(max-width:1149px){
  .ims-coast-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ims-coast-directory{grid-template-columns:1fr 1fr 1.45fr;gap:20px 18px;padding-block:21px}
  .ims-coast-brand{grid-column:1;grid-row:1}.ims-coast-company{grid-column:2;grid-row:1}.ims-coast-catalog{grid-column:3;grid-row:1/3}
  .ims-coast-tagline{grid-column:1/3;grid-row:2}
  .ims-coast-markets{grid-column:1/3;grid-row:3;justify-content:start;align-self:start}.ims-coast-touch{grid-column:3;grid-row:3;margin:0}
  .ims-coast-directory :is(.ims-coast-company,.ims-coast-catalog) li a{font-size:14px;padding:3px 0}
  .ims-coast-counties{column-gap:10px}
  .ims-coast-legal p::before,.ims-coast-legal p::after{display:none}
  .ims-coast-hero .ims-coast-shell{padding-block:28px}.ims-coast-deck{max-width:65%}
  .ims-coast-hero::before{background:linear-gradient(90deg,rgba(1,20,40,.82) 4%,rgba(1,20,40,.72) 42%,rgba(1,20,40,.12) 82%)}
}
@media(max-width:700px){
  .ims-coast-shell,.ims-coast-footer>.ims-coast-shell,.ims-coast-legal>.ims-coast-shell{width:calc(100% - 36px)}
  .ims-coast-hero .ims-coast-shell{padding:30px 0 94px}
  .ims-coast-hero h2{font-size:clamp(25px,8vw,45px)}
  .ims-coast-deck{font-size:15px;max-width:39ch}
  .ims-coast-photo img{object-position:55% 50%}
  .ims-coast-hero::before{background:linear-gradient(90deg,rgba(0,16,33,.76),rgba(0,15,33,.62) 83%,rgba(0,15,33,.44))}
  .ims-coast-close::after{width:88px}
  .ims-coast-services{padding-bottom:80px}.ims-coast-cards{grid-template-columns:1fr;gap:9px}
  .ims-coast-card{padding:16px;gap:13px}.ims-coast-card p{font-size:14px}
  .ims-coast-actions a{font-size:14px;min-height:39px}.ims-coast-actions{padding-top:3px}
  .ims-coast-directory{display:grid;grid-template-columns:.85fr 1.4fr;align-items:start;gap:21px 17px}
  .ims-coast-brand{grid-area:1/1/2/-1;display:flex;align-items:center;gap:20px}
  .ims-coast-brand img{width:120px}
  .ims-coast-company{grid-area:2/1/3/2}.ims-coast-catalog{grid-area:2/2/3/3}
  .ims-coast-directory .ims-coast-catalog{padding-left:14px;padding-right:0;border-right:0}
  .ims-coast-directory :is(.ims-coast-company,.ims-coast-catalog) li a{padding-block:6px;font-size:14px}
  .ims-coast-tagline{grid-area:3/1/4/-1}
  .ims-coast-markets{grid-area:4/1/5/-1;gap:18px}.ims-coast-touch{grid-area:5/1/6/-1;padding:18px}
  .ims-coast-counties{--area-columns:2;grid-template-columns:repeat(2,minmax(0,1fr))}
  .ims-coast-counties ul{row-gap:1px}
  .ims-coast-counties a{white-space:normal;font-size:14px;padding:7px 0}
  .ims-coast-cases{padding-top:13px}.ims-coast-cases ul{grid-template-columns:1fr;margin-top:6px}
  .ims-coast-cases li:nth-last-child(-n+3){border-bottom:1px solid var(--coast-rule)}
  .ims-coast-cases li a{min-height:41px;font-size:14px}
  .ims-coast-touch .ims-footer__social{justify-content:start;gap:9px}
  .ims-coast-touch .ims-footer__social-item{width:41px;height:41px}
  .ims-coast-contact-link{font-size:16px}.ims-coast-contact-link strong{font-size:24px}
  .ims-coast-footer .ims-coast-estimate{min-height:44px}
  .ims-coast-legal>.ims-coast-shell{display:flex;flex-direction:column;text-align:center;gap:4px;padding-block:14px}
}
@media(max-width:359px){.ims-coast-cases li a{font-size:13px}}
@media(prefers-reduced-motion:no-preference){
  .ims-coast-card,.ims-coast-actions svg,.ims-coast-hero-action svg{transition:border-color .16s,transform .16s}
  .ims-coast-actions a:hover svg,.ims-coast-hero-action:hover svg{transform:translateX(2px)}
}

@media(min-width:1650px){.ims-coast-hero .ims-coast-shell{padding-top:1.4vw}.ims-coast-deck{max-width:76ch;font-size:clamp(15px,.86vw,18px)}.ims-coast-footer>.ims-coast-shell{margin-left:max(5.2%,calc((100vw - 2060px)/2))}}

@media(min-width:1650px){.ims-coast-directory .ims-coast-catalog a{font-size:clamp(12px,.61vw,13px);line-height:1.28;letter-spacing:-.014em}.ims-coast-legal .ims-footer__legal a{min-height:0;padding:3px 0}}
