@font-face {
  font-family: 'Mitshuka';
  src: url('../fonts/Mitshuka.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
    font-family: 'Feria';
    src: url('../fonts/feria.regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

:root {
  --alberto-orange: #FF7F50;
  --alberto-orange-light: #ff9a73;
  --alberto-dark: #050505;
  --alberto-white: #ffffff;
  --alberto-muted: #cfcfcf;
}

/* NAVBAR */

.alberto-brand {
  gap: 14px;
}

.brand-pitirre {
  width: 78px;
  height: auto;
}

.alberto-brand .sitename {
  color: #fff;
  font-size: 34px;
  line-height: 1;
  margin: 0;
}

.alberto-brand .sitename span {
  color: var(--alberto-orange);
}

.alberto-brand small {
  color: #aaa;
  letter-spacing: 5px;
  text-transform: uppercase;
  font-size: 12px;
}

/* HERO */
.alberto-hero {
  position: relative;
  min-height: 720px;
  height: 85vh;
  max-height: 900px;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.85) 40%, rgba(0,0,0,0.15) 100%),
    url('../img/albertoMonochrome.png') 85% center / contain no-repeat,
    #000;
  overflow: hidden;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 15% 50%, rgba(255,127,80,0.13), transparent 35%);
  pointer-events: none;
}

.hero-container {
  position: relative;
  z-index: 2;
}

.hero-text {
  padding-top: 60px;
}

.hero-greeting {
    color: var(--alberto-orange);
    font-size: 28px;
    margin-bottom: 8px;
    margin-left: -8px;   /* opcional */
    position: relative;
    z-index: 3;
}

.hero-name {
  font-family: 'Mitshuka', cursive;
  font-size: clamp(52px,6vw,92px);
  color: var(--alberto-white);

  line-height: .95;

  margin-top: 4px;
  margin-bottom: 35px;
  margin-left: 45px;

  text-shadow: 0 8px 35px rgba(0,0,0,.8);
  animation: nameSlideFromPhoto 1.4s ease-out both;
}

.hero-lastname {
  color: #d8d8d8;
  font-size: 34px;
  letter-spacing: 2px;
  margin-top: -20px;
  margin-bottom: 28px;
  font-weight: 300;
}

@keyframes nameSlideFromPhoto {
  from {
    opacity: 0;
    transform: translateX(180px) scale(0.95);
    filter: blur(8px);
  }
  to {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: blur(0);
  }
}

.hero-role-line {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 26px;
  color: #fff;
  font-weight: 300;
  margin-bottom: 25px;
}

.dropping-texts {
  display: inline-block;
  width: 390px;
  height: 48px;
  position: relative;
  color: var(--alberto-orange);
  font-weight: 700;
}

.dropping-texts > div {
  position: absolute;
  opacity: 0;
  font-size: 0;
  margin-left: -30px;
  animation: roleRoll 8s linear infinite;
}

.dropping-texts > div:nth-child(1) { animation-delay: 0s; }
.dropping-texts > div:nth-child(2) { animation-delay: 2s; }
.dropping-texts > div:nth-child(3) { animation-delay: 4s; }
.dropping-texts > div:nth-child(4) { animation-delay: 6s; }

@keyframes roleRoll {
  0% {
    font-size: 0;
    opacity: 0;
    margin-left: -30px;
    transform: rotate(-20deg);
  }

  5% {
    font-size: inherit;
    opacity: 1;
    margin-left: 0;
    transform: rotate(0deg);
  }

  22% {
    font-size: inherit;
    opacity: 1;
    margin-left: 0;
    transform: rotate(0deg);
  }

  28% {
    font-size: 0;
    opacity: 0;
    margin-left: 35px;
    transform: rotate(15deg);
  }

  100% {
    font-size: 0;
    opacity: 0;
  }
}

.hero-description {
  color: var(--alberto-muted);
  font-size: 18px;
  max-width: 560px;
  line-height: 1.7;
  margin-bottom: 35px;
}

.hero-actions {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.btn-hero-primary,
.btn-hero-outline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 24px;
  border-radius: 8px;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: .5px;
  transition: .3s ease;
}

.btn-hero-primary {
  background: var(--alberto-orange);
  color: #111;
}

.btn-hero-primary:hover {
  background: var(--alberto-orange-light);
  color: #000;
  transform: translateY(-3px);
}

.btn-hero-outline {
  border: 1px solid var(--alberto-orange);
  color: var(--alberto-orange);
}

.btn-hero-outline:hover {
  background: var(--alberto-orange);
  color: #111;
  transform: translateY(-3px);
}

/*=====================================================
  RESPONSIVE - HEADER / HERO
=====================================================*/

/* Tablet + Mobile */
@media (max-width: 991.98px) {

  /* Header */
  .brand-pitirre {
    width: 52px;
  }

  .alberto-brand {
    gap: 8px;
  }

  .alberto-brand .sitename {
    font-size: 24px;
  }

  .alberto-brand small {
    font-size: 9px;
    letter-spacing: 2px;
  }

  .header-social-links {
    display: none !important;
  }

  .mobile-nav-toggle {
    margin-left: 10px;
    font-size: 28px;
  }


  /* Hero */
  .alberto-hero {
    height: auto;
    min-height: 100vh;
    max-height: none;

    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.82) 0%,
        rgba(0,0,0,.88) 55%,
        rgba(0,0,0,.97) 100%
      ),
      url('../img/albertoMonochrome.png') center top / cover no-repeat,
      #000;
  }

  .hero-text {
    padding-top: 130px;
    padding-bottom: 70px;
  }

  .hero-greeting {
    margin-left: 0;
    font-size: 24px;
  }

  .hero-name {
    margin-left: 0;
    margin-bottom: 28px;
    font-size: clamp(58px, 11vw, 82px);
  }

  .hero-lastname {
    margin-top: -14px;
    margin-bottom: 24px;
    font-size: 30px;
  }

  .hero-role-line {
    font-size: 24px;
  }

  .dropping-texts {
    width: 330px;
  }

  .hero-description {
    max-width: 520px;
    font-size: 17px;
  }

  .hero-actions {
    gap: 14px;
  }
}


/* Phones */
@media (max-width: 767.98px) {

  .alberto-hero {
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.72) 0%,
        rgba(0,0,0,.90) 48%,
        #000 100%
      ),
      url('../img/albertoMonochrome.png') 62% top / cover no-repeat,
      #000;
  }

  .hero-text {
    padding-top: 125px;
    padding-bottom: 55px;
  }

  .hero-greeting {
    font-size: 22px;
  }

  .hero-name {
    font-size: clamp(52px, 17vw, 72px);
    margin-bottom: 24px;
  }

  .hero-lastname {
    font-size: 25px;
    letter-spacing: 1px;
    margin-bottom: 24px;
  }

  .hero-role-line {
    display: block;
    font-size: 22px;
    margin-bottom: 24px;
  }

  .hero-role-line > span {
    display: block;
    margin-bottom: 8px;
  }

  .dropping-texts {
    display: block;
    width: 100%;
    height: 42px;
  }

  .dropping-texts > div {
    margin-left: 0;
  }

  .hero-description {
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 28px;
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .btn-hero-primary,
  .btn-hero-outline {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}


/* Small phones */
@media (max-width: 575.98px) {

  .brand-pitirre {
    width: 42px;
  }

  .alberto-brand {
    gap: 6px;
  }

  .alberto-brand .sitename {
    font-size: 21px;
  }

  .alberto-brand small {
    font-size: 8px;
    letter-spacing: 1.5px;
  }

  .alberto-hero .min-vh-100 {
  min-height: auto !important;
}

  .alberto-hero {
  min-height: auto;
  height: auto;}

  .mobile-nav-toggle {
    margin-left: 6px;
    font-size: 27px;
  }
  
  .hero-text {
  padding-top: 55px;
  padding-bottom: 25px;
}
  .hero-greeting {
    font-size: 20px;
  }

  .hero-name {
    font-size: clamp(48px, 18vw, 66px);
  }

  .hero-lastname {
    font-size: 23px;
  }

  .hero-role-line {
    font-size: 20px;
  }

  .hero-description {
    font-size: 16px;
  }
}

/* NAV MENU ORANGE OVERRIDE */

.navmenu a:hover,
.navmenu .active,
.navmenu .active:focus {
  color: var(--alberto-orange) !important;
}

.navmenu a::before {
  background-color: var(--alberto-orange) !important;
}

.header-social-links a:hover {
  color: var(--alberto-orange) !important;
}

/*=====================================================
  GLOBAL
=====================================================*/

body{

}

a{
    color: var(--alberto-orange);
}

a:hover{
    color: var(--alberto-orange-light);
}


/* =====================================================
   KNIGHT TEMPLATE COLOR OVERRIDES
===================================================== */

.navmenu a:hover,
.navmenu .active,
.navmenu .active:focus,
.navmenu li:hover > a {
  color: var(--alberto-orange) !important;
}

.navmenu a:before {
  background: var(--alberto-orange) !important;
}

.mobile-nav-toggle {
  color: var(--alberto-orange) !important;
}

/*=====================================================
  SERVICES
=====================================================*/
.service-card{

    background:#111;

    border:1px solid rgba(255,255,255,.08);

    border-radius:18px;

    padding:40px;

    height:100%;

    transition:.35s;

}

.service-card:hover{

    transform:translateY(-12px);

    border-color:var(--alberto-orange);

    box-shadow:0 0 35px rgba(255,127,80,.25);

}

.service-icon{

    width:80px;

    height:80px;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    background:#1a1a1a;

    color:var(--alberto-orange);

    font-size:34px;

    margin-bottom:25px;

    transition:.35s;

}

.service-card:hover .service-icon{

    transform:scale(1.15) rotate(10deg);

}

.service-card h3{

    color:#fff;

    margin-bottom:18px;

}

.service-card p{

    color:#bbb;

    line-height:1.8;

}

.service-card a{

    color:var(--alberto-orange);

    font-weight:600;

    text-decoration:none;

}

/* SERVICES BACKGROUND */

.services {
  background: #080808;
  padding: 90px 0;
}

.services .section-title h2 {
  color: #ffffff;
}

.services .section-title span {
  color: var(--alberto-orange);
  background: transparent;
}

.services .section-title p {
  color: #cfcfcf;
  background: transparent;
}

/*=====================================================
  SECTION TITLES
=====================================================*/

.section-title h2{

    font-family:'Feria', sans-serif;

    font-size: clamp(42px, 5vw, 64px);

    font-weight: normal;

    color:#ffffff;

    letter-spacing:1px;

    margin-bottom:20px;

}

.section-title span{

    color:var(--alberto-orange);

    text-transform:uppercase;

    letter-spacing:4px;

    font-size:15px;

    font-weight:600;

}

.section-title p{

    color:#bfbfbf;

    max-width:720px;

    margin:auto;

    line-height:1.8;

}

/*=====================================================
  ABOUT
=====================================================*/
.about {
    padding: 90px 0;
    background: #090909;
}

.about-image img {
    border-radius: 20px;
    box-shadow: 0 0 40px rgba(255,127,80,.18);
}

.about p {
    color: #c9c9c9;
    line-height: 1.9;
    font-size: 18px;
}

.about-skills {
    margin-top: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.about-skills span {
    background: rgba(255,127,80,.10);
    border: 1px solid rgba(255,127,80,.35);
    color: var(--alberto-orange);
    padding: 10px 18px;
    border-radius: 30px;
    font-size: 15px;
    transition: .3s;
}

.about-skills span:hover {
    background: var(--alberto-orange);
    color: #111;
    transform: translateY(-3px);
}

.about-photo{
    width:100%;
    border-radius:20px;
    transition:.4s;
    box-shadow:0 20px 50px rgba(0,0,0,.45);
}

.about-photo:hover{

    transform:translateY(-8px);

    box-shadow:
        0 25px 60px rgba(255,127,80,.25);

}

.btn-about{
    display:inline-block;
    margin-top:24px;
    padding:12px 28px;
    border-radius:50px;
    background:var(--alberto-orange);
    color:#fff;
    text-decoration:none;
    font-weight:600;
    transition:.3s;
}

.btn-about:hover{
    color:#fff;
    transform:translateY(-3px);
    box-shadow:0 10px 25px rgba(255,127,80,.35);
}

/*=====================================================
TECHNOLOGIES
=====================================================*/

.technologies{
    background:#090909;
    padding:90px 0;
}

.terminal-window{
    background:#111;
    border:1px solid #2a2a2a;
    border-radius:16px;
    overflow:hidden;
    max-width:900px;
    margin:50px auto 0;
    box-shadow:0 20px 40px rgba(0,0,0,.35);
}

.terminal-header{
    display:flex;
    align-items:center;
    gap:10px;
    background:#1b1b1b;
    padding:14px 20px;
    border-bottom:1px solid #2a2a2a;
}

.dot{
    width:12px;
    height:12px;
    border-radius:50%;
}

.red{
    background:#ff5f56;
}

.yellow{
    background:#ffbd2e;
}

.green{
    background:#27c93f;
}

.terminal-title{
    margin-left:15px;
    color:#bcbcbc;
    font-size:14px;
}

.terminal-body{
    padding:30px;
    font-family:Consolas, Monaco, monospace;
    color:#d8d8d8;
}

.terminal-body p{
    margin-bottom:10px;
}

.terminal-output{
    color:var(--alberto-orange);
    padding-left:25px;
}

/*=====================================================
PORTFOLIO
=====================================================*/

.portfolio{
    background:#090909;
    padding:90px 0;
}

.project-card{
    height:100%;
    background:#111;
    border:1px solid #242424;
    border-radius:20px;
    padding:35px;
    transition:.3s;
}

.project-card:hover{
    transform:translateY(-6px);
    border-color:rgba(255,127,80,.45);
    box-shadow:0 20px 40px rgba(0,0,0,.30);
}

.project-status{
    display:inline-block;
    margin-bottom:20px;
    padding:7px 14px;
    border-radius:30px;
    background:rgba(39,201,63,.12);
    color:#56d36d;
    border:1px solid rgba(39,201,63,.30);
    font-size:13px;
}

.project-card h3{
    color:#fff;
    font-size:28px;
    margin-bottom:15px;
}

.project-card p{
    color:#c8c8c8;
    line-height:1.8;
    margin-bottom:25px;
}

.project-tech{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:30px;
}

.project-tech span{
    padding:6px 12px;
    border-radius:20px;
    background:rgba(255,127,80,.08);
    color:var(--alberto-orange);
    border:1px solid rgba(255,127,80,.25);
    font-size:13px;
}

.project-link{
    color:var(--alberto-orange);
    text-decoration:none;
    font-weight:600;
}

.project-link i{
    margin-left:8px;
    transition:.3s;
}

.project-link:hover i{
    transform:translateX(5px);
}

/*=====================================================
CTA
=====================================================*/

.cta{

    padding:90px 0;

    background:#090909;

}

.cta-box{

    max-width:900px;

    margin:auto;

    text-align:center;

    background:#111111;

    border:1px solid rgba(255,127,80,.20);

    border-radius:24px;

    padding:55px;

    box-shadow:0 20px 60px rgba(0,0,0,.35);

}
.cta-box h2{

    color:#ffffff;

}

.cta-box span{

    color:var(--alberto-orange);

    font-weight:600;

    letter-spacing:4px;

}

.cta-box p{

    color:#c9c9c9;

}

.btn-cta{

    display:inline-block;

    padding:16px 40px;

    background:var(--alberto-orange);

    color:#ffffff;

    border-radius:40px;

    text-decoration:none;

    font-weight:600;

}

.btn-cta:hover{

    background:#ff9355;

    color:#ffffff;

}

/*=====================================================
  MODALS
=====================================================*/
.modal-content {
  overflow: hidden;
  background: #101010;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .45);
}

.modal-header {
  padding: 22px 28px;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.modal-title {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #ffffff;
  font-size: 1.45rem;
  font-weight: 700;
}

.modal-title i {
  color: var(--alberto-orange);
  font-size: 1.35rem;
}

.modal-body {
  padding: 28px;
}

.modal-description,
.modal-body p {
  color: #d3d3d3;
  font-size: 1.02rem;
  line-height: 1.7;
}

.modal-footer {
  padding: 22px 28px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}

.form-label {
  margin-bottom: 9px;
  color: #ffffff;
  font-weight: 600;
}

.form-control {
  min-height: 52px;
  padding: .75rem .9rem;
  color: #ffffff;
  background: #181818;
  border: 1px solid #3b3b3b;
  border-radius: 10px;
}

textarea.form-control {
  min-height: 170px;
}

.form-control::placeholder {
  color: #969696;
}

.form-control:focus {
  color: #ffffff;
  background: #181818;
  border-color: var(--alberto-orange);
  box-shadow: 0 0 0 .18rem rgba(255, 127, 80, .2);
}

.btn-alberto,
.btn-alberto-outline {
  padding: 12px 28px;
  border-radius: 10px;
  font-weight: 600;
  transition: .25s ease;
}

.btn-alberto {
  color: #ffffff;
  background: var(--alberto-orange);
  border: 1px solid var(--alberto-orange);
}

.btn-alberto:hover,
.btn-alberto:focus {
  color: #ffffff;
  background: var(--alberto-orange-light);
  border-color: var(--alberto-orange-light);
  transform: translateY(-2px);
}

.btn-alberto-outline {
  color: #dddddd;
  background: transparent;
  border: 1px solid #666666;
}

.btn-alberto-outline:hover,
.btn-alberto-outline:focus {
  color: #ffffff;
  background: #202020;
  border-color: #8a8a8a;
}

.alert-warning {
  color: #ffd6a8;
  background: #2b1d08;
  border: 1px solid rgba(255, 127, 80, .35);
  border-radius: 10px;
}

.btn-close {
  opacity: .78;
}

.btn-close:hover {
  opacity: 1;
}

.modal.fade .modal-dialog {
  transform: translateY(18px);
  transition: transform .25s ease-out;
}

.modal.show .modal-dialog {
  transform: translateY(0);
}

/* Phones / small devices in landscape */
@media (max-width: 991.98px) and (max-height: 500px) {

  .alberto-hero {
    min-height: 100vh;
  }

  .hero-text {
    padding-top: 90px;
    padding-bottom: 35px;
  }

  .hero-greeting {
    font-size: 18px;
    margin-bottom: 2px;
  }

  .hero-name {
    font-size: 52px;
    margin-bottom: 18px;
  }

  .hero-lastname {
    margin-top: -10px;
    margin-bottom: 16px;
    font-size: 21px;
  }

  .hero-role-line {
    font-size: 18px;
    margin-bottom: 14px;
  }

  .dropping-texts {
    height: 34px;
  }

  .hero-description {
    font-size: 14px;
    line-height: 1.45;
    margin-bottom: 18px;
    max-width: 480px;
  }

  .hero-actions {
    gap: 10px;
  }

  .btn-hero-primary,
  .btn-hero-outline {
    padding: 9px 16px;
    font-size: 13px;
  }
}

@media (max-width: 575px) {
  .modal-header,
  .modal-body,
  .modal-footer {
    padding-left: 20px;
    padding-right: 20px;
  }

  .modal-footer {
    flex-direction: column-reverse;
  }

  .modal-footer .btn {
    width: 100%;
  }
}

/* =========================================================
   PUBLIC CONVERSATION CHAT
========================================================= */

.conversation-bubble {
    max-width: 78%;
    padding: 12px 15px;
    border-radius: 12px;
    font-size: 0.9rem;
}

.conversation-bubble-visitor {
    background: #202326;
    border: 1px solid #34383c;
}

.conversation-bubble-admin {
    background: rgba(255, 127, 50, 0.12);
    border: 1px solid rgba(255, 127, 50, 0.45);
}

.conversation-bubble-sender {
    color: #ff7f32;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 5px;
}

.conversation-bubble-text {
    color: #f1f1f1;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.conversation-bubble-date {
    color: #7d858c;
    font-size: 0.65rem;
    margin-top: 7px;
    text-align: right;
}

/* =====================================================
   PORTFOLIO - OTROS PROYECTOS
===================================================== */

.portfolio-secondary {
  margin-top: 72px;
}

.portfolio-secondary-heading {
  max-width: 760px;
  margin: 0 auto 34px;
  text-align: center;
}

.portfolio-secondary-heading > span {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--alberto-orange);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.portfolio-secondary-heading h3 {
  margin: 0 0 12px;
  color: #ffffff;
  font-size: clamp(28px, 4vw, 38px);
  font-weight: 600;
}

.portfolio-secondary-heading p {
  margin: 0;
  color: #bfbfbf;
  font-size: 15px;
  line-height: 1.7;
}


/* --------------------------------------
   Secondary project card
-------------------------------------- */

.project-card-secondary {
  height: 100%;
  min-height: 290px;
}

.project-card-secondary .project-card-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.project-card-secondary-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.project-secondary-icon {
  color: var(--alberto-orange);
  font-size: 24px;
}

.project-card-secondary h3 {
  margin-bottom: 12px;
}

.project-card-secondary p {
  margin-bottom: 18px;
}

.project-card-secondary .project-tech {
  margin-top: 0;
  margin-bottom: 20px;
}

.project-card-secondary .project-link {
  margin-top: auto;
}


/* --------------------------------------
   Secondary statuses
-------------------------------------- */

.project-status-case {
  color: #d7d7d7;
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .16);
}

.project-link-muted {
  display: inline-flex;
  align-items: center;
  color: #8d8d8d;
  cursor: default;
}


/* --------------------------------------
   Responsive
-------------------------------------- */

@media (max-width: 991px) {

  .portfolio-secondary {
    margin-top: 58px;
  }

}

@media (max-width: 767px) {

  .portfolio-secondary {
    margin-top: 48px;
  }

  .portfolio-secondary-heading {
    margin-bottom: 26px;
  }

  .project-card-secondary {
    min-height: auto;
  }

}

/* =====================================================
   FIX - PORTFOLIO SECONDARY HEADING
===================================================== */

.portfolio .portfolio-secondary-heading > span {
  color: var(--alberto-orange) !important;
  background: transparent !important;
}

.portfolio .portfolio-secondary-heading h3 {
  color: #ffffff !important;
  background: transparent !important;
}

.portfolio .portfolio-secondary-heading p {
  color: #bfbfbf !important;
  background: transparent !important;
}


/* =====================================================
   PORTFOLIO SHOWCASE MODALS
===================================================== */

.portfolio-showcase-trigger {
  margin-top: auto;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.portfolio-showcase-trigger i {
  margin-left: 8px;
  transition: transform .3s ease;
}

.portfolio-showcase-trigger:hover i {
  transform: translateX(5px);
}

.portfolio-showcase-modal .modal-dialog {
  width: min(92vw, 900px);
  max-width: 900px;
}

.portfolio-showcase-modal .modal-content {
  overflow: hidden;
  background: #0f0f0f;
  border: 1px solid rgba(255, 127, 80, .28);
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .58);
}

.portfolio-showcase-modal .modal-header {
  padding: 20px 24px;
  background: #111111;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.portfolio-showcase-modal .modal-title {
  margin: 3px 0 0;
  color: #ffffff;
  font-size: 25px;
}

.portfolio-showcase-eyebrow {
  display: inline-block;
  color: var(--alberto-orange);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2.2px;
  text-transform: uppercase;
}

.portfolio-showcase-modal .modal-body {
  padding: 0;
  background: #0d0d0d;
}

.portfolio-showcase-image {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #090909;
}

.portfolio-showcase-image img {
  display: block;
  width: 100%;
  max-height: 520px;
  object-fit: contain;
}

.portfolio-showcase-description {
  padding: 22px 28px;
  text-align: center;
  background: #111111;
}

.portfolio-showcase-description h3 {
  margin: 0 0 8px;
  color: #ffffff;
  font-size: 21px;
}

.portfolio-showcase-description p {
  max-width: 720px;
  margin: 0 auto;
  color: #c8c8c8;
  line-height: 1.65;
}

.portfolio-showcase-footer {
  justify-content: center;
  padding: 18px 22px;
  background: #111111;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

.portfolio-showcase-footer .btn-hero-outline {
  min-width: 180px;
  justify-content: center;
}

@media (max-width: 767px) {

  .portfolio-showcase-modal .modal-dialog {
    width: calc(100vw - 16px);
    margin: 8px auto;
  }

  .portfolio-showcase-image img {
    max-height: 340px;
  }

  .portfolio-showcase-description {
    padding: 18px;
  }

  .portfolio-showcase-description h3 {
    font-size: 19px;
  }

  .portfolio-showcase-footer .btn-hero-outline {
    width: 100%;
    min-width: 0;
  }
}

/* =====================================================
   MOBILE NAV - IPHONE / IPAD
===================================================== */

@media (max-width: 1199.98px) {

    /*
     * Knight cambia al navbar móvil en < 1200px.
     * Nuestro header debe usar exactamente el mismo breakpoint.
     */
    .header .header-social-links {
        display: none !important;
    }

    .header .container-fluid {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: nowrap;
    }

    .header .logo {
        flex: 1 1 auto;
        min-width: 0;
    }

    .header .navmenu {
        flex: 0 0 auto;
        margin-left: auto;
    }

    /*
     * Área táctil mínima apropiada para móvil/tablet.
     */
    .mobile-nav-toggle {
        width: 48px;
        height: 48px;

        margin: 0 !important;

        display: flex !important;
        align-items: center;
        justify-content: center;

        flex: 0 0 48px;

        color: var(--alberto-orange) !important;

        font-size: 30px !important;
        line-height: 1 !important;

        cursor: pointer;

        position: relative;
        z-index: 10000;
    }

    /*
     * Overlay del menú.
     */
    .mobile-nav-active .navmenu {
        position: fixed;
        inset: 0;

        width: 100%;
        height: 100dvh;

        overflow: hidden;

        background: rgba(0, 0, 0, .92);

        z-index: 9998;
    }

    /*
     * Panel de opciones.
     */
    .mobile-nav-active .navmenu > ul {
        display: block;

        position: absolute;

        top: 78px;
        right: 18px;
        bottom: 18px;
        left: 18px;

        margin: 0;

        padding: 18px 0;

        border: 1px solid rgba(255, 255, 255, .10);
        border-radius: 14px;

        background: #111315;

        overflow-y: auto;

        z-index: 9999;
    }

    .mobile-nav-active .navmenu > ul li {
        width: 100%;
    }

    .mobile-nav-active .navmenu > ul a {
        min-height: 52px;

        padding: 13px 22px;

        display: flex;
        align-items: center;

        font-size: 18px;

        color: #f2f2f2;
    }

    /*
     * X para cerrar.
     */
    .mobile-nav-active .mobile-nav-toggle {
        position: fixed;

        top: 14px;
        right: 16px;

        width: 48px;
        height: 48px;

        margin: 0 !important;

        display: flex !important;
        align-items: center;
        justify-content: center;

        color: var(--alberto-orange) !important;

        font-size: 34px !important;

        z-index: 10001;
    }
}


/* iPhone */
@media (max-width: 575.98px) {

    .brand-pitirre {
        flex: 0 0 auto;
    }

    .alberto-brand {
        min-width: 0;
    }

    .alberto-brand > div {
        min-width: 0;
    }

    .mobile-nav-toggle {
        width: 46px;
        height: 46px;

        flex-basis: 46px;

        font-size: 29px !important;
    }

    .mobile-nav-active .navmenu > ul {
        top: 70px;
        right: 12px;
        bottom: 12px;
        left: 12px;
    }
}


/* =====================================================
   MOBILE LOGIN ITEM
===================================================== */

@media (max-width: 1199.98px) {

  .mobile-login-item {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, .10);
  }

  .mobile-login-item > a {
    display: flex;
    align-items: center;
    justify-content: space-between;

    color: var(--alberto-orange) !important;
    font-weight: 600;
  }

  .mobile-login-item > a > i {
    margin-left: auto !important;

    width: auto !important;
    height: auto !important;

    color: var(--alberto-orange) !important;
    background: transparent !important;

    font-size: 20px !important;
  }
}