:root {
  --mxwdth: 1280px; 
  --mnwside: 280px;
  --mxfllwdth: 1920px;
  --side-bord: 1px;
  --mrg-content: 2rem;
  --transition-time: 0.3s;
      --border-rd-01-dkt: 1rem;
      --border-rd-01-mbl: calc(var(--border-rd-01-dkt) / 1.25);
  --border-rd-01: var(--border-rd-01-dkt);
  --border-rd-form: var(--border-rd-01);
  --clr-main-01: #5CB600;
  --clr-main-01-transp-01: #5CB6003B;
  --clr-main-01-transp-02: #5CB60000;
  --clr-main-02: #005724;
  --clr-var-01: #319400;
  --clr-var-02: #007000;
  --clr-var-02-transp-01: #007000B3;
  --clr-var-03: 136 100% 10%; /*#00330E*/
  --clr-var-04: 88 67% 74%; /*#C1E991*/
  --clr-blue-01: #03B2C6;
  --clr-blue-02: #065A67;
  --clr-dent-blue-01: 187 97% 40%; /*#03B2C6*/
  --clr-dent-blue-02: 189 89% 22%; /*#065A67*/
  --clr-dent-blue-03: 186 62% 85%; /*#C3EDF1*/
  --clr-cardio-red-01: 354 82% 44%; /*#CF1428*/
  --clr-creme-01: 49 34% 87%; /*#EAE6D4*/
  --clr-orange-01: #EB6800;
  --clr-neutral-000: #FFFFFF;
  --clr-neutral-000-transp-01: #FFFFFFC7;
  --clr-neutral-100: #F7F9F5;
  --clr-neutral-200: #EBEDE6;
  --clr-neutral-400: #B2B5A8;
  --clr-neutral-600: #858978;
  --clr-neutral-800: #4F5248;
  --clr-concelhos-10: #A6E567;
  --clr-concelhos-20: #9CE475;
  --clr-concelhos-30: #91E283;
  --clr-concelhos-40: #87E090;
  --clr-concelhos-50: #7CDEA0;
  --clr-concelhos-60: #63D98C;
  --clr-parque: 209 96% 35%; /*#035DAD*/
}

  @media (max-width: 580px) {
      :root {--border-rd-01: var(--border-rd-01-mbl);}
  }

  @font-face {
      font-family: 'LabMED';
      font-weight: 200;
      src: url('/portals/11/fonts/inter-v13-latin-200.woff2') format('woff2')
  }
  @font-face {
      font-family: 'LabMED';
      font-weight: 400;
      src: url('/portals/11/fonts/inter-v13-latin-regular.woff2') format('woff2')
  }
  @font-face {
      font-family: 'LabMED';
      font-weight: 600;
      src: url('/portals/11/fonts/inter-v13-latin-600.woff2') format('woff2')
  }
  @font-face {
      font-family: 'LabMED';
      font-weight: 900;
      src: url('/portals/11/fonts/inter-v13-latin-900.woff2') format('woff2')
  }

/*DEFAULTS*/        
html {scroll-behavior: smooth; scroll-padding-top: 2rem;}
body {margin: 0 !important; font-family: 'LabMED', Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.25;}
*, *:before, *:after {box-sizing: border-box;} 
select, textarea, input, button {font: inherit; letter-spacing: inherit; word-spacing: inherit; box-shadow: none;}
input[type="checkbox" i] {
  min-width: 2rem !important;
  min-height: 2rem !important;
  aspect-ratio: 1;
  margin: 0.5rem .75rem 0.5rem 0!important;
  vertical-align: sub;}
input[checked="checked"] {
  accent-color: #fff;
  border: none;
  box-shadow: 0 0 0 0.25rem var(--clr-main-01);}
input::placeholder {padding: 0 2rem;}
br {content: ''; display: block;}
strong {font-weight: 600;}

/*================================*/
/*================================*/
/*================================*/

/*HEADINGS*/
h1, h2, h3, h4 {text-wrap: balance;}

h1 {
  width: 100%;
  padding-bottom: 1rem;
  margin-block: 1.5rem 0;
  font-size: 2.5rem;
  font-size: clamp(2rem, 2rem + 1.5vw, 3rem);
  font-weight: 200;
  line-height: 1.125;
  text-transform: uppercase;
  color: var(--clr-main-02);
  border-bottom: solid 3px var(--clr-main-01);
}
h1 span {padding-top: .25em;}

.span-size-2 {font-size: .5em;}
.span-size-3 {font-size: .625em;}
.span-size-4 {font-size: .75em;}

h2 {
  margin-block: 4.5rem 0;
  font-size: 1.55rem; /*fb*/
  font-size: clamp(1.35rem, 1.35rem + 0.5vw, 1.75rem);
  font-weight: 900;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--clr-main-01);
}
h2 span {
  display: block;
  padding-top: 0.25rem;
  font-size: 0.85em;
  font-weight: 400;
  color: var(--clr-var-01);
}
h3 {
  margin-block: 3rem 0;
  font-size: 1.45rem; /*fb*/
  font-size: clamp(1.25rem, 1.25rem + 0.5vw, 1.65rem);
  font-weight: 600;
  line-height: 1.25;
  color: var(--clr-var-02);
}
h4 {
  margin-block: 2.5rem 0;
  font-size: 1.3125rem; /*fb*/
  font-size: clamp(1.125rem, 1.125rem + 0.5vw, 1.5rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--clr-var-01);
}

  @media (max-width: 580px) {
    h1 {border-width: 2px;}
    h2 {text-align: center;}
  }
  @media (max-width: 320px) {
    h1, h1 span, h2 {hyphens: auto;}
    h1 span.inline-block {display: block;}
  }

/*TXT*/
p {
  width: 100%;
  padding: 0;
  margin-block: 1.5rem 0;
  font-size: 1.225rem; /*fb*/
  font-size: clamp(1.125rem, 0.9rem + 0.5vw, 1.325rem);
  line-height: 1.5;
  text-wrap: pretty;
  color: var(--clr-neutral-800);
}
p span.intro-txt {
  --_marker-size: min(2rem, 3vw);
  position: relative;
  width: clamp(min(35ch, 100%), min(75vw, 80%), 75rem);
  padding-block: calc(var(--_marker-size) * .5);
  padding-inline-start: calc(var(--_marker-size) * 4);
  margin-block: calc(var(--_marker-size) * .5) calc(var(--_marker-size) * 1.25);
  display: block;
  font-size: 1.2em;
  font-weight: 600;
  line-height: 1.75;
  text-wrap: pretty;
  color: var(--clr-main-02);
}
p span.intro-txt::before {
  position: absolute;
  inset: 0 auto 0 0;
  content: '';
  width: calc(var(--_marker-size) * .75);
  margin-inline-start: calc(var(--_marker-size) * 2);
  background-color: var(--clr-main-01);
}

  @media (max-width: 580px) {
    p span.intro-txt {padding-inline-start: calc(var(--_marker-size) * 2);}
    p span.intro-txt::before {margin-inline-start: 0};
  }
  @media (max-width: 280px) {
    p span.intro-txt {font-size: revert;}
  }

sup {
  position: relative;
  bottom: 0ex;
  padding: 0 0 0 0.85ch;
  font-size: .65em;
}
p.foot-note {
  padding-bottom: 1rem;
  font-size: 1.25rem;
  font-size: clamp(1rem, 1rem + 0.25vw, 1.25rem);
  color: var(--clr-neutral-600);
}
p.foot-note sup {padding: 0 0.85ch 0 0;}
p.foot-note::before {
  display: block;
  content: '';
  width: min(15vw, 20ch);
  height: 5px;
  margin-block: 1.5em 0.5em;
  background-color: var(--clr-var-01);
  opacity: 0.6;
}
.uppercase {text-transform: uppercase;}
.nowrp {white-space: nowrap;}

/*LISTAS*/
ul {padding: 0; margin-block: 1.5rem 0;}
ul ul {margin-block: 0;}
li {padding: 0 0 0.65rem;
  font-size: 1.25rem; /*fb*/
  font-size: clamp(1.125rem, calc(0.75svw + 1rem), 1.35rem);
  line-height: 1.5;
  list-style: none !important;
}

  @media (max-width: 280px) {li {hyphens: auto;}}

/*default-bullet*/
ul.bullet-1 li {
  --li-bull-size: 0.75rem;
  --li-indent: calc(var(--li-bull-size) *2);
  padding-left: var(--li-indent);
}
ul.bullet-1 li::before {
  content: '';
  display: inline-block;
  width: var(--li-bull-size);
  aspect-ratio: 1;
  margin: -3px calc(var(--li-indent) - var(--li-bull-size)) 0 calc(var(--li-indent) * -1);
  background-image: url(/Portals/11/imagens/graf/bull-arrow-1.svg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  vertical-align: middle;
}
ul.bullet-1 ul li {
  padding-left: calc(var(--li-bull-size) *2 + var(--li-indent));
  margin: 0;
  font-size: 1.25rem; /*fb*/
  font-size: clamp(1rem, calc(0.75svw + 1rem), 1.25rem);
  line-height: 1.5;
  /* list-style: none; */ 
}
ul.bullet-1 ul li::before {
  background-image: none, url(/Portals/11/imagens/graf/bull-arrow.svg);}

/*no-bullet*/
ul.nobull {margin-block: min(calc(0.75rem + 0.75vw), 1.5rem)}
ul.nobull li::before {content: ''; background-image: none;}

/**/
ol.nmbr {
  margin: 15px 35px 10px 0;
  padding-inline: 0;
  list-style: none;
  counter-reset: number;
}
ol.nmbr li {
  line-height: 150%;
  color: var(--clr-neutral-800);
  font-size: 14px;
  counter-increment: number;
  list-style: none;
  padding-left: 0;
  padding-bottom: 0.5em;
  background: none;
}
ol.nmbr li::before {
  color: var(--clr-main-01);
  font-size: 14px;
  font-weight: bold;
  content: counter(number) ". ";
}

/*LINKS*/
a:link, a:visited, a:active {color: var(--clr-main-01); text-decoration: none;}
a:hover {color: var(--clr-var-01); text-decoration: underline;}
/**/
ul.nobull li a {
  color: var(--clr-neutral-600);
  text-decoration: none;
  border-bottom-style: dotted;
  border-bottom-width: 1px;
}
ul.nobull li a:hover {
  color: var(--clr-main-01);
  text-decoration: none;
  border-bottom-style: solid;
}
ul.nobull li a:active {
  color: var(--clr-main-01);
  border-bottom-style: dashed;
}

/*BUTTONS*/
a.button-00 {
  width: fit-content;
  padding: 0.5em 1em;
  margin-block: 1.5rem;
  display: block;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  line-height: 1.3;
  color: var(--clr-neutral-000);
  border-radius: 100vw;
  transition: var(--transition-time) ease-in-out;
}
  
  @media (max-width: 580px) {a.button-00 {margin-inline:auto;}}

a.bt-ctr {margin-inline: auto;}
a.bt-arrow::before {content: "\2192"; padding-left: 1rem;}
a.bt-size-01 {font-size: 1.2rem;}
a.bt-size-02 {font-size: 1.25rem; font-size: clamp(1.125rem, calc(0.5svw + 1rem), 1.35rem); text-transform: uppercase;}
a.bt-color-01 {background-color: var(--clr-main-01);}
a.bt-color-01:hover {background-color: var(--clr-var-01);}
a.bt-color-02 {background-color: hsl(var(--clr-dent-blue-01));}
a.bt-color-02:hover {background-color: hsl(var(--clr-dent-blue-02));}
a.bt-color-03 {background-color: var(--clr-var-02);}
a.bt-color-03:hover {background-color: var(--clr-main-02);}
a.bt-shadow-green-02 {box-shadow: 0 .125rem .5rem .125rem hsl(var(--clr-var-03) / .25);}
a.bt-only-bottom {display: none;}

  @keyframes showButton {
    0% {opacity: 0; bottom: -100px;}
    100% {opacity: 1; bottom: -1px;}
  }
  @media (max-width: 580px) {
    a.bt-fix-bottom {
      --_animStart: 50vh;
      --_animDistance: 35vh;
      position: fixed;
      bottom: -1px;
      left: 0;
      width: 100%;
      padding: 1.5rem 1rem;
      margin: 0;
      display: block;
      font-size: 1rem;
      border-radius: 0;
      z-index: 9999;
    @supports (animation-timeline: view()) {
      opacity: 0;
      animation: showButton linear forwards;
      animation-timeline: view();
      animation-range-start: var(--_animStart);
      animation-range-end: calc(var(--_animStart) + var(--_animDistance));}}
    a.bt-fix-bottom::before {
      content:'';
      display: block;
      position: absolute;
      left: 0;
      top: -1.5rem;
      width: 100%;
      height: 1.5rem;
      background: linear-gradient(0deg, rgba(0,0,0,.2), transparent);}
  }

/*SPACERS,POSITION*/
.m15_lr {margin-inline: 1.5rem;}
.m30_lr {margin-inline: 3rem;}
.m15_tb {margin-block: min(calc(0.75rem + 0.75vw), 1.5rem);}
.m20_tb {margin-block: min(calc(1rem + 1vw), 2rem);}
.m30_tb {margin-block: min(calc(1.5rem + 1.5vw), 3rem);}
.m40_tb {margin-block: min(calc(2rem + 2vw), 4rem);}
.m60_tb {margin-block: min(calc(3rem + 3vw), 6rem);}
.m70_tb {margin-block: min(calc(4rem + 4vw), 8rem);}
.m30_t {margin-top: min(calc(1.5rem + 1.5vw), 3rem);}
.m40_t {margin-top: min(calc(2rem + 2vw), 4rem);}
.m60_t {margin-top: min(calc(3rem + 3vw), 6rem);}
.m30_b {margin-bottom: min(calc(1.5rem + 1.5vw), 3rem);}
.m40_b {margin-bottom: min(calc(2rem + 2vw), 4rem);}
.m60_b {margin-bottom: min(calc(3rem + 3vw), 6rem);}
.p30_b {padding-bottom: 3rem;}
.p15_tb {padding-block: 1.5rem;}
.p20_tb {padding-block: 2rem;}
.p30_tb {padding-block: 3rem;}
.p30_t {padding-top: 3rem;}
.p40_t {padding-top: 4rem;}
.fll {width: 100%; max-width: fit-content; display: block;}

.txt-ctr {text-align: center;}
.ctr, .ctr-1 {
  max-width: 100%; 
  display: block; 
  margin-inline: auto;
}

  @media (max-width: 580px) {.ctr {width: 100%;}}

/**/
.max-w-80 {max-width: 80%;}
.pos-abs {position: absolute;}
.lft {left: 0}
.rgt {right: 0}
.top {top: 0}
.btt {bottom: 0}
/**/
.cover-mnh150 {min-height: 150px; object-fit: cover;}
.cover-mnh250 {min-height: 250px; object-fit: cover;}
.cover-mnh350 {min-height: 350px; object-fit: cover;}
/**/
.tgl-mbl {display: none; visibility: hidden;}

  @media (max-width:580px) {.tgl-mbl {display: block; visibility: visible;}}

/*OUTRAS-FORMATACOES*/
h2+h3 {margin-block: 2.5rem 0;}
h3+h4 {margin-block: 2rem 0;}
h2+p, h2+ul, 
h3+p, h3+ul, 
h4+p, h4+ul {margin-block: 1rem 0;}

.even-col-30c,
.even-col-30c > tbody {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(30ch, 100%), 1fr));
}
.even-col-45c {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(45ch, 100%), 1fr));
}

.block {display: block;}
.inline-block {display: inline-block;}

/*================================*/
/*================================*/
/*================================*/

/*LAYOUT*/
.layout-wrap {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 100svh;
}

/*================================*/
/*HEADER-->>>--MAIN-NAV*/
/*================================*/
.main-nav {
  --login-h: 4rem;
  --mbl-top-mrg: 2.5rem;
  --mbl-logo-h: 5rem;
  --mbl-menu-pad: var(--mbl-top-mrg);
  position: relative;
}
#dnn_wrapper {margin: 1rem auto 0;}

  @media (max-width: 740px) {#dnn_wrapper {margin-top: 0;}}

/*#dnn_wrapper-->>>--LOGIN_RIGHT---DNN_TOP_P---DNN_MENU*/

.login_right {
  margin: 0 auto;
  display: flex;
  justify-content: end;
  align-items: center;
  width: calc(100% - 2 * var(--mrg-content));
  max-width: calc(var(--mxwdth) - 2 * var(--mrg-content));
  height: var(--login-h);
}

  @media (max-width: 740px) {
    .login_right {width: 100%;}
    .login_right::after {
      content: '';
      position: absolute;
      width: 100%;
      height: var(--login-h);
      background: var(--clr-main-01);}
  }
  @media (max-width: 580px) {
    .login_right {
      justify-content: start;
      flex-flow: row-reverse;
      z-index: 999;
      position: relative;}
    .login_right::before {
      content: '';
      position: fixed;
      width: 100%;
      height: calc(1.5* var(--login-h));
      background-image: linear-gradient(180deg, hsl(var(--clr-var-03) / .5), hsl(var(--clr-var-03) / 0));}
    }

a.login {
  display: flex;
  align-items: center;
  padding: 0.5rem 1.5rem;
  margin-inline: var(--mrg-content) 0;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--clr-neutral-600);
  background: var(--clr-neutral-100);
  border: 1px solid var(--clr-neutral-600);
  border-radius: 100vw;
  transition: all var(--transition-time) ease-in-out;
}
a.login:hover {
  text-decoration: none;
  color: #fff; 
  background: var(--clr-var-01); 
  border-color: var(--clr-var-01);
}

  @media (max-width: 740px) {
      a.login {
        margin-inline: var(--mrg-content); 
        color: #fff; 
        background: var(--clr-var-01); 
        border: none; 
        z-index: 999; }
      a.login:hover {background: var(--clr-var-02);}
    }
  @media (max-width: 580px) {
      a.login {
        /* position: fixed; */
        margin-inline: var(--mrg-content) calc(var(--mrg-content) / 2)}
      }

.user, a.user {color: var(--clr-main-01); padding:0; font-size: .875rem; font-size: clamp(0.75rem,.6rem + 1vw, 1.2rem); font-weight: 600; text-transform: uppercase;}
a.user:hover {color: var(--clr-var-01); text-decoration: none;}
.user::before, .user::after {text-transform: none; font-weight: 400; border: none;}
.user::before {content: 'Ol\00E1 ,'; margin-right: 0.25rem;}
.user::after {content: '!'; margin-left: 0.125rem;}

  @media (max-width: 740px) {.user, a.user {color: #fff !important; z-index: 1;}}
  @media (max-width: 580px) {.user::before {display: block;}}

/*====*/
.dnn_top_p {
  width: calc(100% - 2 * var(--mrg-content));
  max-width: calc(var(--mxwdth) - 2 * var(--mrg-content));
  padding-bottom: 2rem;
  margin-inline: auto;
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

  @media (max-width: 740px) {
      .dnn_top_p {padding-block: var(--mbl-top-mrg) 0; margin-bottom: .5rem; display: grid; justify-content: center;}}

 /**/
.dnn_logo {width: auto;}
.dnn_logo a {display: block;}
.dnn_logo img {width: 130px;}

  @media (max-width: 740px) {
      .dnn_logo {margin: 0 auto;}
      .dnn_logo img {width: auto; height: var(--mbl-logo-h);}}
/**/
.contact_phones {
  position: relative;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, auto);
  align-items: end;
}
.contact_phones:after {
  content: 'Chamadas para a rede fixa nacional';
  position: absolute;
  right: 0;
  bottom: -1.25rem;
  color: var(--clr-neutral-600);
}
.contact_phones a {margin-left: 1.5rem;}
.contact_phones img {border: none; margin-bottom: 0.25em;}
.contact_phones p {font-size: 1rem; color: var(--clr-neutral-600); padding: 0; margin: 0; text-align: end;}

  @media (max-width: 950px) {
      .Item-4 {display: none;} /*postos*/
  }
  @media (max-width: 740px) {
      .contact_phones {margin-bottom: 2rem;}
      .contact_phones:after {right: unset; justify-self: center;}
      .contact_phones a:first-child {margin-left: 0;}
  }
  @media (max-width: 580px) {
      .contact_phones {display: none;}
  }
/*====*/
.dnn_menu {
  position: relative;
  height: 4rem;
  padding: 0;
  margin-bottom: 2rem;
  border-top: 1px solid var(--clr-main-01);
  border-bottom: 1px solid var(--clr-main-01);
  background-color: var(--clr-neutral-100);
  z-index: 999;
}
.fishmenu-h {height: 100%;}
.fishmenu-h ul {
  max-width: calc(100svw - 2 * var(--mrg-content));
  margin: 0 auto;
  padding: 0;
  height: 100%;
  display: flex;
  flex-wrap: nowrap;
  column-gap: min(2vw, 4rem);
  justify-content: center;
}
.fishmenu-h li {
  position: relative;
  padding: 0;
  line-height: 1;
}
.fishmenu-h ul li a {
  display: grid;
  height: 100%;
  font-size: 1.075rem;
  font-size: clamp(0.9rem, 1.75vw, 1.25rem);
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  color: var(--clr-neutral-600);
  background-image: linear-gradient(to bottom, transparent 0%, transparent 87%, var(--clr-main-01) 87%, var(--clr-main-01) 100%);
  background-size: 100% 125%;
  transition: all calc(var(--transition-time) / 2) ease-in-out;
}
.fishmenu-h ul li a:hover {
  color: var(--clr-main-01);
  background-size: 100% 100%;
}
.fishmenu-h ul li span {padding: 0.5rem; align-self: center; white-space: nowrap;}
.fishmenu-h ul li.current a {
  color: #fff;
  background: linear-gradient(to bottom, var(--clr-main-01) 0%, var(--clr-main-01) 87%, var(--clr-main-02) 87%, var(--clr-main-02) 100%);
  cursor: default;
}
.fishmenu-h ul li.current a:hover {pointer-events: none;}
.fishmenu-h ul li.current a:hover span {color: #fff;}

/*menuslide - sub menu - START*/
.fishmenu-h ul ul {padding:0;}
.fishmenu-h ul li .menuslide {
  position: absolute;
  top: 46px !important; /*revert inline style*/
  width: auto !important; /*revert inline style*/
  height: auto !important; /*revert inline style*/
  display: none;
}
.fishmenu-h ul li .menuslide ul {
  position: relative; 
  left: 0;
  top: 0 !important; /*revert inline style*/
  width: auto !important; /*revert inline style*/
  max-width: max(min(90vw, 112ch), 25ch);
  padding: 0;
  margin:0;
  display: grid !important; /*revert inline style*/
  grid-template-columns: repeat(auto-fit, minmax(25ch, 1fr));
  gap: 0;
  background-color: var(--clr-main-01);
}
.fishmenu-h ul li .menuslide li {
  padding: 0; 
  margin: 0; 
  display: grid;
}
.fishmenu-h ul li .menuslide a {
  width: unset !important; /*revert inline style*/
  height: min(4.5em, 0.25rem + 5vw);
  padding: 0;
  margin:0; 
  display: flex;
  align-items: center;
  font-weight: normal;
  font-size: 1.2rem;
  line-height: 1.5;
  color:#fff; 
  background: var(--clr-main-01);
  border-bottom: 1px solid var(--clr-var-01);
}
.fishmenu-h ul li .menuslide a:hover {background: var(--clr-var-01);} 
.fishmenu-h ul li .menuslide a:hover span {
  color: #fff;
  background: none;
}
.fishmenu-h ul li .menuslide span {padding: 0 1rem;}
.fishmenu-h ul li .menuslide a.menu_hover {
  background: var(--clr-var-01); 
  color:#fff; 
  padding:0; 
  margin:0;
}
.fishmenu-h ul li .menuslide a.menu_hover span {
  background: none; 
  margin:0; 
  color:#fff;
}
/*menuslide - sub menu - END*/

.main-nav #hamburger, 
.main-nav .hamburger {display: none;}

  @media (max-width: 820px) and (min-width: 581px) {
    .dnn_menu {height: 3rem;}
    .fishmenu-h ul li.Item-4 {display: none;}
    .fishmenu-h ul li a {font-size: 1rem;}
    .fishmenu-h ul li span {padding: 0.5rem 0.25rem;}
    .fishmenu-h ul li .menuslide {top: 34px !important;}
  }
  @media (max-width: 720px) and (min-width: 581px) {
    .fishmenu-h ul {column-gap: min(.5vw, 0.75rem);}
    .fishmenu-h .menuslide a {
      font-size: 1rem; 
      line-height: unset;}
  }
  @media (max-width: 580px) {
    div#dnn_wrapper::before {
      content: '';
      background: #fff;
      height: 100svh;
      position: fixed;
      bottom: 0;
      width: 100%;
      z-index: -1;}
    .dnn_menu {
      position: absolute;
      width: 100%;
      height: unset;
      background-color: unset;
      border: none;}
    .fishmenu-h ul {
      position: fixed;
      bottom: 0;
      width: 100%;
      max-width: 100svw;
      height: 100svh;
      padding-top: calc(var(--login-h) + var(--mbl-top-mrg) + var(--mbl-logo-h) + var(--mbl-menu-pad));
      flex-wrap: wrap;
      align-items: unset;
      opacity: 0;
      visibility: hidden;}
    .fishmenu-h ul li {
      width: 100%;
      height: unset;
      display: block;
      border-bottom: 2px solid var(--clr-neutral-200);
      z-index: unset !important;}
    .fishmenu-h ul li:last-child {border-bottom: none;}
    .fishmenu-h ul li a {
      margin-left: 15%;
      height: 100%;
      display: grid;
      align-items: center;
      font-size: 1.25rem;
      font-size: clamp(1rem, 1rem + 1vw, 1.5rem);
      text-align: center;
      opacity: 0;
      transition: var(--transition-time) ease-in-out};
    .fishmenu-h ul li.Item-9 a {background: var(--clr-concelhos-10);} /*intra*/
    .fishmenu-h ul li a:hover {
      text-align: center; 
      text-decoration: none;
      color: var(--clr-main-01); 
      background: var(--clr-neutral-200);}
    .fishmenu-h ul li.Item-9 a:hover {background: var(--clr-concelhos-10);} /*intra*/
    .fishmenu-h ul li a:hover span {float: unset; color: var(--clr-main-01); text-align: center; float: unset; background: none; display: block;}
    .fishmenu-h ul li.current a, 
    .fishmenu-h ul li.current span:hover {background: var(--clr-main-01);}
    .fishmenu-h ul li.current a:hover span {color: var(--clr-neutral-000);}
    .fishmenu-h ul li.current span {float: unset; background: none;}
    .fishmenu-h ul li.Item-4 {display:block;}
    .fishmenu-h ul li span {text-wrap: balance; transition: none;}
    .fishmenu-h ul li .menuslide {
      position: fixed !important; 
      top: unset !important;
      bottom: 0;
      width: 100% !important; /*revert inline style*/
      max-width: 100svw;
      overflow: auto !important;
      z-index: 1 !important; /*revert inline style*/}
    .fishmenu-h ul li .menuslide ul {
      grid-template-columns: 1fr 1fr;
      grid-auto-rows: 1fr;
      position: relative;
      top: unset !important; 
      width: 100% !important; 
      max-width: unset;
      height: calc(100svh - var(--login-h));}
    .fishmenu-h ul li .menuslide li {
      border-top: 1px solid var(--clr-neutral-400);
      border-right: 1px solid var(--clr-neutral-400);
      border-bottom: none;}
    .fishmenu-h ul li .menuslide li:nth-child(even) {border-right: none;}
    .fishmenu-h ul li .menuslide span {
      padding: 0 0.25rem;
      text-wrap: balance;
      hyphens: auto;}
    .fishmenu-h ul li .menuslide a {
      width: 100% !important; 
      height: 100%; 
      justify-content: center; 
      font-size: 1rem; 
      font-size: clamp(.875rem, .875rem + .5vw, 1.125rem);
      color: var(--clr-main-02);
      border: none; 
      background: linear-gradient(135deg, var(--clr-neutral-200), var(--clr-neutral-100));}
    .fishmenu-h ul li .menuslide a:hover {padding: 0 !important; background: var(--clr-var-01);}

    .main-nav .hamburger {
      width: 80px;
      height: var(--login-h);
      position: fixed !important;
      right: 0;
      display: flex !important;
      align-items: center;
      z-index: 9999;}
    .main-nav label {height: auto;}
    .main-nav label svg {scale: initial;}
    .main-nav .hamburger svg {
      width: 100%;
      height: var(--login-h);
      position: absolute;
      right: 0;
      fill: #fff;
      transition: scale var(--transition-time) ease-in-out;}
    .main-nav .hamburger svg:hover {scale: 85%;}
    .main-nav .hamburger .hamb-line {transition: all 0.5s ease-in-out; transform-origin: 50%;}
    .main-nav input#hamburger:checked ~ #dnn_wrapper {position: fixed; width: 100%; z-index: 9998;}
    .main-nav input#hamburger:checked ~ #dnn_wrapper .login_right {position: fixed; z-index: 1000;}
    .main-nav input#hamburger:checked ~ #dnn_wrapper .dnn_top_p {position: fixed; width: 100%; padding-top: calc(var(--login-h) + var(--mbl-top-mrg));}
    .main-nav input#hamburger:checked ~ #dnn_wrapper .dnn_menu {position: absolute; margin-top: calc(var(--login-h) + var(--mbl-top-mrg) + var(--mbl-logo-h));}
    .main-nav input#hamburger:checked ~ #dnn_wrapper .dnn_menu .fishmenu-h ul {visibility: visible !important; opacity: 1 !important;}
    .main-nav input#hamburger:checked ~ #dnn_wrapper .dnn_menu .fishmenu-h li a {margin-left: 0; opacity: 1;}
    .main-nav input#hamburger:checked ~ .hamburger .hamb-top {
      translate: 12.5% -25%;
      rotate: 225deg;}
    .main-nav input#hamburger:checked ~ .hamburger .hamb-mid {
      height: 0; 
      translate: 100% 0;
      opacity: 0;}
    .main-nav input#hamburger:checked ~ .hamburger .hamb-btm {
      translate: 12.5% 25%;
      rotate: -225deg;}
  }

  @media (max-width: 580px) and (max-height: 580px) {
    /* .main-nav input#hamburger:checked ~ #dnn_wrapper .dnn_menu .fishmenu-h > ul {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;} */
    .fishmenu-h ul {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;}
    .fishmenu-h ul li {border-bottom: none;}
    .fishmenu-h ul li {border-top: 2px solid var(--clr-neutral-200);}
    .fishmenu-h ul li:nth-child(odd) {border-right: 2px solid var(--clr-neutral-200);}
    .fishmenu-h .menuslide a {font-size: 1rem;}
  }
  @media (max-width: 380px) {
    .fishmenu-h ul li .menuslide ul {grid-template-columns: 1fr;}
    .fishmenu-h ul li .menuslide li {border-right: none;}
  }

/*================================*/
/*MAIN (.main-content)*/
/*================================*/
.main-content {position: relative;}

/*#dnn_wrapper2-->>>--BANNER---MAINCONTENT-(sidebar+content)*/
#dnn_wrapper2 {
  max-width: var(--mxfllwdth);
  position:relative;
  display: grid; 
  margin: 0 auto 3rem;
  padding-inline: 0 !important;
}
/*BANNER*/
.banner-top {/*banners page (except homepage slider)*/
  position: relative;
  max-width: var(--mxfllwdth);
  margin: 0 auto;
}
.banner-top img {
  width: 100%;
  height: auto;
  display: block;
}
      
  @media (max-width: 580px) {
      .banner-top {margin-top: 1rem;}}

/*MAINCONTENT-->>>--sidebar---content*/
.MainContent {
  display: flex;
  width: 100%;
  max-width: var(--mxwdth);
  margin-inline: auto;
}
/*sidebar*/
.BarraLateral {
  position: relative;
  padding: 0 !important;
  margin: calc(1.5 * var(--mrg-content)) var(--mrg-content) 0 !important;
}
.BarraLateral::before {
    position: absolute;
    content: '';
    inset: 0 calc(var(--mrg-content) * -1) 0 0;
    border-right: solid 1px var(--clr-neutral-200);
  }
      
  @media (max-width: 950px) {
      .BarraLateral {visibility: hidden; display: none;}}

.BarraLateral > div {min-width: var(--mnwside); margin-bottom: 4rem;}

div#CSSNav {text-align: left; padding: 0; margin: 0;}
div#CSSNav h2 {background-position: left top; font-size: 1em; margin: 0px; color: white; border-bottom: white 1px solid; background-repeat: no-repeat;}
div#CSSNav h2 {background-color: #999999;}
div#CSSNav h2 a {display: block; padding: 7px 0 12px 7px; background: no-repeat right top; color: white; text-decoration: none;}
div#CSSNav h2 a {color: white;}
div#CSSNav h2 a:hover {text-decoration: underline;}
div#CSSNav ul {	padding: 0px; margin: 0px; list-style-type: none;}
div#CSSNav li {padding: 0px 0;margin: 0 0;list-style-type: none;}
div#CSSNav ul li#secondnav {background: var(--clr-main-01); border-bottom-width: 0px;}
div#CSSNav ul li {border-bottom: 1px solid var(--clr-var-02);}
div#CSSNav ul li:last-child {border: none;}
div#CSSNav ul li#noarrow a, div#CSSNav ul li a {color: var(--clr-main-02);}
div#CSSNav ul li ul li a {color:var(--clr-var-02) !important;}
div#CSSNav ul li#noarrow a:hover, div#CSSNav ul li ul li a:hover {color:#fff !important; background: var(--clr-var-02)}
div#CSSNav ul li ul li:hover {background-color:var(--clr-neutral-400);}
div#CSSNav ul li#noarrow.active, div#CSSNav ul li#noarrow.active:hover {background-color: var(--clr-main-01);}
div#CSSNav ul li#noarrow.active a {color: white; pointer-events: none;}
div#CSSNav ul li#noarrow:hover {background-color: var(--clr-var-02);}
div#CSSNav ul li.sfhover#noarrow {background-color: var(--clr-var-02);}
div#CSSNav ul li.thirdnav1, div#CSSNav ul li.thirdnav2, div#CSSNav ul li.thirdnav3, div#CSSNav ul li.thirdnav4 {
  background: var(--clr-neutral-200);
  border-bottom: 1px solid var(--clr-neutral-400);}    
  /*if you more 4 level, please defined class thirdnav5, thirdnav6...*/
div#CSSNav ul li#selectednav {background: var(--clr-var-02);}
div#CSSNav ul li#selectednav2 {background: var(--clr-var-02) no-repeat; border-bottom-width: 0px;}
div#CSSNav ul li#secondnav a {color: #fff;}
div#CSSNav ul li.thirdnav1 a { /*submenu*/ 
  margin-left: 1rem;
  font-size: 1.125rem;
  color: var(--clr-neutral-600);}
div#CSSNav ul li.thirdnav2 a {margin-left: 2em;}
div#CSSNav ul li.thirdnav3 a {margin-left: 3em;}
div#CSSNav ul li.thirdnav4 a {margin-left: 4em;}
div#CSSNav #selectednav a.level1 {color: #fff;}
div#CSSNav #selectednav a.level2 {margin-left: 2em; color: #fff;}
div#CSSNav #selectednav a.level3 {margin-left: 3em; color: #fff;}
div#CSSNav #selectednav a.level4 {margin-left: 4em; color: #fff;}
div#CSSNav ul li#selectednav a {margin-left: 1em; color: var(--clr-var-02);}
div#CSSNav ul li#selectednav2 a {margin-left: 1em; color: var(--clr-var-02);}
div#CSSNav ul li#secondnav:hover {background-color: var(--clr-var-02);}
div#CSSNav ul li.thirdnav1:hover,div#CSSNav ul li.thirdnav2:hover,div#CSSNav ul li.thirdnav3:hover,div#CSSNav ul li.thirdnav4:hover {background-color: var(--clr-var-02);}
div#CSSNav ul li#selectednav:hover {background-color: var(--clr-var-02);}
div#CSSNav ul li#selectednav2:hover {background-color: var(--clr-var-02);}
div#CSSNav ul li.sfhover#secondnav {background-color: var(--clr-var-02);}
div#CSSNav ul li.sfhover.thirdnav1,div#CSSNav ul li.sfhover.thirdnav2,div#CSSNav ul li.sfhover.thirdnav3,div#CSSNav ul li.sfhover.thirdnav4  {background-color: var(--clr-var-02);}
div#CSSNav ul li.sfhover#selectednav {background-color: var(--clr-var-02);}
div#CSSNav ul li.sfhover#selectednav2 {background-color: var(--clr-var-02);}
div#CSSNav ul li#secondnav:hover a {color: white; background-color: transparent;}
div#CSSNav ul li.thirdnav1:hover a,div#CSSNav ul li.thirdnav2:hover a,div#CSSNav ul li.thirdnav3:hover a,div#CSSNav ul li.thirdnav4:hover a {color: white; background-color: transparent;}
div#CSSNav ul li#selectednav:hover a {color: white; background-color: transparent;}
div#CSSNav ul li#selectednav2:hover a {color: white; background-color: transparent;}
div#CSSNav ul li.sfhover#secondnav a:hover {color: white; background-color: transparent;}
div#CSSNav ul li.sfhover.thirdnav1 a:hover,div#CSSNav ul li.sfhover.thirdnav2 a:hover,div#CSSNav ul li.sfhover.thirdnav3 a:hover,div#CSSNav ul li.sfhover.thirdnav4 a:hover {color: white; background-color: transparent;}
div#CSSNav ul li.sfhover#selectednav a:hover {color: white; background-color: transparent;}
div#CSSNav ul li.sfhover#selectednav2 a:hover {color: white; background-color: transparent;}
div#CSSNav ul li#whiteline {border-top: white 1px solid;}
div#CSSNav ul li#whiteline_noarrow {border-top: white 1px solid; background-image: none;}
div#CSSNav ul li#whiteline_noarrow:hover {border-top: white 1px solid; background-image: none;}
div#CSSNav li ul {z-index: 100; left: -9999em; position: absolute;}
div#CSSNav li ul {width: 100%;}
div#CSSNav li:hover ul {left:auto; padding-top: 1px;margin-left: 0em;}
div#CSSNav li.sfhover ul {left:auto; padding-top: 1px;margin-left: 12.4em;}
/*level 3*/
div#CSSNav li.sfhover ul li ul,div#CSSNav li:hover ul li ul {z-index: 100; left: -999em; position: absolute;}
div#CSSNav li ul li ul {width: 16em;}
div#CSSNav li ul li ul li{width: 16em;}
div#CSSNav li ul li:hover ul {left:auto; padding-top: 1px;margin-left: 12.4em;}
div#CSSNav li ul li.sfhover ul {left:auto; padding-top: 1px;margin-left: 12.4em;}
/*end level 3*/
div#CSSNav li:hover {background-color: var(--clr-var-02);}
div#CSSNav li.sfhover {border-bottom-color: var(--clr-neutral-600); background-color: var(--clr-neutral-600);}
div#CSSNav li ul li {
  width: calc(100% - 2px);
  height: 3rem;
  background: var(--clr-neutral-200);
  color:var(--clr-var-02);
  border: none;}
div#CSSNav li ul li:hover {background-image: none;}
div#CSSNav li ul li.sfhover {background-image: none;}
/* div#CSSNav ul li a:visited {} remove later */
div#CSSNav ul li ul li a:visited {color: white;}
div#CSSNav ul li:hover a {color: white; background-color: transparent;}
div#CSSNav ul li:hover a:visited {color: white; background-color: transparent;}
div#CSSNav ul li:hover a:hover {color: white; background-color: transparent;}
div#CSSNav ul li.sfhover a {color: white; background-color: transparent;}
div#CSSNav ul li.sfhover a:visited {color: white; background-color: transparent;}
div#CSSNav ul li a.sfhover {text-decoration: underline;}
div#CSSNav ul li.sfhover a:hover {color: white; background-color: transparent;}
div#CSSNav ul a {display: block; text-decoration: none; padding: 1rem 0.5em;/* margin-bottom: 1rem; */}
div#CSSNav li a {font-size: 1.25rem; text-transform: uppercase; border: none;}
div#CSSNav ul li ul li a {font-size: 1.125rem; margin-left: 1rem;}
div#CSSNav ul li a:hover {color: white; background-color: var(--clr-neutral-600);}
div#CSSNav ul li#navbottomrow {background-position: left bottom; display: block; border-bottom-width: 0px; background-repeat: no-repeat;}
* html div#CSSNav li a {height: 1%;}

/*content*/
.block-container {
  padding: 0; 
  margin: calc(1.5 * var(--mrg-content)) var(--mrg-content) 0;
}
.mx-wdth {
  width: calc(100% - 2 * var(--mrg-content));
  max-width: calc(var(--mxwdth) - 2 * var(--mrg-content));
  margin-inline: auto;
}
.DNN_Documents {margin-inline: 0 var(--mrg-content)}

  @media (max-width: 950px) {.DNN_Documents {margin-inline: var(--mrg-content);}}

  @media (max-width: 580px) {.block-container {margin: var(--mrg-content) var(--mrg-content) 0;}}


/*================================*/
/*FOOTER (bottom nav bar -- see footer file*/
/*================================*/
.main-footer {
  --bottom-fg-clr: #fff;
  --bottom-bg-clr: var(--clr-main-02);
  z-index: 0;
}

/*bottom*/
.dnn_bottom {
  --bottom-spacing: 2rem;
  width: calc(100% - 2 * var(--mrg-content));
  max-width: calc(var(--mxwdth) - 2 * var(--mrg-content));
  min-height: calc(6 * var(--bottom-spacing));
  display: flex;
  column-gap: var(--bottom-spacing);
  justify-content: space-between;
  place-items: flex-end;
  flex-wrap: wrap;
  padding: var(--bottom-spacing) 0;
  margin-inline: auto;
  font-size: clamp(1rem, calc(0.5svw + 0.95rem), 1.125rem);
  text-align: unset;
  line-height: 1.5;
  color: var(--bottom-fg-clr);
}
.dnn_bottom div:first-child {
  flex-wrap: nowrap;
  display: flex;
  justify-content: center;
  place-items: flex-end;
}
.dnn_bottom svg {
  height: var(--bottom-spacing);
  width: auto;
  margin: auto 0 calc(-0.1 * var(--bottom-spacing)) 0.75rem;
}
.dnn_bottom svg path {fill: var(--bottom-fg-clr);}
.bottom_terms {
  --bottom-terms-spacing: calc(.5 * var(--bottom-spacing));
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: var(--bottom-terms-spacing);
}
.bottom_terms a {color: var(--bottom-fg-clr);}
.bottom_terms a:first-child:after {
  content: '|';
  padding-inline-start: var(--bottom-terms-spacing);
}
.dnn_bottom span {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  text-align: center;
  text-wrap: balance;
}
.bottom-footer {background: var(--bottom-bg-clr);} /*copyright*/

  @media (max-width: 950px) {.dnn_bottom span {width: 100%;}}

  @media (max-width: 580px) {
    .dnn_bottom {justify-content: center; row-gap: calc(.75 * var(--bottom-spacing));} 
    .dnn_bottom_ext {padding-bottom: 4rem;}
  }
  @media (max-width: 380px) {
    .dnn_bottom {display: grid; place-items: unset;}
    .bottom_terms {flex-direction: column; text-align: center;}
    .bottom_terms a:first-child:after {content: ''; padding-inline-start: 0;} 
  }

/*================================*/
/*================================*/
/*================================*/

/*SECCOES*/
/*titles*/
.block-container div.gen1 {
  display: grid;
  position: relative;
  width: fit-content;
  margin: 0 auto 3em;
}
  
  @media (max-width: 580px) {.block-container .gen1 div {position: relative; margin-inline: auto;}}

.primary-head {
  margin-bottom: min(calc(3rem + 1vw), 4rem);
  display: grid;
}

  @media (max-width: 580px) {
    .primary-head > * {
      justify-self: center;
      text-align: center;}
  }

.serv-hd {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  justify-items: center;
  align-items: center;
}
.serv-hd img {
  display: block;
  height: clamp(4rem, 3rem + 3vw, 80px);
}

  @media (max-width: 580px) {.serv-hd {grid-template-columns: 1fr; }}
      
.main-level {
  padding: 0.5rem;
  margin-block: 0;
  max-width: fit-content;
  font-weight: 400;
  text-transform: uppercase;
  color: #fff;
  background: var(--clr-main-01);
}

/*destaques*/
.dtq-alert-01 {
  position: relative; 
  padding: 1.5em;
  margin-block: min(calc(1.5rem + 1.5vw), 3rem);
  background-color: var(--clr-neutral-100); 
  border: 1px solid var(--clr-var-01);
}
.dtq-alert-01 > * {color: var(--clr-var-01);}
.dtq-alert-01 p.alert-head {
  margin-bottom: 0.5em;
  font-size: 1.425rem;
  font-weight: 600;
  text-transform: uppercase;
}
.dtq-alert-01 p {
  padding: 0; 
  margin: 0;
  color: var(--clr-var-01);
}
.dtq-alert-01 a {
	font-weight: 600;
	text-decoration: underline;
	color: currentColor;
}
.dtq-alert-01 a:hover {color: var(--clr-var-02);}
.dtq-alert-01 img {width: 100%;}
/**/
.more-nfo-box {
  max-width: 950px;
  padding: 2em;
  margin-inline: auto;
  margin-block: 4em;
  display: grid;
  gap: 1em;
  background: var(--clr-main-01) url(/Portals/11/imagens/graf/bg_info_sect.jpg) no-repeat top right / cover;
  border-radius: 0 0 var(--border-rd-01) var(--border-rd-01);
}
.more-nfo-box p {
  margin-block: 0 .5rem;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--clr-neutral-000);
}
.more-nfo-box ul {
  padding: 0; 
  margin: 0 0 0 min(3rem, 3vw); 
  border-left: 2px solid var(--clr-neutral-000);
}
.more-nfo-box ul li {
  padding: 0.35rem 0 0.35rem 1.5rem;
  font-size: 1.05rem; 
  font-size: clamp(0.9rem, 0.9rem + 0.25vw, 1.2rem);
  text-transform: uppercase; 
  line-height: 1.2;
}
.more-nfo-box ul li::before {content: ''; background: none;}
.more-nfo-box ul li a {
  text-decoration: none;
  color: var(--clr-neutral-000); 
  transition: color var(--transition-time) ease-in-out;
}
.more-nfo-box ul li a:hover {color: var(--clr-main-02);}
/*destaques=END*/

/*clinicas-opticas---comuns*/
.box-conc-wrap {
  display: grid;
  gap: max(0.35vw, 5px);
  grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
}
.box-conc a {
  height: 3rem;
  padding-inline: 0.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 600;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--clr-main-02);
  border: none;
  border-radius: calc(var(--border-rd-01) /4);
  transition: color var(--transition-time) ease-in-out, background-color var(--transition-time) ease-in-out;
}
.box-conc a:hover {
  color: var(--clr-neutral-000);
  background-color: var(--clr-main-01);
}
.box-conc a[aria-details="dist-porto"], 
.cln-dist-wrap h2[aria-details="dist-porto"] {
background-color: var(--clr-concelhos-10);
}
.box-conc a[aria-details="dist-aveiro"], 
.cln-dist-wrap h2[aria-details="dist-aveiro"] {
background-color: var(--clr-concelhos-20);
}
.box-conc a[aria-details="dist-viana"], 
.cln-dist-wrap h2[aria-details="dist-viana"] {
background-color: var(--clr-concelhos-30);
}
.box-conc a[aria-details="dist-braga"], 
.cln-dist-wrap h2[aria-details="dist-braga"] {
background-color: var(--clr-concelhos-40);
}
.box-conc a[aria-details="dist-vreal"], 
.cln-dist-wrap h2[aria-details="dist-vreal"] {
background-color: var(--clr-concelhos-50);
}
.box-conc a[aria-details="dist-viseu"], 
.cln-dist-wrap h2[aria-details="dist-viseu"] {
background-color: var(--clr-concelhos-60);
}
/*clinicas-opticas---comuns=END*/

/*pagina-clinica*/
.cln-intro, 
.cln-serv {margin-block: min(calc(1.5rem + 1.5vw), 3rem);}

.cln-horario, 
.cln-contact {margin-block: min(calc(2rem + 2vw), 4rem);}

.cln-horario br, .cln-contact br {margin-block-start: 0.5rem;}

.cln-horario p:not(:first-of-type), 
.cln-contact p:not(:first-of-type) {margin-top: 0.5rem;}

.cln-contact p:first-of-type::after {
  position: relative;
  bottom: -1.25rem;
  margin-bottom: 2.5rem;
  content: '';
  width: min(70vw, 35ch);
  height: 2px;
  display: block;
  background-color: var(--clr-neutral-200);
}
/**/
.feat-dtq-wrp {
  margin-block: min(calc(2rem + 2vw), 4rem);
  display: grid;
  gap: 3rem;
  grid-template-columns: 1fr;
}
.feat-dtq {
  padding: 0;
  display: grid;
  gap: 1rem 2rem;
  grid-template-columns: auto 1fr;
  align-items: center;
}
.feat-dtq svg {
  width: min(6rem, 25vw);
  aspect-ratio: 1;
}
.feat-dtq[aria-details="feat-parque"]  > * {fill: hsl(var(--clr-parque)); color: hsl(var(--clr-parque));}
.feat-dtq[aria-details="feat-ortopant"] > * {fill: hsl(var(--clr-dent-blue-01)); color: hsl(var(--clr-dent-blue-01));}
.feat-dtq[aria-details="feat-cardio"] > * {fill: hsl(var(--clr-cardio-red-01)); color: hsl(var(--clr-cardio-red-01));}
.feat-dtq[aria-details="feat-optica"] > * {fill: var(--clr-main-02); color: var(--clr-main-02);}
.feat-dtq p {
  margin: 0;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
}

  @media (max-width: 320px) {
    .feat-dtq {grid-template-columns: 1fr; justify-items: center;}
    .feat-dtq p {text-align: center; text-wrap: balance ;}
  }

/**/
.banner-marcacoes {
  position: relative;
  width: 100%;
  min-height: 330px;
  margin-block: min(calc(2rem + 2vw), 4rem);
  container-type: inline-size;
}
.banner-marcacoes img {
  position: absolute;
  width: 100%;
  object-fit: cover;
  object-position: calc(-10rem + 5vw);
  overflow: hidden;
}
.banner-marcacoes__contents {
  position: absolute;
  height: 100%;
  padding: 5rem 1rem 1rem;
  display: grid;
  gap: 0 1rem;
  grid-template-rows: auto 1fr;
  grid-template-columns: calc(300px - 14rem + 10vw) 1fr auto;
  align-items: center;
}
.banner-marcacoes__contents svg {
  width: min(8.75rem, 25vw);
  aspect-ratio: 1;
  grid-column: 2 / 3;
}
.banner-marcacoes__contents p {
  grid-column: 3 / -1;
  margin: 0;
  font-size: 2rem;
  font-size: clamp(1.5rem, 1.5rem + 0.75vw, 2.5rem);
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  text-wrap: balance;
  color: #fff;
}
.banner-marcacoes__contents a {
  grid-column: 3 / -1;
  align-self: start;
}

  @media (max-width: 950px) {
    .banner-marcacoes__contents {grid-template-columns: calc(300px - 25rem + 35vw) 1fr auto;}
  }
  @media (max-width: 720px) {
    .banner-marcacoes {background-color: var(--clr-main-02); overflow: hidden;}
    .banner-marcacoes__contents {
      position: relative;
      padding: 0 1rem 1rem;
      margin-top: max(-4rem, -6vw);
      grid-template: unset;
      gap: 1rem;
      justify-items: center;}
    .banner-marcacoes__contents > * {grid-column: 1 / -1 !important; }
    .banner-marcacoes img {position: relative; height: auto; object-position: center;}
    .banner-marcacoes__contents p {text-align: center;}
  }
  @media (max-width: 480px) {.banner-marcacoes img {width: 160%; object-position: -27vw;}}

/**/
.cln-mapa {margin-block: min(calc(2rem + 2vw), 4rem); text-align: center;}
.cln-mapa iframe {width: 100%;}
/**/
.cln-photo {margin-block: min(calc(2rem + 2vw), 4rem);}
.photo-gallery {
  margin-block: min(calc(0.5rem + 1.5vw), 3rem);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr));
  gap: 0.8em;
  background-color: #fff;
}
.img-cont {
  position: relative;
  max-width: 480px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.img-cont img {
  width: 100%; 
  height: auto;
}
.img-cont .legnd {
  opacity: 0;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 3em;
  background: var(--clr-main-01);
  transition: opacity 0.5s ease-in-out;
}
.img-cont .legnd p {
  width: 100%;
  padding: 0.5em;
  margin: 0;
  font-size: 1em;
  font-weight: 600;
  text-align: center;
  line-height: 1.4em;
  text-transform: uppercase;
  color: #fff;
}
.img-cont:hover .legnd {opacity: 0.95;}

/*-FORMS-*/

.DnnModule-7546,/*parc_neg*/
.DnnModule-7233,/*parc_serv*/
.DnnModule-7171,/*contact*/
.DnnModule-7167,/*marc*/
.DnnModule-7164,/*covid*/
.DnnModule-7511,/*form*/
.DnnModule-7209,/*emp*/
.DnnModule-1248 /*login*/ {
  width: calc(100% - 4rem); 
  margin-inline: var(--mrg-content);
  margin-block: 3rem;
  display: grid; 
  overflow-x: hidden;
}

  @media (max-width: 950px) {
    .DnnModule-7546,
    .DnnModule-7233,
    .DnnModule-7171,
    .DnnModule-7167,
    .DnnModule-7164,
    .DnnModule-7511,
    .DnnModule-7209,
    .DnnModule-1248 {width: calc(100% - 4rem); margin-inline: auto;}
  }

.DnnModule-7546 table,
.DnnModule-7233 table,
.DnnModule-7171 table,
.DnnModule-7167 table,
.DnnModule-7164 table,
.DnnModule-7511 table,
.DnnModule-7209 table,
.DnnModule-1248 table {width: 100% !important; border-spacing: 0;}

/**/
/*general label*/
.label1 {
  display: block;
  margin: 0.5rem 0;
  font-size: 1.125rem;
  font-size: clamp(1rem, 0.75rem + 0.5vw, 1.25rem);
  font-weight: 400;
  text-transform: uppercase;
  word-wrap: break-word;
  hyphens: auto;
  color: var(--clr-var-02);
}
.DynamicForms_RequiredFieldAsterik {
  padding-left: 0.25em !important;
  font-size: inherit !important;
}
.field1, .field1a {width: 100%; display: block;}
.field1 > input,
.field1a > input {
  padding: 1.125rem 0.75rem;
  margin: 0.5rem 0 1.5rem;
  font-size: 1.375rem;
  font-size: clamp(1.25rem, 1rem + 0.75vw, 1.5rem);
  font-weight: 600;
  color: var(--clr-neutral-800);
  border-radius: var(--border-rd-form);
  border: 1px solid var(--clr-neutral-200);
  background: var(--clr-neutral-100);
}

/*text box - long*/
.field1 > input {width: min(60rem, 100%) !important;} /*revert inline style*/

/*text box - short*/
.field1a > input {width: min(30rem, 100%) !important;} /*revert inline style*/

/*drop down box*/
.field1b > select {
  display: block;
  width: 100% !important; /*revert inline style*/
  max-width: fit-content;
  padding: 1.035rem 0.75rem;
  margin: 0.5rem 0 1.5rem;
  font-size: 1.375rem;
  font-size: clamp(1.25rem, 1rem + 0.75vw, 1.5rem);
  font-weight: 400;
  color: var(--clr-neutral-800);
  background-color: var(--clr-neutral-100);
  border: 1px solid var(--clr-neutral-200);
  border-radius: var(--border-rd-form);
}

/*options fields*/
.field1c {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0.5rem 0 1rem;
  font-size: 1.25rem;
  font-size: clamp(1rem, 1rem + 0.75vw, 1.5rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--clr-neutral-800);
}

.field1c tbody {gap: .5rem;}

.field1c td {display: flex; align-items: center;}

  @media (max-width: 280px) {.field1c label {hyphens: auto;}}

/*options fields | column max 30ch - ver LISTAS*/

.field1d { /*attach button and label*/
  display: block;
  width: 100%;
  margin: 0.5rem 0 1.5rem;
  font-size: 1.125rem;
  font-size: clamp(1rem, 1rem + 0.5vw, 1.25rem);
  color: var(--clr-neutral-800);
}
.field1e > textarea { /*comment box*/
  display: block;
  width: min(60rem, 100%) !important; /*revert inline style*/
  height: max(16rem, 20vh) !important; /*revert inline style*/
  padding: 1rem 0.75rem;
  margin: 0.5rem 0 1.5rem;
  font-family: inherit;
  font-size: 1.275rem;
  font-size: clamp(1.25rem, 1rem + 0.75vw, 1.375rem);
  line-height: 1.5;
  color: var(--clr-neutral-800);
  background: var(--clr-neutral-100);
  border: 1px solid var(--clr-neutral-200);
  border-radius: var(--border-rd-form);
}
.field2 { /*important note box*/
  display: block;
  width: 100%;
  padding: 1rem;
  margin: 2rem 0;
  font-size: 1.125rem;
  font-size: clamp(1rem, 1rem + 0.5vw, 1.25rem);
  line-height: 1.5;
  color: var(--clr-main-02);
  background-color: var(--clr-main-01-transp-01);
  border: 1px solid var(--clr-main-01);
}
.field2 a {color: currentColor;}
.field3 {
  padding: 0.5rem 0.25rem;
  margin-top: 0.5rem;
  font-size: 1,425rem;
  font-size: clamp(1.25rem, 1rem + 0.75vw, 1.6rem);
  font-weight: 400;
  color: var(--clr-neutral-800);
}
.field4 { /*terms text*/
  display: block !important;
  width: 100% !important;
  margin: 1rem 0;
  font-size: 1.125rem;
  font-size: clamp(1rem, 1rem + 0.5vw, 1.25rem);
  color: var(--clr-neutral-800);
}

a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, #LBD_CaptchaIcons a:focus-visible {outline: 2px solid var(--clr-main-01); border-color: transparent;}

#LBD_CaptchaDiv {
  width: 100% !important;
  height: auto !important;
  display: flex;
  justify-content: start;
  gap: 0.5em;
  flex-wrap: wrap;
  margin: 0 0 0.25em 0 !important;
}

/*captcha text box*/
/*7171-contact*/
/*7546-parc_neg*/
/*7233-parc_serv*/
/*7209-empreg*/
#dnn_ctr7171_DynamicForms_CaptchaText_1ce4e197-f290-423b-bc38-34a9bbf6ccb8, 
#dnn_ctr7546_DynamicForms_CaptchaText_8fc4da30-b884-4c57-877f-0cee63ab78f8, 
#dnn_ctr7233_DynamicForms_CaptchaText_e33fcba1-9538-4717-a819-18ce708c9479, 
#dnn_ctr7209_DynamicForms_CaptchaText_92322d9f-680b-4161-b3cd-91c00ab44825 {
  width: clamp(170px, 50%, 300px) !important;
  padding: 0.5em !important;
  margin: 0.5em 0;
  font-size: 1.5rem !important;
}
#LBD_CaptchaDiv #LBD_CaptchaIcons a img {width: 30px !important;}
#LBD_CaptchaDiv #LBD_CaptchaIcons {
  position: relative !important;
  width: auto !important;
  float: unset !important;
}
#LBD_CaptchaDiv #LBD_CaptchaImage {
  width: clamp(170px, 50%, 300px) !important;
  height: auto !important;
  float:unset !important;
}

  /* Default.aspx */

#LBD_CaptchaImage img {width: 100% !important;}

/*-LOGIN-*/
#dnn_ctr1248_Login_pnlLogin {
  display: grid; 
  justify-content: center;
}
.LoginPanel {
  width: 100% !important;
  padding-right: unset !important;
  float: none;
}
.dnnLoginRememberMe {font-size: 1.2rem !important;}
.dnnLoginService {
  margin-block-end: 2em !important;
  display: grid;
  grid-template-rows: auto;
}
.dnnLoginService div {
  display: grid !important;
  padding: 1em 0;
  line-height: 1.5;
}
/*input page login*/
.dnnLoginService input[type="text"], 
.dnnLoginService input[type="password"] {
  width: 100%;
  max-width: 30ch;
  padding: 1.125rem 0.75rem;
  margin: 0.5rem 0 1.5rem;
  font-size: 1.375rem;
  font-size: clamp(1.25rem, calc(0.75svw + 1rem), 1.5rem);
  font-weight: 600;
  color: var(--clr-neutral-800);
  border-radius: var(--border-rd-form);
  border: 1px solid var(--clr-neutral-200);
  background: var(--clr-neutral-100);
}
/*label page login*/
#dnn_ctr1248_Login_Login_DNN_plUsername, 
#dnn_ctr1248_Login_Login_DNN_plPassword {
  width: unset;
  padding: 0;
  margin: 0.5rem 0;
  font-size: 1.125rem;
  font-size: clamp(1rem, calc(0.5svw + .75rem), 1.25rem);
  font-weight: 400;
  text-align: center;
  text-transform: uppercase;
  word-wrap: break-word;
  hyphens: auto;
  color: var(--clr-var-02);
}
/*nota*/
span#dnn_ctr1248_Login_Login_DNN_lblLogin {
  font-size: 1rem;
  color: var(--clr-neutral-800);
}
/*recuperar pass*/
#dnn_ctr1248_Login_Login_DNN_passwordLink {
  padding: 0;
  font-size: 1.25rem;
}
#dnn_ctr1248_Login_Login_DNN_passwordLink:hover {
  color: var(--clr-var-02);
  text-decoration: none;
}
/*button page login*/
a#dnn_ctr1248_Login_Login_DNN_cmdLogin {margin: unset;} 

  @media (max-width: 580px) {
    .dnnLoginService {justify-content: center;}
    #dnn_ctr1248_Login_Login_DNN_plUsername, 
    #dnn_ctr1248_Login_Login_DNN_plPassword {text-align: center;}
  }