/* ==========================================================
   BEGIN FILE: assets/css/legal.css

   BRIDGE — LEGAL SYSTEM
   Impressum / Datenschutz / AGB
========================================================== */

/* ==========================================================
   01 — PAGE
========================================================== */

.bridge-legal-page{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    overflow:hidden;

    background:var(--bridge-beige);
    color:var(--bridge-text);
}

/* ==========================================================
   02 — FULL-WIDTH LEGAL WRAP
========================================================== */

.bridge-legal-page .bridge-wrap{
    width:100%;
    max-width:none;

    margin-left:auto;
    margin-right:auto;

    padding-left:clamp(28px,6vw,112px);
    padding-right:clamp(28px,6vw,112px);

    box-sizing:border-box;
}

/* ==========================================================
   03 — HERO
========================================================== */

.bridge-legal-hero{
    width:100%;

    padding:
        clamp(68px,7vw,108px)
        0
        clamp(46px,5vw,72px);

    background:var(--bridge-beige);
}

.bridge-legal-hero__inner{
    width:100%;
    max-width:none;
}

/* ==========================================================
   04 — EYEBROW
========================================================== */

.bridge-legal-eyebrow{
    display:flex;
    align-items:center;

    gap:12px;

    margin:0 0 20px;

    color:var(--bridge-text);

    font-size:11px;
    font-weight:800;
    line-height:1;

    letter-spacing:.15em;
    text-transform:uppercase;
}

.bridge-legal-eyebrow::before{
    content:"";

    width:28px;
    height:2px;

    flex:0 0 28px;

    background:var(--bridge-yellow);
}

/* ==========================================================
   05 — HERO TITLE
========================================================== */

.bridge-legal-hero h1{
    width:auto;
    max-width:none;

    margin:0;

    color:var(--bridge-text);

    font-size:clamp(54px,6.2vw,96px);
    font-weight:700;
    line-height:.93;

    letter-spacing:-.055em;

    white-space:nowrap;

    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
}

/* Old accent no longer used */

.bridge-legal-accent{
    display:none;
}

/* ==========================================================
   06 — INTRO / META
========================================================== */

.bridge-privacy-intro,
.bridge-terms-intro{
    max-width:820px;

    margin:24px 0 0;

    color:var(--bridge-text-light);

    font-size:16px;
    line-height:1.62;
}

.bridge-legal-meta{
    margin:20px 0 0;

    color:var(--bridge-text-light);

    font-size:13px;
    line-height:1.5;
}

/* ==========================================================
   07 — OVERVIEW
   Datenschutz / AGB
========================================================== */

.bridge-legal-overview{
    width:100%;
    max-width:none;

    display:grid;

    grid-template-columns:
        minmax(230px,.6fr)
        minmax(0,1.4fr);

    gap:clamp(42px,6vw,100px);

    padding-top:clamp(34px,4vw,52px);
    padding-bottom:clamp(40px,5vw,64px);

    border-top:1px solid var(--bridge-border);
}

.bridge-legal-overview__head{
    min-width:0;
}

.bridge-legal-overview__head .bridge-legal-eyebrow{
    margin-bottom:14px;
}

.bridge-legal-overview__head h2{
    margin:0;

    color:var(--bridge-text);

    font-size:clamp(28px,2.4vw,38px);
    font-weight:650;
    line-height:1;

    letter-spacing:-.035em;
}

/* ==========================================================
   08 — OVERVIEW LINKS
========================================================== */

.bridge-legal-overview__grid{
    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    column-gap:clamp(28px,4vw,58px);
}

.bridge-legal-overview__grid a,
.bridge-legal-overview__grid a:link,
.bridge-legal-overview__grid a:visited{
    display:block;

    padding:11px 0;

    border:0!important;
    border-bottom:1px solid var(--bridge-border)!important;

    color:var(--bridge-text-light)!important;

    font-size:13px;
    font-weight:600;
    line-height:1.35;

    text-decoration:none!important;
    text-decoration-line:none!important;

    box-shadow:none!important;
}

.bridge-legal-overview__grid a:hover,
.bridge-legal-overview__grid a:focus,
.bridge-legal-overview__grid a:active{
    color:var(--bridge-text)!important;

    text-decoration:none!important;
    text-decoration-line:none!important;

    box-shadow:none!important;
}

/* AGB overview numbers */

.bridge-terms-overview
.bridge-legal-overview__grid a{
    display:grid;

    grid-template-columns:
        34px
        minmax(0,1fr);

    gap:10px;

    align-items:start;
}

.bridge-terms-overview
.bridge-legal-overview__grid a > span{
    color:var(--bridge-yellow);

    font-size:10px;
    font-weight:800;
    line-height:1.3;

    letter-spacing:.12em;
}

/* ==========================================================
   09 — CONTENT
========================================================== */

.bridge-legal-content{
    width:100%;
    max-width:none;

    padding-bottom:clamp(76px,8vw,126px);

    border-top:1px solid var(--bridge-border);
}

/* ==========================================================
   10 — LEGAL ROW
========================================================== */

.bridge-legal-row{
    width:100%;

    display:grid;

    grid-template-columns:
        58px
        minmax(390px,.9fr)
        minmax(0,1.25fr);

    gap:clamp(30px,4.5vw,80px);

    align-items:start;

    padding:
        clamp(28px,3vw,42px)
        0;

    border-bottom:1px solid var(--bridge-border);

    scroll-margin-top:110px;
}

.bridge-legal-row:first-child::before{
    display:none;
}

/* ==========================================================
   11 — NUMBER
========================================================== */

.bridge-legal-number{
    display:block;

    padding-top:6px;

    color:var(--bridge-yellow);

    font-size:10px;
    font-weight:800;
    line-height:1;

    letter-spacing:.14em;
}

/* ==========================================================
   12 — SECTION TITLE
========================================================== */

.bridge-legal-row h2{
    width:100%;
    max-width:none;

    margin:0;

    color:var(--bridge-text);

    font-size:clamp(22px,1.8vw,30px);
    font-weight:650;
    line-height:1.07;

    letter-spacing:-.035em;

    white-space:nowrap;

    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
}

/* AGB headings may wrap */

.bridge-terms-page .bridge-legal-row h2{
    white-space:normal;
}

/* ==========================================================
   13 — COPY
========================================================== */

.bridge-legal-copy{
    width:100%;
    max-width:720px;
}

.bridge-terms-copy{
    max-width:760px;
}

.bridge-legal-copy p{
    margin:0 0 15px;

    color:var(--bridge-text-light);

    font-size:16px;
    line-height:1.62;
}

.bridge-legal-copy p:last-child{
    margin-bottom:0;
}

.bridge-legal-copy strong{
    color:var(--bridge-text);
    font-weight:650;
}

/* ==========================================================
   14 — TEXT LINKS
========================================================== */

.bridge-legal-copy a,
.bridge-legal-copy a:link,
.bridge-legal-copy a:visited{
    color:var(--bridge-text)!important;

    font-weight:600;

    text-decoration:none!important;
    text-decoration-line:none!important;

    border:0!important;

    box-shadow:none!important;
}

.bridge-legal-copy a:hover,
.bridge-legal-copy a:focus,
.bridge-legal-copy a:active{
    color:var(--bridge-text)!important;

    opacity:.7;

    text-decoration:none!important;
    text-decoration-line:none!important;

    border:0!important;

    box-shadow:none!important;
}

/* ==========================================================
   15 — PRIVACY HIGHLIGHT
========================================================== */

.bridge-legal-highlight{
    margin:18px 0;

    padding:17px 20px;

    border-left:2px solid var(--bridge-yellow);

    background:rgba(255,255,255,.26);
}

.bridge-legal-highlight p{
    margin:0;
}

/* ==========================================================
   16 — PRIVACY PLATFORM LIST
========================================================== */

.bridge-legal-platforms{
    display:grid;

    margin:18px 0;

    border-top:1px solid var(--bridge-border);
}

.bridge-legal-platforms > div{
    display:grid;

    grid-template-columns:
        120px
        minmax(0,1fr);

    gap:20px;

    padding:12px 0;

    border-bottom:1px solid var(--bridge-border);

    color:var(--bridge-text-light);

    font-size:14px;
    line-height:1.45;
}

.bridge-legal-platforms strong{
    color:var(--bridge-text);
}

/* ==========================================================
   17 — PRIVACY EXTERNAL LINKS
========================================================== */

.bridge-legal-links{
    display:flex;
    flex-wrap:wrap;

    gap:10px 20px;

    margin-top:16px;
}

.bridge-legal-links a,
.bridge-legal-links a:link,
.bridge-legal-links a:visited{
    color:var(--bridge-text)!important;

    font-size:14px;
    font-weight:650;

    text-decoration:none!important;
    text-decoration-line:none!important;
}

.bridge-legal-links a:hover,
.bridge-legal-links a:focus{
    opacity:.7;

    text-decoration:none!important;
}

/* ==========================================================
   18 — ELEMENTOR / ASTRA CLEANUP
========================================================== */

body.elementor-page .entry-header,
body.elementor-page .ast-page-builder-template .entry-header,
body.elementor-page .ast-breadcrumbs-wrapper,
body.elementor-page .breadcrumbs,
body.elementor-page .page-title,
body.elementor-page .entry-title{
    display:none!important;
}

/* Elementor shortcode containers */

body.elementor-page .elementor-widget-shortcode,
body.elementor-page .elementor-shortcode,
body.elementor-page .elementor-widget-shortcode > .elementor-widget-container{
    width:100%;
    max-width:none;

    margin:0!important;
    padding:0!important;
}

/* Elementor typography reset */

body.elementor-page .bridge-legal-page h1,
body.elementor-page .bridge-legal-page h2,
body.elementor-page .bridge-legal-page p{
    font-family:inherit;
}

body.elementor-page .bridge-legal-page h1,
body.elementor-page .bridge-legal-page h2{
    text-transform:none;
}

/* ==========================================================
   19 — LARGE DESKTOP
========================================================== */

@media (min-width:1440px){

    .bridge-legal-page .bridge-wrap{
        padding-left:7vw;
        padding-right:7vw;
    }

    .bridge-legal-row{
        grid-template-columns:
            64px
            minmax(420px,.9fr)
            minmax(0,1.3fr);
    }

    .bridge-legal-copy{
        max-width:780px;
    }
}

/* ==========================================================
   20 — TABLET
========================================================== */

@media (max-width:1100px){

    .bridge-legal-page .bridge-wrap{
        padding-left:32px;
        padding-right:32px;
    }

    /* Hero title may wrap below desktop */

    .bridge-legal-hero h1{
        font-size:clamp(50px,7vw,74px);

        white-space:normal;
    }

    /* Overview */

    .bridge-legal-overview{
        grid-template-columns:1fr;

        gap:28px;
    }

    /* Rows */

    .bridge-legal-row{
        grid-template-columns:
            44px
            minmax(250px,.85fr)
            minmax(0,1.15fr);

        gap:24px;
    }

    .bridge-legal-row h2{
        font-size:clamp(21px,2.6vw,27px);

        white-space:normal;
    }

    .bridge-legal-copy,
    .bridge-terms-copy{
        max-width:none;
    }

    .bridge-legal-copy p{
        font-size:15px;
    }
}

/* ==========================================================
   21 — MOBILE
========================================================== */

@media (max-width:640px){

    .bridge-legal-page .bridge-wrap{
        padding-left:20px;
        padding-right:20px;
    }

    /* Hero */

    .bridge-legal-hero{
        padding:
            46px
            0
            32px;
    }

    .bridge-legal-eyebrow{
        margin-bottom:15px;
    }

    .bridge-legal-hero h1{
        font-size:clamp(40px,12vw,60px);
        line-height:.96;

        letter-spacing:-.045em;

        white-space:normal;
    }

    .bridge-privacy-intro,
    .bridge-terms-intro{
        margin-top:18px;

        font-size:15px;
    }

    .bridge-legal-meta{
        margin-top:16px;
    }

    /* Overview */

    .bridge-legal-overview{
        grid-template-columns:1fr;

        gap:24px;

        padding-top:28px;
        padding-bottom:34px;
    }

    .bridge-legal-overview__grid{
        grid-template-columns:1fr;
    }

    /* Rows */

    .bridge-legal-row{
        grid-template-columns:1fr;

        gap:10px;

        padding:24px 0;
    }

    .bridge-legal-number{
        padding-top:0;
    }

    .bridge-legal-row h2,
    .bridge-terms-page .bridge-legal-row h2{
        width:100%;

        font-size:22px;
        line-height:1.08;

        white-space:normal;

        overflow-wrap:normal;
        word-break:normal;
        hyphens:none;
    }

    .bridge-legal-copy,
    .bridge-terms-copy{
        width:100%;
        max-width:none;
    }

    .bridge-legal-copy p{
        font-size:15px;
        line-height:1.58;
    }

    /* Platforms */

    .bridge-legal-platforms > div{
        grid-template-columns:1fr;

        gap:4px;
    }
}

/* ==========================================================
   END FILE: assets/css/legal.css
========================================================== */


/* ==========================================================
   22 — LEGAL TYPOGRAPHY HARMONISATION 2.3.2
   Controlled title widths and responsive wrapping for
   Impressum / Datenschutz / AGB in DE / EN / FR / UK / US.
========================================================== */

/* Hero titles: same editorial scale, but long legal names may wrap. */
.bridge-legal-page .bridge-legal-hero h1{
    max-width:17ch;
    font-size:clamp(52px,5.8vw,88px);
    line-height:.94;
    letter-spacing:-.052em;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
    text-wrap:balance;
}

/* The especially long AGB / Terms titles need a slightly wider measure. */
.bridge-terms-page .bridge-legal-hero h1{
    max-width:19ch;
}

/* Legal section titles may wrap on every page, not only AGB. */
.bridge-legal-page .bridge-legal-row h2{
    max-width:25ch;
    font-size:clamp(22px,1.7vw,29px);
    line-height:1.08;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
    text-wrap:balance;
}

/* Overview title follows the same compact visual hierarchy. */
.bridge-legal-page .bridge-legal-overview__head h2{
    max-width:16ch;
    font-size:clamp(27px,2.2vw,36px);
    line-height:1.02;
    text-wrap:balance;
}

/* Give headings enough room while keeping body copy comfortably readable. */
.bridge-legal-page .bridge-legal-row{
    grid-template-columns:
        54px
        minmax(300px,.92fr)
        minmax(0,1.28fr);
    gap:clamp(28px,4vw,68px);
}

.bridge-legal-page .bridge-legal-copy{
    max-width:760px;
}

/* Long overview links wrap naturally without breaking words. */
.bridge-legal-page .bridge-legal-overview__grid a{
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
    text-wrap:pretty;
}

@media (min-width:1440px){
    .bridge-legal-page .bridge-legal-hero h1{
        font-size:88px;
    }
    .bridge-legal-page .bridge-legal-row{
        grid-template-columns:
            62px
            minmax(360px,.92fr)
            minmax(0,1.28fr);
        gap:clamp(42px,4.5vw,78px);
    }
}

@media (max-width:1100px){
    .bridge-legal-page .bridge-legal-hero h1{
        max-width:18ch;
        font-size:clamp(48px,6.6vw,70px);
        line-height:.95;
    }

    .bridge-terms-page .bridge-legal-hero h1{
        max-width:20ch;
    }

    .bridge-legal-page .bridge-legal-row{
        grid-template-columns:
            40px
            minmax(230px,.86fr)
            minmax(0,1.14fr);
        gap:24px;
    }

    .bridge-legal-page .bridge-legal-row h2{
        max-width:24ch;
        font-size:clamp(21px,2.4vw,26px);
    }
}

@media (max-width:820px){
    .bridge-legal-page .bridge-wrap{
        padding-left:clamp(22px,4.5vw,32px);
        padding-right:clamp(22px,4.5vw,32px);
    }

    .bridge-legal-page .bridge-legal-hero{
        padding-top:clamp(50px,7vw,68px);
        padding-bottom:38px;
    }

    .bridge-legal-page .bridge-legal-hero h1,
    .bridge-terms-page .bridge-legal-hero h1{
        max-width:18ch;
        font-size:clamp(44px,8.2vw,62px);
    }

    .bridge-legal-page .bridge-legal-overview{
        grid-template-columns:1fr;
        gap:24px;
    }

    .bridge-legal-page .bridge-legal-row{
        grid-template-columns:34px minmax(0,1fr);
        column-gap:16px;
        row-gap:16px;
        padding:28px 0;
    }

    .bridge-legal-page .bridge-legal-row h2{
        max-width:30ch;
        font-size:24px;
    }

    .bridge-legal-page .bridge-legal-copy,
    .bridge-legal-page .bridge-terms-copy{
        grid-column:2;
        max-width:720px;
    }
}

@media (max-width:640px){
    .bridge-legal-page .bridge-legal-hero{
        padding:42px 0 30px;
    }

    .bridge-legal-page .bridge-legal-hero h1,
    .bridge-terms-page .bridge-legal-hero h1{
        max-width:16ch;
        font-size:clamp(38px,11vw,52px);
        line-height:.97;
        letter-spacing:-.045em;
    }

    .bridge-legal-page .bridge-legal-overview__head h2{
        font-size:28px;
    }

    .bridge-legal-page .bridge-legal-row{
        grid-template-columns:1fr;
        gap:9px;
        padding:24px 0 26px;
    }

    .bridge-legal-page .bridge-legal-number{
        grid-column:1;
        margin-bottom:1px;
    }

    .bridge-legal-page .bridge-legal-row h2{
        grid-column:1;
        max-width:100%;
        font-size:22px;
        line-height:1.1;
    }

    .bridge-legal-page .bridge-legal-copy,
    .bridge-legal-page .bridge-terms-copy{
        grid-column:1;
        max-width:none;
    }

    .bridge-legal-page .bridge-legal-copy p{
        font-size:15px;
        line-height:1.6;
    }
}


/* ==========================================================
   23 — LEGAL HERO COPY SPACING 3.5.14
   More breathing room between large hero titles and intro/meta
   on AGB / Datenschutz / Impressum.
========================================================== */
.bridge-legal-page .bridge-legal-hero h1 + .bridge-privacy-intro,
.bridge-legal-page .bridge-legal-hero h1 + .bridge-terms-intro{
    margin-top:32px;
}

.bridge-imprint-page .bridge-legal-hero h1 + .bridge-legal-accent + .bridge-legal-meta,
.bridge-legal-page .bridge-legal-hero h1 + .bridge-legal-meta{
    margin-top:30px;
}

.bridge-legal-page .bridge-legal-hero .bridge-privacy-intro + .bridge-legal-meta,
.bridge-legal-page .bridge-legal-hero .bridge-terms-intro + .bridge-legal-meta{
    margin-top:24px;
}

@media (max-width:820px){
    .bridge-legal-page .bridge-legal-hero h1 + .bridge-privacy-intro,
    .bridge-legal-page .bridge-legal-hero h1 + .bridge-terms-intro{
        margin-top:24px;
    }

    .bridge-imprint-page .bridge-legal-hero h1 + .bridge-legal-accent + .bridge-legal-meta,
    .bridge-legal-page .bridge-legal-hero h1 + .bridge-legal-meta{
        margin-top:22px;
    }

    .bridge-legal-page .bridge-legal-hero .bridge-privacy-intro + .bridge-legal-meta,
    .bridge-legal-page .bridge-legal-hero .bridge-terms-intro + .bridge-legal-meta{
        margin-top:18px;
    }
}


/* ==========================================================
   BRIDGE 3.5.32 — legal mobile typography system
   Impressum · Datenschutz · AGB
========================================================== */
@media (max-width:700px){

  .bridge-legal-page .bridge-legal-hero{
    padding-top:calc(var(--bridge-header-height) + 44px)!important;
    padding-bottom:34px!important;
  }

  .bridge-legal-page .bridge-legal-hero h1,
  .bridge-terms-page .bridge-legal-hero h1{
    max-width:100%!important;
    font-size:clamp(40px,10.2vw,48px)!important;
    line-height:.98!important;
    letter-spacing:-.04em!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:auto!important;
    text-wrap:balance!important;
  }

  .bridge-legal-page .bridge-legal-eyebrow{
    margin-bottom:18px!important;
    font-size:10px!important;
    line-height:1.15!important;
    letter-spacing:.14em!important;
  }

  .bridge-legal-page .bridge-privacy-intro,
  .bridge-legal-page .bridge-terms-intro{
    margin-top:22px!important;
    max-width:100%!important;
    font-size:17px!important;
    line-height:1.55!important;
  }

  .bridge-legal-page .bridge-legal-meta{
    margin-top:20px!important;
    font-size:16px!important;
    line-height:1.45!important;
  }

  .bridge-legal-page .bridge-legal-overview__head h2{
    font-size:clamp(32px,8.5vw,40px)!important;
    line-height:1!important;
    letter-spacing:-.035em!important;
  }

  .bridge-legal-page .bridge-legal-row{
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:34px 0 36px!important;
    scroll-margin-top:calc(var(--bridge-header-height) + 18px)!important;
  }

  .bridge-legal-page .bridge-legal-number{
    margin:0 0 8px!important;
    font-size:10px!important;
    line-height:1!important;
  }

  .bridge-legal-page .bridge-legal-row h2,
  .bridge-terms-page .bridge-legal-row h2{
    max-width:100%!important;
    font-size:clamp(30px,8.4vw,36px)!important;
    line-height:1.02!important;
    letter-spacing:-.035em!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:auto!important;
    text-wrap:balance!important;
  }

  .bridge-legal-page .bridge-legal-copy,
  .bridge-legal-page .bridge-terms-copy{
    max-width:none!important;
    font-size:17px!important;
    line-height:1.55!important;
  }

  .bridge-legal-page .bridge-legal-copy p,
  .bridge-legal-page .bridge-terms-copy p,
  .bridge-legal-page .bridge-legal-copy li,
  .bridge-legal-page .bridge-terms-copy li{
    font-size:17px!important;
    line-height:1.55!important;
    overflow-wrap:anywhere!important;
  }

  .bridge-legal-page .bridge-legal-copy p,
  .bridge-legal-page .bridge-terms-copy p{
    margin-bottom:16px!important;
  }

  .bridge-legal-page .bridge-legal-overview__grid a{
    font-size:15px!important;
    line-height:1.35!important;
    padding:13px 0!important;
  }

  .bridge-legal-page h1,
  .bridge-legal-page h2,
  .bridge-legal-page h3{
    max-width:100%!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
  }
}

@media (max-width:390px){
  .bridge-legal-page .bridge-legal-hero h1,
  .bridge-terms-page .bridge-legal-hero h1{
    font-size:clamp(38px,10.8vw,44px)!important;
  }

  .bridge-legal-page .bridge-legal-row h2,
  .bridge-terms-page .bridge-legal-row h2{
    font-size:clamp(28px,8.5vw,34px)!important;
  }

  .bridge-legal-page .bridge-legal-copy,
  .bridge-legal-page .bridge-terms-copy,
  .bridge-legal-page .bridge-legal-copy p,
  .bridge-legal-page .bridge-terms-copy p,
  .bridge-legal-page .bridge-legal-copy li,
  .bridge-legal-page .bridge-terms-copy li{
    font-size:16px!important;
  }
}
